Tôi đang chơi xung quanh với .NET BigInteger và về cơ bản tôi đang tự hỏi con số nào - một câu trả lời ước tính sẽ ổn-- là điểm sai lệch của đường cong (biểu đồ (tăng thời gian cần thiết cho các hoạt động) so với (giá trị của BigInteger))?
hoặc chúng được thiết kế không có độ lệch như vậy sao cho nếu chúng ta vẽ biểu đồ tăng thời gian cần thiết cho các hoạt động so với giá trị của BigInteger từ 1 đến vô cùng, chúng ta sẽ có một đường cong trơn tru?
ví dụ, giả sử mảng được thiết kế với khả năng xử lý 50 mục. điều này có nghĩa là nếu tôi có 1 mục, các thao tác là f (1) thời gian. và khi tôi có 2 mục, hoạt động là f (2) thời gian. nếu tôi có 50 mục, hoạt động là f (50) thời gian. nhưng vì nó được thiết kế để chỉ xử lý 50 mục, nên các thao tác được thực hiện khi chúng tôi có 51 mục sẽ là g (51) trong đó g (51)> f (51).
Nếu được thực hiện đúng, độ phức tạp của số học BigInteger sẽ là một đường cong trơn tru. Ví dụ, độ phức tạp thời gian của phép nhân phải là O (NM) trong đó N là số chữ số trong bội số thứ nhất và M là số chữ số trong bội số thứ hai. Tất nhiên, có những giới hạn thực tế ở chỗ bạn có thể chọn N và M lớn đến mức những con số không vừa với máy của bạn.
Có ai / có ai biết bất kỳ tài liệu nào tuyên bố rằng nó được thực hiện như vậy không?