DMUG-Archiv 2001

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Vorrangregeln, 9^9^9

Guten Tag zusammen,

um den Wert 9^9^9 zu berechnen, braucht man das kleine Einmaleins und eine
funktionale Programmiersprache (Mma). Das Rechnen kann als eine Form der
Textverarbeitung angesehen werden, das Resultat ist also nach Schnizer ein
String der Länge 100000009 im dekadischen System. Das sind gerade mal 100 kB
(Physiker glauben, dass 1 kB 1000 bytes seien; Informatiker glauben, dass 1 km
1024 m sind), also eher wenig. Für Mma kann das eine Liste gleicher Länge sein.
Die Stellen kann man so einfüllen:

In[151]:=
Remove[listTimes, shift];

shift[lx_List, m_Integer] :=
If[ly = (Prepend[m lx - 10 #, 0] + Append[#, 0]) & [IntegerPart[m lx/10]];
First[ly] == 0, Drop[ly, 1], ly];

listTimes[l0_List, n_Integer] :=
  FixedPoint[shift[#, 1] &, shift[l0, n]] /;
    Plus @@ (Length[IntegerDigits[#]] & /@ l0) == Length[l0] &&
      VectorQ[l0, And[NonNegative[#], IntegerQ[#]] &] && NonNegative[n] &&  n <
10

In[156]:=
listTimes[{9}, 1]

Out[156]=
{9}

In[157]:=
listTimes[{9}, 2]

Out[157]=
{1, 8}

Dann ist etwa der 257 fache Fold dieser Funktion mit 9 und Anfangsliste {9}
neun hoch 258:

In[171]:=
FromDigits[Fold[listTimes, {9}, Table[9, {257}]]]

Out[171]=
156519133641540212354177956648358606548751872668986961256494754794109980645965\

849700145309381266837770559666867286147567991743423720796821161194127877701980\

294740456083191935810502304811499715938780451537312762440393511187737785652261\

7067359856721

In[172]:=
9^258

Out[172]=
156519133641540212354177956648358606548751872668986961256494754794109980645965\

849700145309381266837770559666867286147567991743423720796821161194127877701980\

294740456083191935810502304811499715938780451537312762440393511187737785652261\

7067359856721

In[173]:=
%171 - %172

Out[173]=
0

Die Frage ist von der "grössten {arbitrary precision} Zahl" in Mma auf (1) die
längstmögliche Liste und (2) die Rekursionstiefe o. ä. funktionale Grenzen
zurückverwiesen. $RecursionLimit=Infinity ist möglich, dann müsste man mit
einem memory constraint arbeiten, um nicht abzustürzen.

Wenn jemand einen grossen Rechner (Speicher) hat, kann er Fold[listTimes, {9},
Table[9, {9^9 - 1}]] dort abgeben. Das FromDigits[] wird nicht mehr gehen wg.
der $MaxNumber und es wird natürlich auch zunehmend
langsam wg. der an sich überflüssigen Ruleprüfung pro Schritt auf immer
längeren Listen.

Gruss
Udo.

"B. Schnizer" schrieb:

> Ueber der Frage nach den Regeln scheint die nach dem Aussehen und Wert
> der Zahl  9^9^9  voellig untergegangen zu sein. Einige Information darueber
> folgt:
>
> 9^9^9   =  3.254604360315868556...   x  10^100000008
>
> berechnet ueber den Logatithmus. Kein Wunder, dass ein Overflow eintritt.
>
> In[27]:=
> e = 9^9
>
> Out[27]=
> 387420489
>
> In[28]:=
> 9^e
>
>  From In[28]:=
> General::"ovfl": "Overflow occurred in computation."
>
> Out[28]=
> Overflow[]
>
> Deswegen arbeitet man mit dem dekadischen Logarithmus:
>
> In[35]:=
> ee = N[e Log[9], 25]
>
> Out[35]=
> 8.51249820194416430691970003926891527489443`25*^8\)
>
> In[36]:=
> ne = ee/10^8
>
> Out[36]=
> 8.512498201944164306919700
>
> In[37]:=
> ev = 10^ne
>
> Out[37]=
> \!\(3.25460436031586855599337175235114152187156`23.705*^8\)
>
> Die Zahl der Stellen in der Dezimaldarstellung ist also:
>
> In[32]:=
>           10^8 + 8
>
> Out[32]=
> 100000008
>
> und der Faktor ist :
>
> In[39]:=
> ev/10^8
>
> Out[39]=
> 3.25460436031586855599337
> **************************************************************************
>   ao. Prof. Dr. B. Schnizer              Institut fuer Theoretische Physik
>   Tel: +43 (316) 873-8173, -8171 (Secr.) Technische Universitaet Graz
>   Fax: +43 (316) 873 8678                Petersgasse 16
>   e-mail: schnizer@XXXXXXX.at     A-8010 Graz
>   http://www.itp.tu-graz.ac.at/~schnizer   Austria/Europe
> https://online.tu-graz.ac.at/tug_online/tgo_org.display?CORG=2382
> ***************************************************************************


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html