2013-06-03 59 views
6

Tôi đang cố tính toán pi với độ chính xác tùy ý trên Python bằng cách sử dụng một trong các công thức của Ramanujan: http://en.wikipedia.org/wiki/Approximations_of_%CF%80#20th_century. Về cơ bản nó đòi hỏi rất nhiều giai thừa và phân chia số nổi chính xác cao.Tính Pi với số thập phân trên Python

Dưới đây là mã của tôi cho đến nay: http://pastie.org/private/pa6ijmoowiwiw4xwiqmq

Tôi nhận được lỗi ở đâu đó xung quanh chữ số thứ mười lăm của pi (3,1415926535897930 và nó phải 3,1415926535897932). Bạn có thể đưa ra một số lời khuyên tại sao nó xảy ra? Tôi đang sử dụng loại thập phân và các tài liệu nói rằng nó cho phép các số nguyên và số nguyên chính xác tùy ý.

PS: Đây là bài tập về nhà nên tôi không thể sử dụng công thức khác. PSS: Tôi đang sử dụng python 2.7

Cảm ơn :)

+2

Bạn nhận ra rằng 'thập phân (sqrt (2))' là một cách phức tạp để thực hiện 'sqrt (2)' mà không có 'Decimal'? Hãy thử với 'Decimal (2) .sqrt()' – Bakuriu

Trả lời

3

Sử dụng Decimal(2).sqrt() thay vì Decimal(sqrt(2)).

Tôi đã kiểm tra 1000 chữ số đầu tiên và dường như hoạt động tốt. Nhân tiện, vì một số lý do mã của bạn xuất ra 1007 chữ số thập phân thay vì 1000.

+0

Yup i thêm độ chính xác chỉ để chắc chắn. Cảm ơn rất nhiều:) – GeneralFailure

Các vấn đề liên quan