2013-04-09 35 views
6

Tôi đã làm việc với các thuật toán chính xác tùy ý gần đây và rất tò mò về cách Python sử dụng nó. Khi tôi gõ một chữ số rất lớn (600-1000) chia cho một số lớn tương tự, nó chỉ hoạt động và tôi thích nó. Tôi có các tệp nguồn Python và không sao với C, cái nào/ở đâu trong nguồn là phần chi phối bộ phận này để tôi có thể nhìn vào nó và có thể là tinker với nó? Trò chơi kết thúc của tôi là công việc loại lý thuyết số trong C.Bộ phận chính xác đầy đủ của Python Nguồn

+0

Tôi tin rằng Python sử dụng [thư viện GMP] (http://gmplib.org/). – Mysticial

+1

Bạn muốn tìm trong 'Objects/longobject.c' trong nguồn python2.x. Tôi không chắc nó ở đâu trong nguồn python3.x – mgilson

+0

Có vẻ như tôi là hàm 'l_divmod' dựa trên các chú thích. – mgilson

Trả lời

2

Cốt lõi của việc triển khai long/long bằng Python 3.3 nằm ở longobject.c, với chức năng x_divrem.

Triển khai được mô hình hóa sau "Nghệ thuật lập trình máy tính" của Knuth, Vol. 2 (ấn bản thứ 3), mục 4.3.1, Thuật toán D "Phân chia các số nguyên không âm", theo một nhận xét từ nguồn.

+0

bạn thật tuyệt vời. Có vẻ như tôi sẽ đọc rất nhiều vào cuối tuần này. :) – user1601118

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