Escreva um programa para calcular os primeiros 500 dígitos do pi, atendendo às regras abaixo:
- Ele deve ter menos de 500 caracteres.
- Ele não pode incluir constantes "pi", "math.pi" ou pi semelhantes, nem pode chamar uma função de biblioteca para calcular pi.
- Não pode usar os dígitos "3", "1" e "4" consecutivamente.
- Ele deve ser executado em um tempo razoável (menos de 1 minuto) em um computador moderno.
O programa mais curto vence.
code-golf
restricted-source
pi
Thomas O
fonte
fonte
Respostas:
Golfscript - 29 caracteres
Postarei a análise mais tarde
fonte
Mathematica (34 caracteres): (sem "trapaça" com trig)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Então, para explicar a mágica aqui:
Integrate[function, lower, upper]
fornece a área sob a curva "função" de "inferior" a "superior". Nesse caso, essa função é[1-x^2]^.5
, que é uma fórmula que descreve a metade superior de um círculo com raio 1. Como o círculo possui um raio de 1, ele não existe para valores de x menores que -1 ou maiores que 1. Portanto, estamos encontrando a área de metade de um círculo. Quando multiplicamos por 2, obtemos a área dentro de um círculo de raio 1, que é igual a pi.fonte
sqrt[1-x^2]
para(1-x^2)^.5)
Python (83 caracteres)
fonte
PARI / GP, 14
Você pode evitar triggers, substituindo a segunda linha por
ou
ou
ou
ou
fonte
bc -l (22 = 5 linha de comando + 17 programa)
fonte
Mathematica (17 bytes)
Prova de validade .
fonte
Python3 136
Usa a fórmula de Madhava .
Python3 164
Usa esta fórmula.
fonte
Mathematica - 50
fonte
Pyth , 21
Usa este algoritmo:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
encontrado nos comentários da resposta Golfscript.fonte
r
operação foi alterada recentemente de uma maneira que quebrou esta resposta. Altere1
para a0
e funcionará no Pyth atual.Axioma, 80 bytes
para referência https://tuts4you.com/download.php?view.452 ; seria uma estimativa para 6 * arctg (1 / sqrt (3)) =% pi e usaria a expansão da série para arctg
fonte
JavaScript, 68 bytes
Experimente online!
fonte