Antecedentes:
Pi ( π
) es un número trascendental y, por lo tanto, tiene una representación decimal sin terminación. Similar, la representación no termina si está escrita en cualquier otra base entera. Pero, ¿y si lo escribimos en la base π
?
Los dígitos en decimal representan potencias de 10, entonces:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Entonces, en base π
, los dígitos representarían poderes de π
:
π = 10 = (1 * π^1) + (0 * π^0)
En esta nueva base, los enteros ahora tienen representaciones sin terminación. Entonces 10 en decimal ahora se convierte en lo siguiente:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
Tenga en cuenta que en base π
los dígitos utilizados son 0,1,2,3 porque estos son los dígitos menores que π
.
Desafío:
Dado un número entero no negativo x
, ya sea:
Salida (sin detener) su representación en base
π
. Si el número tiene una representación finita (0, 1, 2, 3), entonces el programa puede detenerse en lugar de imprimir ceros infinitos.Tome un entero arbitrariamente grande
n
y genere los primerosn
dígitos dex
in baseπ
.
Reglas:
- Dado que un número tiene múltiples representaciones posibles, debe generar la que parece más grande (normalizada). Al igual que
1.0 = 0.9999…
en decimal, este problema también existe en esta base. En la baseπ
, uno está quieto1.0
, pero también podría escribirse como0.3011…
, por ejemplo. Del mismo modo, diez es100.01022…
, pero también podría escribirse como30.121…
o23.202…
. - Este es el código de golf, por lo que gana menos bytes. Programa o función.
- No hay muebles empotrados ( estoy mirando a usted , Mathematica )
Resultados:
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…
Primeros 10,000 dígitos de diez en la base Pi
Verificación:
Puede verificar cualquier salida que desee utilizando el código de Mathematica aquí . El primer parámetro es x
, el tercero es n
. Si se agota el tiempo de espera, elige uno pequeño n
y ejecútalo. Luego haga clic en "Abrir en Código" para abrir una nueva hoja de trabajo de Mathematica con el programa. No hay límite de tiempo allí.
Convierta la salida resultante a un número aquí .
Relacionado:
n
, supongo que Pi debe tener al menos n
dígitos de precisión.