Saturday 23 September 2017

Herhalen

Reuzen Getallen Bootstrap

van Giga Gerard

“Row, row, row your boat,
Gently down the stream.
Merrily, merrily, merrily, merrily,

Life is but a dream

§2. Rijen

Vandaag vertrekken we voor een lange reis naar het grootste getal. Monster aan en wandel over Giga Gerard’s
„Reuzen Getallen Bootstrap”.
G of giga is het voor­voegsel voor miljard 109, wat we liever schrijven als een macht 10^9 of met units 1 en tel­bare sterren.
1111111111**111111111
Een bootstrap is een opstart [boot] pro­gramma voor computers, dus deze opera­ties leggen we zo dadelijk uit. Unaire notatie met enen voor natuur­lijke ge­tallen bespraken we in §1.1.

Hier in sectie §2.0 her­halen we getallen, wat vermenig­vuldigen is. Ook presen­teren we een meta notatie om groepen tekens te herhalen.
Blog §2.1 gaat over machten en hun vervolg. We experi­menteren met opera­toren en functies en testen meer­voudige recursie.
In §2.2 geven we een histo­risch over­zicht van de super­machten van Knuth, Hilbert, Ackermann en Péter. En super­sterren, die we strikt l-r eva­lueren met behulp van pop­sterren. Een bijzonder systeem zijn de hek­machten, die op halve super­snelheid gaan.

Het thema hier in serie §2 is rijen. Van een rij getallen of lineaire array kunnen we de index ge­tallen uit­breiden tot een index rij, die zelf ook weer index rijen bevat. Dit zijn geneste arrays tot elk niveau.
In deze structuren passen we twee soorten regels toe. Onze super radix werkt met substi­tutie van een constante a, de aas, wat in grotere arrays mini­maal wordt. Onze array functie verzamelt en verlaadt een sub­totaal b, de bel, wat maximaal is.

Systemen voor de evaluatie van expressies, waar afge­telde iter­atoren opnieuw worden opge­laden, noemen we blazers. We blazen azen op rij §2.3 en in nesten §2.4 en ont­wikkelen zo een natuur­lijk ver­volg op het radix systeem, waarin elk groot getal kan worden uitgedrukt. En we blazen bellen op rij §2.5 en in een vlak §2.6 en alle dimensies §2.7 en in hyper-dimensies §2.8 van geneste arrays. Op deze manier steken we de array functies van Chris Bird naar de kroon.

Geleidelijk ontwikkelt zich een taal bij de wiskunde van grote getallen en een notatie in html ascii. Ook geven we een natuur­lijke ex­tensie van Knuth en Conway's pijlen, die de lezer verder uit mag werken…
Puntjes zijn hints voor over­denking of oefeningen.

Lectori salutem Welkom aan boord.

§2.0 Herhalen

Vermenigvuldigen is herhaald optellen.
We schrijven deze operatie met een ster a*b tussen twee ge­tallen en nemen b keer a. Natuur­lijke getallen 1.. zijn opge­bouwda uit units 1 en daarom is vermenig­vuldiging al een her­haling op her­haling.

  • a*1 ?= a (init)
  • a*2b ?= a+a*1b (stap) = a+a+a*b = aa+a*b == a..+a*1 :b1 = a..+a :b1 = a.. :b2

Bij voorwaardelijke evaluatie met prece­dentie ?= ver­andert een regel de ex­pressie alleen, als er geen opera­tie die voor­rang heeft op volgt. Hier doen we maal * voor plus + bijvoor­beeld.
Dus a*3 = a+a*2 = a+a+a*1 = aa+a*1 = aa+a = aaa is hoe we een ex­pressie uit­werken, waar­bij we een enkele op­telling a+b*c links laten liggen.

We scannen de expressie l-r (van links naar rechts), terwijl we een match voor een regel pro­beren te vinden, om die toe kunnen passen.
Varia­belen uit verschil­lende regels zijn onaf­hankelijk.
Na herhaalde toe­passing == van regels noteren we een later resul­taat. Soms schrij­ven we = om een be­kende uit­werking samen te vatten.

Een andere manier van optellen is, om getallen om te draaien en dan pas samen te voegen. Dit pop­tellen + kan ook staps­gewijs, per tel.

  • b+1 ?= 1b
  • b+a1 ?= 1b+a == a1b

In Cantor's oneindige valt 1ω = ω weg, maar telt ω1 gewoon op.b Stel dat we, in dit niet commu­tatieve on­eindige, een serie a optellen bij een on­eindig grote b. Als deze serie on­eindig lang is, zal deze de uit­komst domineren en kan b alleen rechts nog wat bij­dragen.
Door op pop wijze b+a op te tellen tot ab, groeien on­eindige series ..a naar links ω: aan. Zelf zal in ..a1 het item niet zijn omgedraaid en reps zoals ω1: worden eerst van rechts bijgeteld.

# Metamatiek 2.0

We gebruiken twee meta notaties voor tekst herhaling, bedoeld om de uit­werking van ex­pressies inzich­telijk te maken.
Met de regex notatie herhalen we een enkel teken (karakter) door het aantal ervan {n} erna tussen krul­haken te plaatsen.

In onze repex notatie selec­teren we een rij tekens (groep) tussen punt . of grens van de expressie en twee .. punten. We kunnen deze groep naar links of naar rechts herhalen of we herhalen twee groepen van buiten naar binnen toe.

  • W.. :5 = WWWWW
  • Wi..X..Yi :3: = W1W2W3XY3Y2Y1
  • V.W..X..Y.Z :2: = VWWXYYZ
  • i..Xj :3 5: = 6X5X4X3X2X1

Het aantal herhalingen staat rechts van de expressie in de rep met de : dubbele punt. Een rep :n telt de groepen in de repetitie van links naar rechts bij, of n: van rechts naar links, of dubbel­zijdig :n: van buiten naar binnen.

Mogelijke index variabelen i of j incrementeren tijdens de repetitie. Vanaf begin waarde i=1 neemt die index per stap 1 toe, tot aan de laatste index i=n. Het aantal stappen en de richting ervan blijkt uit de rep, de groep en de plaatsing in de reeks uit de selectie op de punten.

We willen maximale algoritmes niet op reps baseren, maar op simpele regels die we staps­gewijs toe­passen: met een eerste en steeds een volgende stap.
De evaluatie trein rijdt van vertrek expressie (de input) naar aankomst expressie (de output) en heeft vele tussen­stations (reducties).

G0.=Gi.. :u =>
   G0=1.. :Gi=Gu

Omdat gelijkheid = van expressies transitief is, blijven de resul­taten kloppen. Al deze ex­pressies zijn slechts andere vormen van de output Gu die na complete evaluatie wordt bereikt.

In de voorrangsregels voor operatoren gaan machten ^ voor * sterren, en een plus + of pop komt in de evaluatie laatst.

  • + ?< *{n} ?< ^ (operator volgorde)
  • ^.. :n ?< ^.. :n1 (meer eerst)

Voor supermachten geschreven met dakjes of supers ^.. geldt de gebrui­keljke prece­dentie van de meer­derheid, en in gelijke gevallen zijn ze rechts asso­ciatief. Er is een teken minder nodig a^{n}b = a*{n1}b dan voor super­machten met sterren.

Onze supersterren *.. evalueren we l-r (links asso­ciatief) zonder dat verge­lijking nodig is. Hoewel prece­dentie van de minder­heid uit hun definitie zou moeten volgen. Immers a*{0}b = ab wordt van nature direkt opgeteld.

Om getallen met miljoenen cijfers te vermenig­vuldigen zijn er snellere methodes ontwikkeld. Voor twee getallen met d digits kost de oude school­methode d^2 reken­tijd, terwijl dit met de Karatsuba truc een kleine c*d^Log(3) is (logaritme basis 2).
Kampioen met c'*d*Log(d) is het FFT algoritme, dat snelle Fourier trans­formaties toepast.1 Quantum computers kunnen in de toekomst een nog grotere tijd­winst geven.

Voor de grote getallen die wij maken haalt zulke reken­kunde weinig uit. Die liggen voorbij de horizonc van het fysisch universum.
De macht ^ of ** kan met het prin­cipe van her­haling op her­haling tot tetratie ^^ of *** (toren van machten) en verder tot super­machten worden uitge­werkt. De opera­toren + * ^ helpen om moei­lijk te tellen getallen te schrijven, maar het kan ook zonder…

Radix systemen, zoals ons tien­tallig stelsel, repre­senteren expo­nenten van machten van 10 door een positie in een reeks cijfers. De cijfers zelf her­halen deze machten.

..ci.c0 n: & 0c<10
   = c0.+ci*10^i.. :n

Ieder cijfer ci vermenigvuldigt zijn macht van 10 en daarna wordt die serie opge­teld tot een getal, dat uniek is voor de cijfer­reeks. En dat is best knap, hoe kunnen kinderen zoiets ingewikkelds leren…?

a. De natuurlijke getallen kunnen we met louter cijfers 1 uitdrukken in wat ik noem: hun eenvoudige vorm. gg: Enen en operatoren in "Constructie van Grote getallen" (novaloka.nl 2009) met links naar gg's oude weblogs.
b. Open een volgend tel-register. Zo telt Cantor rechts op in het oneindige., gg: Countable infinity voor weblog (concept 2016).
c. Laat me je horizon wat verder weg duwen, gg: Beyond the Abacus in "On the number horizon" (novaloka maths blogs 2007).
1. Er zijn snellere manieren om getallen te vermenigvuldigen, ch.11 in Arndt & Haenel "Pi – Unleashed", 2001.
Gulliver redt de vloot van Lilliput

No comments:

Post a Comment