Hintergrund:
Pi ( π
) ist eine transzendentale Zahl und hat daher eine nicht terminierende Dezimaldarstellung. Ebenso wird die Darstellung nicht beendet, wenn sie in eine andere Ganzzahlbasis geschrieben wird. Aber was ist, wenn wir es in Base geschrieben haben π
?
Dezimalstellen stehen für Potenzen von 10, also:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
In der Basis π
würden die Ziffern also Potenzen darstellen von π
:
π = 10 = (1 * π^1) + (0 * π^0)
In dieser neuen Basis haben Ganzzahlen jetzt nicht terminierende Darstellungen. Aus 10 Dezimalstellen wird nun Folgendes:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Beachten Sie, dass in der Basis π
die verwendeten Ziffern 0,1,2,3 sind, da dies die Ziffern sind, die kleiner als sind π
.
Herausforderung:
Bei einer nicht negativen Ganzzahl x
entweder:
Ausgabe (ohne anzuhalten) seiner Darstellung in der Basis
π
. Wenn die Zahl eine endliche Darstellung hat (0, 1, 2, 3), wird das Programm möglicherweise angehalten, anstatt unendliche Nullen zu drucken.Nehmen Sie eine beliebig große Ganzzahl
n
und geben Sie die erstenn
Ziffern vonx
in base ausπ
.
Regeln:
- Da eine Zahl mehrere mögliche Darstellungen hat, müssen Sie diejenige ausgeben, die am größten erscheint (normalisiert). Genau wie
1.0 = 0.9999…
bei Dezimalstellen besteht dieses Problem auch in dieser Basis. In der Basisπ
ist man noch1.0
, könnte aber auch so geschrieben werden wie0.3011…
zum Beispiel. Ebenso ist zehn100.01022…
, könnte aber auch als30.121…
oder geschrieben werden23.202…
. - Dies ist Code-Golf, also gewinnen die wenigsten Bytes. Programm oder Funktion.
- Keine Einbauten ( ich sehe dich an , Mathematica )
Ergebnisse:
0 = 0
1 = 1
2 = 2
3 = 3
4 = 10.220122021121110301000010110010010230011111021101…
5 = 11.220122021121110301000010110010010230011111021101…
6 = 12.220122021121110301000010110010010230011111021101…
7 = 20.202112002100000030020121222100030110023011000212…
8 = 21.202112002100000030020121222100030110023011000212…
9 = 22.202112002100000030020121222100030110023011000212…
10 = 100.01022122221121122001111210201201022120211001112…
42 = 1101.0102020121020101001210220211111200202102010100…
1337 = 1102021.0222210102022212121030030010230102200221212…
9999 = 100120030.02001010222211020202010210021200221221010…
Erste 10.000 Zehnerstellen in Basis Pi
Nachprüfung:
Sie können jede gewünschte Ausgabe mit dem Mathematica-Code hier überprüfen . Der erste Parameter ist x
, der dritte ist n
. Wenn die Zeit n
abgelaufen ist , wählen Sie eine kleine aus und lassen Sie sie laufen. Klicken Sie dann auf "In Code öffnen", um ein neues Mathematica-Arbeitsblatt mit dem Programm zu öffnen. Dort gibt es keine zeitliche Begrenzung.
Konvertieren Sie die resultierende Ausgabe zu einer Reihe hier .
Verbunden:
n
, würde ich vermuten, dass Pi mindestens n
Ziffern mit Genauigkeit haben muss.