Salida con el mismo número de dígitos de pi que la longitud del código

9

Su desafío es imprimir xdígitos de pi donde xestá la longitud de su código.

Ejemplos:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

Puede usar para determinar la cantidad de dígitos que necesita imprimir. Tenga en cuenta que el punto decimal no cuenta como un dígito de pi, por lo que el código de longitud 3 debe tener salida , de longitud 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Reglas:

  • La longitud de su código debe ser mayor de tres caracteres.
  • No puede usar ninguna laguna estándar.
  • Puede usar cualquier método de salida estándar permitido.
  • No puede leer su fuente para determinar la longitud del código.
  • No puede usar una constante pi incorporada.
  • Pi debe ser completamente preciso y no aproximado.
  • El punto decimal en la salida es necesario. Si elige generar a través del valor de retorno, debe devolver un entero de punto flotante.
  • El objetivo de este desafío es encontrar la solución más corta en cada idioma, no el idioma más corto para la solución. No tenga miedo de publicar una solución en un idioma cuando se publique una solución más corta en el mismo idioma siempre que su solución utilice un método diferente.
MD XF
fuente
... así que sería esta sea válida o no?
Jonathan Allan
(editar ^ esto incluso (redondeo))
Jonathan Allan
"Longitud del código" ← en bytes o en caracteres?
Lynn
@ Lynn Bytes, como siempre.
MD XF
¿Solo está 3permitido?
NoOneIsHere

Respuestas:

3

Japt , 9 4 bytes

Tan corto como sea posible :)

Incluye un no imprimible (avance de línea inversa, charcode 141) después de #.

3.#

Pruébalo

En Japt, cualquier siguiente carácter #se convierte a su código de carácter y se agrega a cualquier dígito o punto decimal que pueda precederlo, en este caso el3.

Lanudo
fuente
7

Jalea , 9 bytes

“Œı⁸Ç’÷ȷ8

Pruébalo en línea!

Salidas 3.14159265

Cómo funciona

“Œı⁸Ç’     - The integer 314159265
      ÷    - divide
       ȷ8  - The integer 100000000
fireflame241
fuente
¡Pi no se está calculando!
sergiol
55
sí lo es, dividiendo 314159265 por 100000000 :-)
Florian F
6

VBA (Excel), 15 bytes

MsgBox 4*Atn(1)

Salida: 3.14159265358979

Creo que esto no es aceptable ya que jugué golf solo para que se ajuste a la longitud del PI. La longitud sin golf es de 17 bytes. RE:

remodelar
fuente
1
Parece que aún no ha sido bienvenido, así que ¡bienvenido al sitio!
MD XF
Oh, gracias señor! : D
remoel
¿No es Atnardiente? No estoy seguro de si esto está permitido ... preguntando a OP
JungHwan Min
Pensé que OP se refiere solo a PI incorporado. Culpa mía.
Remoel
5

Jalea , 6 bytes

3;⁽4ƒṾ

Pruébalo en línea!

Grabados 3,14159con el separador decimal permitido "europeo", ,.

¿Cómo?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159
Jonathan Allan
fuente
1
Esa lista de dígitos parece extraña. Creo que hay un extra ,'allí.
Jonathan Frech
1
Puede hacer -ÆAær5y usar en .lugar de ,, pero sería lo mismo que mi solución Jelly.
Zacharý
4

Python 3 , 64 bytes

print("3.%d"%int("SIXW57LUPVBUA10HBQJOL57QLF54UT0U00KIN32O",36))

Pruébalo en línea!

Monja permeable
fuente
El equivalente de Python 2 es de 60 bytes print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Jonathan Allan
@JonathanAllan python 2 en 59: tio.run/##K6gsycjPM/r/…
primo
@primo parece uno para publicar si y cuándo ...
Jonathan Allan
1
@JonathanAllan si te refieres a cuando se vuelve a abrir, ahora es.
MD XF
4

Desmos , 130 bytes

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

El código fuente para esto (al que se puede acceder copiando y pegando dentro y fuera de Desmos) no es óptimo cuando se genera usando el editor Desmos, por lo que se redujeron unos pocos bytes de espacio en blanco cuando fue posible.

Esto define una función fque no toma argumentos devuelve pi, calculada usando la secuencia de Gregory para k=9^9 (no puedo confirmar que sea lo suficientemente precisa, sin embargo, creo que es así, puede hacerse más precisa con un mayor valor de k ) luego 128coloca el resultado en decimales, que, junto con 3., es la longitud del código fuente.

Pruébalo en línea!

Un taco
fuente
¿Cómo se ve realmente el resultado? Solo veo 3.14159265617, estoy mirando en el lugar equivocado; ¿Necesito presionar un botón?
Jonathan Allan
Desmos no imprime de manera predeterminada en tantos decimales como se proporciona, pero el valor aún debe ser exacto.
ATaco
1
Eso es decepcionante ya que el desafío es "imprimir ..."
Jonathan Allan
1
"El punto decimal en la salida es necesario. Si elige generar a través del valor de retorno, debe devolver un entero de coma flotante". Lo que hace que esto sea válido.
ATaco
Siento que la intención de esa declaración no era permitir menos precisión sino asegurar un separador decimal. Eso sí, no creo que tu respuesta sea mala.
Jonathan Allan
3

Javascript, 16 bytes

_=>Math.acos(-1)

f=
_=>Math.acos(-1)
console.log(f())

Herman L
fuente
3

CJam , 5 bytes

3.14F

Pruébalo en línea!

Cómo funciona

3.14   e# Push 3.14.
    F  e# Push 15.
Dennis
fuente
Si tan solo pudieras haberlo hecho 3.E. : P, de cualquier manera, sorprendente abuso de IO.
Zacharý
Iba a publicar 3'.EF, pero luego vi esta respuesta ...
Esolanging Fruit
3

Neim , 5 bytes

3FBρσ

Explicación:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

Pruébalo en línea!

Okx
fuente
3

APL, 6 bytes

10○⍟-1

Toma la parte imaginaria de ln (-1).

Pruébalo en línea!

Uriel
fuente
¡Hola, bienvenido de nuevo @Uriel! Agradable, no estaba pensando en algo así (con registros de números negativos), ¡buen trabajo!
Zacharý
@ Zacharý gracias, acabo de dejar una visita y no pude evitar responder esto: P
Uriel
2

J , 16 bytes

17j15":4*_3 o.1:

Pruébalo en línea!

Similar a la respuesta de VBA. Salidas: 3.141592653589793.

Conor O'Brien
fuente
"No puede usar una macro incorporada o una constante para determinar pi". Divertido, es tu comentario
Leaky Nun
Su salida es de 17 bytes, no 16.
ATaco
1
@ATaco exactamente, son 16 dígitos
solo ASCII
@LeakyNun no lo hace. _3 o.1calcula atan (1). Como habrás sabido, soy muy consciente de las reglas.
Conor O'Brien
2

Math.JS , 17 bytes.

     log(-1,e).im

Eso es 5 espacios principales

Esto calcula a 15 decimales, e implícitamente lo imprime.

¡Pruébelo en línea!

Un taco
fuente
Bueno, técnicamente esto calcula la porción imaginaria de ln(-1), pero dado que es un número puramente imaginario, es equivalente a dividir por i.
Zacharý
2

05AB1E , 11 bytes

3•∊&SK•)'.ý

Pruébalo en línea!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

UTILIZANDO INSTRUMENTOS:

05AB1E , 4 bytes

žq5£

Pruébalo en línea!


3žs no funciona por alguna razón ...

Urna de pulpo mágico
fuente
@ Zacharý ¿me perdí algo? ¿Por qué es eso especial xD?
Magic Octopus Urn
Está en mi nombre de usuario, y también, ¿puedes agregar una explicación?
Zacharý
@ Zacharý HA! Mi cerebro estaba repasando todas las posibles bromas divertidas relacionadas con PPCG que podrían ser, quedando en blanco. Pienso demasiado mierda.
Magic Octopus Urn
@ Zacharý también, agregó.
Magic Octopus Urn
Si MY tuviera IO implícito, no habría forma de vencer E3., ahora estoy enojado conmigo mismo: p.
Zacharý
2

ForceLang , 269 bytes

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268
SuperJedi224
fuente
Enlace al idioma en github al menos.
Jonathan Allan
2

MATL , 9 8 bytes

-1X;V9:)

Pruébalo en línea!

Explicación:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

¡Ahorré un byte gracias a Luis Mendo!

B. Mehta
fuente
1

Jalea , 6 bytes

-ÆAær5

Pruébalo en línea!

Utiliza un enfoque diferente al de las otras respuestas de Jelly.

¿Cómo?

-ÆAes el coseno inverso de -1(que es pi), ær5recupera la sección necesaria. Funcionó, por lo que el redondeo es equivalente al truncamiento en este caso

Zacharý
fuente
1

Perl 5, 40 bytes

}{$\=$\/~(2*$_)*~$_+2for-130..-2

Requiere la opción de línea de comando -pMbignum , contada como 8.

Uso de muestra:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

Pido disculpas por no haber un enlace TIO, no parece ser compatible bignum(o una llave de apertura inigualable ...).

primo
fuente
1

MI , 7 bytes

’2ō"8↑↵

Pruébalo en línea!

¿Cómo?

  • , disminuye la parte superior de la pila ( 0aparece si está vacío, haciendo que la pila[-1] ). (Mismo símbolo que Jelly)
  • 2, empujar 2 .
  • ō, ya que la parte superior de la pila es dos, descarta el 2pop n, luego presiona acos(n)(en radianes, esto da pi, este símbolo tiene oun signo negativo encima.o (para trigonometría normal) proviene de APL).
  • ", haga estallar el elemento superior de la pila y empújelo como una cadena.
  • 8, empujar 8 .
  • , pop aentonces b, empujeb[:a] (Este es otro símbolo tomado de APL).
  • , salida con una nueva línea (OUTPUT <- STACK).
Zacharý
fuente
Luego agregue salida implícita: P
MD XF
Estoy manteniendo fiel a la naturaleza de mi, yo podría hacer una versión mejorada con la sintaxis real, y sin duda con la salida implícita
Zachary
1

RPL (HP48), 86.5 bytes, 87 dígitos [¿Esto cuenta?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB es una palabra clave de imagen. Los 2 números que siguen son ancho y alto. Los dígitos hexadecimales que siguen son mapas de bits. Eso es 1 byte de almacenamiento por cada 2 dígitos más los metadatos de la imagen.

Programa vacío « » toma 10 bytes. Un comando toma 2.5 bytes. Un flotante toma 10.5 bytes, pero si es igual a un entero de un solo dígito, puede tomar 2.5 bytes.

HP48 almacena 4 en lugar de 8 bits en cada ubicación de memoria, por lo que un byte ocupa 2 ubicaciones consecutivas (low endian). A menudo se utilizan fragmentos de 20 bits, y toman 2.5 bytes (no 3).

Heimdall
fuente
1

> <> , 16 bytes

"]a:5;."3no>n<

Pruébalo en línea!

Hay un par de no imprimibles allí, el primero tiene un valor de 26 y el segundo 141.

Jo King
fuente
0

Excel VBA, 16 bytes

Funciones de ventana inmediata anónima de VBE que no requieren entrada ni salida a ninguno de los STDOUT de Excel VBA

Cada línea representa una función separada que devuelve Pi de longitud 16

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"
Taylor Scott
fuente
0

PHP, 14 bytes

Pruébalo en línea!

<?=acos(-001);

Un poco complicado, pero la prohibición de M_PIes3.1415926535898

Francisco Hahn
fuente
0

TI-BASIC, 7 bytes

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Estas tres declaraciones se imprimirán 3.141593.


Nota: TI-BASIC es un lenguaje tokenizado. El recuento de caracteres no es igual al recuento de bytes.

Tau
fuente