Um milhão de digitos de PI em 8 Linhas
Se você gosta de javascript o cálculo de Pi é uma excelente experiência para ser feita que leva ao conhecimento do uso de BigInt .
Pi
Pi é um número transcendental essencial para diversos cálculos na área de engenharia. Apesar de ter incontáveis(!?) digitos não se precisa de muitos digitos para os cálculos. A Nasa utiliza 15 casas decimais para levar as sondas para Marte e se quisessemos calcular o diâmetro do tamanhao do universo (46 billhões e anos luz) com uma precisão de nanometros precisariamos de 40 casas decimais. Entretanto é um excelente ferramenta para demonstrar a capacidade de um computador, tão boa que quando Spock precisou “parar” o computador da Enterprise mandou ele calcular o último digito de Pi, o que fez o computador travar. Por isso fiquei atraido pela experiência que foi feita em usar javascript para calcular milhares de digitos de Pi.
Gerando Pi
Que tal gerar o valor de PI coma algumas milhares de casas usando javascript.
O Algoritmo:
1 | let i = 1n; |
A grande sacada é o uso de BigInt. Em javascrip um BigInt é definido quando adicionamos o sufixo n, assim 1n é um BigInt.
O Algoritmo acima permite calcular os primeiros 1000 números de PI.
O algoritmo é baseado na seguinte série:
Você pode contestar a velocidade do algoritmo , mas não pode contestar que ele é pequeno e permite avaliar por exemplo o desempenho do javascript de alguns navegadores ou do nodejs (nota : alguns navegadores não tem BigInt).
Caso queira saber mais veja os links abaixo.
Links
Hacker News
A Million Digits of Pi in 9 Lines of Javascript
BigInt