| Crates.io | rustedbytes-pi |
| lib.rs | rustedbytes-pi |
| version | 0.1.0 |
| created_at | 2025-04-20 15:47:51.029712+00 |
| updated_at | 2025-04-20 15:47:51.029712+00 |
| description | Computes digits of Pi using the Chudnovsky algorithm |
| homepage | https://github.com/mad4j/howlast |
| repository | https://github.com/mad4j/howlast |
| max_upload_size | |
| id | 1641823 |
| size | 1,123,327 |
Fast computation of PI digits in Rust
Per calcolare Pi (π) utilizzando l'algoritmo di Chudnovsky, è necessario implementare una formula che utilizza serie ipergeometriche. L'algoritmo di Chudnovsky è molto efficiente e converge rapidamente, permettendo di calcolare Pi a un'elevata precisione. La formula richiede calcoli di potenza, fattoriali e radici quadrate. Formula di Chudnovsky: Code
1/π = 12 * Σ(k=0 to ∞) [ (6k)! * (545140134k + 13591409) ] / [(3k)! * (k!)^3 * 640320^k ] Come calcolare Pi passo dopo passo:
from decimal import Decimal, getcontext
def pi_chudnovsky(num_digits): getcontext().prec = num_digits + 10 # set precision pi = Decimal(0) k = Decimal(0) while len(str(pi)) < num_digits: term = (Decimal(6).factorial(6 * k) * (Decimal(545140134) * k + Decimal(13591409))) / (Decimal(3).factorial(3 * k) * Decimal(k).factorial(k) ** 3 * Decimal(640320) ** k) pi += term k += 1 return Decimal(1) / (12 * pi)
print(pi_chudnovsky(100)) Considerazioni: L'algoritmo di Chudnovsky è molto efficiente per il calcolo di Pi, ma richiede un'implementazione corretta in un linguaggio di programmazione e la gestione della precisione per ottenere risultati accurati. La velocità di calcolo dipende dalla precisione desiderata e dalla potenza di elaborazione del dispositivo. Esistono implementazioni ottimizzate dell'algoritmo di Chudnovsky disponibili online, che possono essere utilizzate come riferimento.