2009-05-24 24 views
5

Dường như có một số thuật toán hệ số lũy thừa thực sự nhanh chóng xung quanh (có vẻ lý tưởng là sàng bậc hai). Tuy nhiên, thay vì thực hiện của riêng tôi (có thể nghèo) thực hiện tôi muốn sử dụng một thư viện sẵn sàng thực hiện cho sự đơn giản.C hoặc C++: Thư viện cho số nguyên bao thanh toán?

Tôi cần phải có khả năng tính các số nguyên lên đến 15 chữ số một cách hiệu quả. Vì lý do đó, tôi không tìm kiếm thuật toán nhất thiết phải quy mô tốt nhất vì chúng ta có thể giả định các con số được thừa nhận nhỏ hơn 10 .

Tôi đã xem một số triển khai được liệt kê trên Wikipedia's Quadratic Sieve page. Tuy nhiên, một số triển khai dường như không được duy trì tốt; một số không có tài liệu; và như vậy! Tôi đã kiểm tra nếu một vài thư viện nổi tiếng, chẳng hạn như Boost, có phương pháp hệ số hóa nhưng chúng dường như không.

Có ai có thể giới thiệu thư viện phù hợp với các tiêu chí trên không?

+0

"Câu hỏi yêu cầu chúng tôi đề xuất hoặc tìm sách, công cụ, thư viện phần mềm, hướng dẫn hoặc tài nguyên ngoài trang web khác không có chủ đề cho Stack Overflow vì chúng có xu hướng thu hút câu trả lời và spam được đề xuất. và những gì đã được thực hiện cho đến nay để giải quyết nó. " – genpfault

+1

@genpfault Tài khoản của OP đã bị xóa ... câu hỏi này là 8 tuổi. – qxz

Trả lời

1

Khám phá thư viện MSIEVE để tính số nguyên lớn của Jason Papadopoulos.

Làm là kết quả của những nỗ lực của tôi để hiểu và tối ưu hóa cách số nguyên được tính toán bằng các thuật toán hiện đại mạnh mẽ nhất.

Tài liệu này tương ứng với phiên bản 1.46 của thư viện Msieve. Đừng mong đợi trở thành một chuyên gia bao thanh toán chỉ bằng cách đọc nó. Tôi đã bao gồm một danh sách tài liệu tham khảo tương đối đầy đủ mà bạn có thể và nên tra cứu nếu bạn muốn xem mã nhiều hơn một hộp đen để giải quyết vấn đề bao thanh toán của bạn.

+0

Một lần nữa, tôi không thể tìm thấy bất kỳ tài liệu thực sự nào về nó. Tôi không chắc làm thế nào nó sẽ tích hợp với chương trình của tôi và, do đó, cho dù nó sẽ làm việc! –

+1

Vâng, tôi đã nói bạn có thể ... :) Tôi cũng quan tâm đến việc hệ số hóa. Yếu tố hóa là một vấn đề khó khăn và có lẽ sẽ rất khó để tìm thấy một thư viện tài liệu và * nhanh *. –

+0

Tôi đồng ý; đặc biệt là với sự độc quyền gần như lẫn nhau của một tài liệu dự án và tốc độ. ;) –

-1

Làm thế nào về GMP-ECM?

+0

Tôi không thể tìm thấy bất kỳ tài liệu nào trên đó (phần "Tài liệu" của nó trống). Tên của nó cũng có vẻ gợi ý rằng nó sử dụng GMP để lưu trữ các số nguyên. Tôi muốn sử dụng số nguyên 64 bit (kể từ khi tôi chạy trên một máy tính 64bit). –

+0

Bạn đã kiểm tra tệp readme.lib trong bản phân phối nguồn chưa? Nó không phải là tài liệu chi tiết nhất, nhưng nó giải thích cách nó hoạt động. (Tuy nhiên, nó không sử dụng gmp, và không 64 bit số nguyên). – Soroosh