Saída com o mesmo número de dígitos de pi que o comprimento do código

9

Seu desafio é imprimir xdígitos de pi onde xestá o tamanho do seu código.

Exemplos:

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

Você pode usar para determinar o número de dígitos que você precisa imprimir. Observe que o ponto decimal não conta como um dígito de pi - portanto, o código de comprimento 3 deve ter saída , de comprimento 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Regras:

  • O tamanho do seu código deve ter mais de três caracteres.
  • Você não pode usar nenhuma brecha padrão.
  • Você pode usar qualquer método de saída padrão permitido.
  • Você não pode ler sua fonte para determinar o tamanho do código.
  • Você não pode usar uma constante pi interna.
  • Pi deve ser completamente preciso e não aproximado.
  • O ponto decimal na saída é necessário. Se você optar por imprimir via valor de retorno, deverá retornar um número inteiro de ponto flutuante.
  • O objetivo deste desafio é encontrar a solução mais curta em cada idioma, não o idioma mais curto para a solução. Não tenha medo de postar uma solução em um idioma quando uma solução mais curta for postada no mesmo idioma, desde que sua solução use um método diferente.
MD XF
fonte
... então isso seria válido ou não?
Jonathan Allan
(edit ^ this even (rounding)) #
11137 Jonathan Allan #
“Comprimento do código” ← em bytes ou em caracteres?
Lynn
@ Lynn Bytes, como de costume.
MD XF
É apenas 3permitido?
NoOneIsHere

Respostas:

3

Japonês , 9 4 bytes

Tão curto quanto ele pode ser permitido :)

Inclui um não imprimível (avanço de linha reverso, código 141) após o #.

3.#

Teste-o

No Japt, qualquer caractere a seguir #é convertido em seu código de caractere e anexado a qualquer dígito ou ponto decimal que possa precedê-lo; nesse caso, o3.

Shaggy
fonte
8

Mathematica, 18 bytes

usando a função zeta

insira a descrição da imagem aqui

Sqrt[6Zeta@2]~N~18

Experimente online!

J42161217
fonte
7

Geléia , 9 bytes

“Œı⁸Ç’÷ȷ8

Experimente online!

Saídas 3.14159265

Como funciona

“Œı⁸Ç’     - The integer 314159265
      ÷    - divide
       ȷ8  - The integer 100000000
fireflame241
fonte
Pi não está sendo calculado!
sergiol 16/09
5
sim, é, dividindo 314159265 pelo 100000000 :-)
Florian F
6

VBA (Excel), 15 bytes

MsgBox 4*Atn(1)

Saída: 3.14159265358979

Eu acho que isso não é aceitável, pois joguei apenas para ajustar o comprimento do PI. O comprimento não-golfe é de 17 bytes. D:

remoel
fonte
11
Parece que você ainda não foi bem-vindo, então seja bem-vindo ao site!
MD XF
Oh, obrigado senhor! : D
remoel 15/09
Não é Atnacidental? Eu não tenho certeza se isso é permitido ... perguntando OP
JungHwan Min 15/17
Eu pensei que OP está se referindo apenas ao PI interno. Foi mal.
remoel 15/09
5

Gelatina , 6 bytes

3;⁽4ƒṾ

Experimente online!

Impressões 3,14159 com o separador decimal "europeu" permitido ,,.

Como?

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
fonte
11
Essa lista de dígitos parece estranha. Eu acho que há um extra ,'lá.
Jonathan Frech 15/17
11
Você pode fazer -ÆAær5e usar em .vez de ,, mas seria o mesmo que minha solução Jelly.
Zachary
4

Python 3 , 64 bytes

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

Experimente online!

Freira Furada
fonte
O equivalente em Python 2 é de 60 bytes print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36).
Jonathan Allan
@JonathanAllan python 2 em 59: tio.run/##K6gsycjPM/r/…
primo
@primo parece com uma para postar se e quando ...
Jonathan Allan
11
@ JonathanAllan, se você quer dizer quando é reaberto, é agora.
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}}

O código-fonte para isso (que pode ser acessado copiando e colando dentro e fora do Desmos) não é ideal quando gerado usando o editor do Desmos; portanto, alguns bytes de espaço em branco foram reduzidos sempre que possível.

Isso define uma função fque não aceita argumentos, retorna pi, calculada usando a sequência Gregory para k=9^9 (não posso confirmar se isso é preciso o suficiente, no entanto, acredito que seja, ela pode ser mais precisa com um valor maior de k ) , então coloca o resultado em 128casas decimais, que, ao lado de 3., são o comprimento do código-fonte.

Experimente online!

ATaco
fonte
Como alguém realmente vê o resultado - só vejo 3.14159265617, estou olhando no lugar errado; preciso apertar um botão?
Jonathan Allan
Por padrão, o Desmos não imprime com o máximo de casas decimais fornecido, mas o valor ainda deve ser preciso.
ATaco 15/09
11
Isso é decepcionante, já que o desafio é "imprimir ..."
Jonathan Allan
11
"O ponto decimal na saída é necessário. Se você optar por enviar via valor de retorno, deverá retornar um número inteiro de ponto flutuante." o que torna isso válido.
ATaco 15/09
Sinto que a intenção dessa afirmação não era permitir menos precisão, mas garantir um separador decimal. Veja bem, eu não acho que sua resposta seja ruim.
Jonathan Allan
3

Javascript, 16 bytes

_=>Math.acos(-1)

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

Herman L
fonte
3

CJam , 5 bytes

3.14F

Experimente online!

Como funciona

3.14   e# Push 3.14.
    F  e# Push 15.
Dennis
fonte
Se você pudesse ter feito 3.E. : P, de qualquer maneira, abuso incrível de IO.
Zacharý 18/09/19
Estava indo para pós 3'.EF, mas então eu vi esta resposta ...
Esolanging Fruit
3

Neim , 5 bytes

3FBρσ

Explicação:

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

Experimente online!

Okx
fonte
3

APL, 6 bytes

10○⍟-1

Toma a parte imaginária de ln (-1).

Experimente online!

Uriel
fonte
Ei, bem vindo de volta @Uriel! Legal, eu não estava pensando em nada disso (com registros de números negativos), bom trabalho!
Zacharý 18/09/17
@ Zachary graças, caiu apenas uma visita e não poderia ajudar a responder a esta: P
Uriel
2

J , 16 bytes

17j15":4*_3 o.1:

Experimente online!

Semelhante à resposta do VBA. Saídas: 3.141592653589793.

Conor O'Brien
fonte
"Você não pode usar uma macro ou uma constante interna para determinar pi." Engraçado, é o seu comentário
Leaky Nun
Sua saída é de 17 bytes, não de 16.
ATaco
11
@ATaco exatamente, tem 16 dígitos
somente ASCII
@LeakyNun isso não acontece. _3 o.1calcula atan (1). Como você deve saber, eu estou bem ciente das regras.
Conor O'Brien
2

Math.JS , 17 bytes.

     log(-1,e).im

São 5 espaços principais

Isso calcula até 15 casas decimais e o imprime implicitamente.

Experimente Online!

ATaco
fonte
Bem, tecnicamente isso calcula a parte imaginária de ln(-1), mas como é um número puramente imaginário, é equivalente a dividir por i.
Zachary
2

05AB1E , 11 bytes

3•∊&SK•)'.ý

Experimente online!

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.

USANDO BUILT-INS:

05AB1E , 4 bytes

žq5£

Experimente online!


3žs não funciona por algum motivo ...

Urna de polvo mágico
fonte
@ Zacharý, eu perdi alguma coisa? Por que esse xD especial?
Urna Mágica de Polvo
Está no meu nome de usuário e você também pode adicionar uma explicação?
Zachary
@ Zacharý HA! Meu cérebro estava passando por todas as possíveis piadas engraçadas relacionadas ao PPCG, ficando em branco. Eu acho demais.
Urna Mágica de Polvo
@ Zacharý também acrescentou.
Magic Octopus Urn
Se o meu tivesse implicações implícitas, não haveria como vencer E3., estou com raiva de mim mesmo agora: p.
Zachary
2

ForceLang , 269 bytes

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268
SuperJedi224
fonte
Link para o idioma no github pelo menos.
Jonathan Allan
2

MATL , 9 8 bytes

-1X;V9:)

Experimente online!

Explicação:

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

Guardado um byte graças a Luis Mendo!

B. Mehta
fonte
1

Gelatina , 6 bytes

-ÆAær5

Experimente online!

Usa uma abordagem diferente das outras respostas Jelly.

Como?

-ÆAé cosseno inverso de -1(que é pi), ær5recupera a seção necessária. Funcionou tão arredondamento é equivalente a truncamento neste caso

Zacharý
fonte
1

Perl 5, 40 bytes

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

Requer a opção de linha de comando -pMbignum , contada como 8.

Uso da amostra:

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

Peço desculpas por nenhum link TIO, ele não parece suportar bignum(ou uma chave de abertura incomparável ...).

primo
fonte
1

MEU , 7 bytes

’2ō"8↑↵

Experimente online!

Como?

  • , diminua a parte superior da pilha ( 0aparece se estiver vazia, tornando a pilha[-1] ). (Mesmo símbolo que Jelly)
  • 2empurre 2.
  • ō, como o topo da pilha é dois, descarte o 2, pop ne pressione acos(n)(em radianos, isso fornece pi, este símbolo está ocom um sinal negativo em cima). o(para trigonométricas normais) vem da APL).
  • ", pop o elemento superior da pilha e empurre-o como uma string.
  • 8empurre 8.
  • , pop ae bpressione b[:a](Este é outro símbolo retirado do APL).
  • , imprima com uma nova linha (OUTPUT <- STACK).
Zacharý
fonte
Em seguida, adicione saída implícita: P
MD XF
Estou mantendo fiel à natureza do meu, eu poderia fazer uma versão melhorada com sintaxe real, e definitivamente com saída implícita
Zachary
1

RPL (HP48), 86,5 bytes, 87 dígitos [Isso conta?]

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

GROB é uma palavra-chave de imagem. Os 2 números a seguir são largura e altura. Os dígitos hexadecimais a seguir são bitmap. São 1 byte de armazenamento para cada 2 dígitos, mais os metadados da imagem.

Programa vazio « » leva 10 bytes. Um comando ocupa 2,5 bytes. Um float ocupa 10,5 bytes, mas se for igual a um número inteiro de um dígito, pode levar 2,5 bytes.

A HP48 armazena 4 em vez de 8 bits em cada local da memória; portanto, um byte ocupa 2 locais consecutivos (low endian). Geralmente, são usados ​​pedaços de 20 bits e eles levam 2,5 bytes (não 3).

Heimdall
fonte
1

> <> , 16 bytes

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

Experimente online!

Há alguns imprimíveis lá dentro, o primeiro tendo valor 26 e o ​​segundo 141.

Brincadeira
fonte
0

Excel VBA, 16 bytes

Funções de janela imediata do VBE anônimo que não recebem entrada nem saída para nenhum dos STDOUTs do Excel VBA

Cada linha representa uma função separada que retorna Pi de comprimento 16

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

PHP, 14 bytes

Experimente online!

<?=acos(-001);

Um pouco complicado, mas a precição de M_PIé3.1415926535898

Francisco Hahn
fonte
0

TI-BASIC, 7 bytes

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Essas três instruções serão impressas 3.141593.


Nota: TI-BASIC é um idioma tokenizado. Contagem de caracteres não é igual à contagem de bytes.

Tau
fonte