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 voorvoegsel voor miljard
109
,
wat we liever schrijven als een macht
10^9
of met units 1
en telbare sterren.
1111111111
**
111111111
Een bootstrap is een opstart [boot]
programma voor computers,
dus deze operaties leggen we zo dadelijk uit.
Unaire notatie
met enen voor natuurlijke getallen bespraken we in
§1.1.
Hier in sectie
§2.0
herhalen we getallen, wat vermenigvuldigen is.
Ook presenteren we een meta notatie
om groepen tekens te herhalen.
Blog
§2.1
gaat over machten en hun vervolg.
We experimenteren met operatoren en functies
en testen meervoudige recursie.
In
§2.2
geven we een historisch overzicht van de supermachten
van Knuth, Hilbert, Ackermann en Péter.
En supersterren, die we strikt l-r
evalueren met behulp van popsterren.
Een bijzonder systeem zijn de hekmachten,
die op halve supersnelheid gaan.
Het thema hier in serie
§2
is rijen.
Van een rij getallen of lineaire array
kunnen we de index getallen uitbreiden 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 substitutie
van een constante a
, de aas,
wat in grotere arrays minimaal wordt.
Onze array functie verzamelt en verlaadt
een subtotaal b
, de bel,
wat maximaal is.
Systemen voor de evaluatie van expressies,
waar afgetelde iteratoren
opnieuw worden opgeladen, noemen we blazers.
We blazen azen
op rij
§2.3
en in nesten
§2.4
en ontwikkelen zo een natuurlijk vervolg 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 natuurlijke extensie van Knuth en Conway's pijlen,
die de lezer verder uit mag werken…
Puntjes zijn hints voor overdenking 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 getallen
en nemen b
keer
a
.
Natuurlijke getallen 1..
zijn opgebouwda
uit units 1
en daarom is vermenigvuldiging al een
herhaling op herhaling
.
- 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
precedentie ?=
verandert een regel de expressie alleen,
als er geen operatie die voorrang heeft op volgt.
Hier doen we maal *
voor plus +
bijvoorbeeld.
Dus a*3
=
a+a*2
=
a+a+a*1
=
aa+a*1
=
aa+a
=
aaa
is hoe we een expressie uitwerken,
waarbij we een enkele optelling a+b*c
links laten liggen.
We scannen de expressie l-r (van links naar rechts),
terwijl we een match voor een regel proberen te vinden,
om die toe kunnen passen.
Variabelen uit verschillende regels zijn
onafhankelijk.
Na herhaalde toepassing ==
van regels noteren we een later resultaat.
Soms schrijven we =
om een bekende uitwerking samen te vatten.
Een andere manier van optellen is,
om getallen om te draaien en dan pas samen te voegen.
Dit poptellen +
kan ook stapsgewijs, 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 commutatieve oneindige,
een serie a
optellen bij een oneindig grote b
.
Als deze serie oneindig lang is, zal deze de uitkomst
domineren en kan b
alleen rechts nog wat bijdragen.
Door op pop wijze
b+a
op te tellen tot ab
,
groeien oneindige 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 uitwerking van expressies
inzichtelijk te maken.
Met de regex
notatie herhalen we een enkel teken (karakter) door het aantal ervan
{n}
erna tussen krulhaken te plaatsen.
In onze repex
notatie selecteren 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 dubbelzijdig
: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
stapsgewijs toepassen:
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 tussenstations (reducties).
G0.=Gi.. :u => G0=1.. :Gi=Gu
Omdat gelijkheid =
van expressies
transitief is, blijven de resultaten kloppen.
Al deze expressies 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 gebruikeljke precedentie van de
meerderheid,
en in gelijke gevallen zijn ze rechts associatief.
Er is een teken minder nodig
a^{n}b
=
a*{n1}b
dan voor supermachten met sterren.
Onze supersterren
*..
evalueren we l-r (links associatief)
zonder dat vergelijking nodig is.
Hoewel precedentie van de minderheid
uit hun definitie zou moeten volgen.
Immers a*{0}b
=
ab
wordt van nature direkt opgeteld.
Om getallen met miljoenen cijfers te vermenigvuldigen
zijn er snellere methodes ontwikkeld.
Voor twee getallen met d
digits
kost de oude schoolmethode d^2
rekentijd,
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 transformaties
toepast.1
Quantum computers kunnen in de toekomst
een nog grotere tijdwinst geven.
Voor de grote getallen die wij maken haalt zulke rekenkunde
weinig uit. Die liggen voorbij de
horizonc
van het fysisch universum.
De macht ^
of **
kan met het principe van herhaling op herhaling tot
tetratie
^^
of ***
(toren van machten) en verder tot
supermachten
worden uitgewerkt.
De operatoren + * ^
helpen om moeilijk te tellen getallen te schrijven,
maar het kan ook zonder…
Radix systemen, zoals ons tientallig stelsel,
representeren exponenten van machten van 10
door een positie in een reeks cijfers.
De cijfers zelf herhalen deze machten.
..ci.c0 n: & 0≤c<10 = c0.+ci*10^i.. :n
Ieder cijfer ci
vermenigvuldigt zijn macht van 10
en daarna wordt die serie opgeteld tot een getal,
dat uniek is voor de cijferreeks.
En dat is best knap,
hoe kunnen kinderen zoiets ingewikkelds leren…?
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).
Er zijn snellere manieren om getallen te vermenigvuldigen, ch.11 in Arndt & Haenel "Pi – Unleashed", 2001.
No comments:
Post a Comment