Sfondo:
Pi ( π
) è un numero trascendentale e quindi ha una rappresentazione decimale non terminante. Simile, la rappresentazione non termina se scritta in qualsiasi altra base intera. E se lo scrivessimo in base π
?
Le cifre in decimale rappresentano potenze di 10, quindi:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Quindi, in base π
, le cifre rappresenterebbero i poteri di π
:
π = 10 = (1 * π^1) + (0 * π^0)
In questa nuova base, gli interi ora hanno rappresentazioni non terminanti. Quindi 10 in decimale ora diventa il seguente:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Si noti che in base π
le cifre utilizzate sono 0,1,2,3 perché queste sono le cifre inferiori a π
.
Sfida:
Dato un numero intero non negativo x
, sia:
Emette (senza arrestare) la sua rappresentazione in base
π
. Se il numero ha una rappresentazione finita (0, 1, 2, 3), il programma potrebbe arrestarsi invece di stampare zero infiniti.Prendi un numero intero arbitrariamente grande
n
e genera le primen
cifre dix
in baseπ
.
Regole:
- Poiché un numero ha più possibili rappresentazioni, è necessario produrre quello che appare più grande (normalizzato). Proprio come
1.0 = 0.9999…
in decimale, questo problema esiste anche in questa base. In baseπ
, uno è ancora1.0
, ma potrebbe anche essere scritto come0.3011…
, per esempio. Allo stesso modo, dieci è100.01022…
, ma potrebbe anche essere scritto come30.121…
o23.202…
. - Questo è code-golf, quindi vince meno byte. Programma o funzione.
- Nessun built-in ( Sto guardando voi , Mathematica )
risultati:
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…
Prime 10.000 cifre di dieci in Pi base
Verifica:
È possibile verificare qualsiasi output desiderato utilizzando il codice Mathematica qui . Il primo parametro è x
, il terzo è n
. Se scade, scegli un piccolo n
ed eseguilo. Quindi fare clic su "Apri nel codice" per aprire un nuovo foglio di lavoro Mathematica con il programma. Non c'è limite di tempo lì.
Converti l'output risultante in un numero qui .
Relazionato:
n
, suppongo che Pi debba avere almeno n
cifre di precisione.