Si pháp
Tố số si pháp
Dẫn vào
Nếu chúng ta muốn biết nhỏ hơn hoặc bằng
Một cái tự nhiên ý tưởng là đối với nhỏ hơn hoặc bằng
Ai kéo Tost ni si pháp
Quá trình
Suy xét như vậy một việc: Đối với tùy ý một cái lớn hơn
Nếu chúng ta từ nhỏ đến lớn suy xét mỗi cái số, sau đó đồng thời đem trước mặt cái này số sở hữu ( so với chính mình đại ) bội số nhớ vì hợp số, như vậy vận hành kết thúc thời điểm không có bị đánh dấu số chính là tố đếm.
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Trở lên vìEratosthenes si pháp( ai kéo Tost ni si pháp, tên gọi tắt ai thị si pháp ), thời gian phức tạp độ là
Chứng minh
Hiện tại chúng ta liền tới nhìn xem suy luận quá trình:
Nếu mỗi một lần đối số tổ thao tác tiêu phí 1 cái đơn vị thời gian, tắc thời gian phức tạp độ vì:
Trong đóif (prime[i])
Tiến vào true chi nhánh số lần;
Căn cứ Mertens đệ nhị định lý, tồn tại hằng số
Cho nênEratosthenes si phápThời gian phức tạp độ vì
Căn cứ
Đương nhiên, mặt trên cách làm hiệu suất vẫn cứ không đủ hiệu suất cao, ứng dụng phía dưới vài loại phương pháp có thể hơi chút đề cao thuật toán chấp hành hiệu suất.
Si đến căn bậc hai
Hiển nhiên, muốn tìm được thẳng đến
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Loại này ưu hoá sẽ không ảnh hưởng tiến dần thời gian phức tạp độ, trên thực tế lặp lại trở lên chứng minh, chúng ta đem được đến
Chỉ si số lẻ
Bởi vì trừ 2 bên ngoài số chẵn đều là hợp số, cho nên chúng ta có thể trực tiếp nhảy qua chúng nó, chỉ dùng quan tâm số lẻ liền hảo.
Đầu tiên, làm như vậy có thể làm chúng ta nội tồn nhu cầu giảm phân nửa; tiếp theo, sở cần thao tác ước chừng cũng giảm phân nửa.
Giảm bớt nội tồn chiếm dụng
Chúng ta chú ý tới sàng chọn khi chỉ cầnbool
Loại hình số tổ.bool
Số tổ một cái nguyên tố giống nhau chiếm dụng
Chúng ta có thể sử dụngVị giải toánTương quan tri thức, đem mỗi cái bố ngươi giá trị áp đến một cái so đặc vị trung, như vậy chúng ta chỉ cần sử dụng
Đáng giá nhắc tới chính là, tồn tại tự động chấp hành vị cấp áp súc số liệu kết cấu, như C++ trungvector<bool>
Cùngbitset
.
Mặt khác,vector<bool>
Cùngbitset
Đối trình tự có hằng số ưu hoá, thời gian phức tạp độbitset
Hoặcvector<bool>
Ưu hoá sau, tính năng thậm chí vượt qua thời gian phức tạp độ
Tham kiếnbitset: Cùng ai thị si kết hợp.
Phân khối sàng chọn
Từ ưu hoá “Si đến căn bậc hai” cũng biết, không cần vẫn luôn giữ lại toàn bộis_prime[1...n]
Số tổ. Vì tiến hành sàng chọn, chỉ giữ lại đếnprime[1...sqrt(n)]
.Cũng đem toàn bộ phạm vi phân thành khối, mỗi cái khối phân biệt tiến hành sàng chọn. Như vậy, chúng ta liền không cần đồng thời ở bên trong tồn người trung gian lưu nhiều khối, hơn nữa CPU có thể càng tốt mà xử lý hoãn tồn.
Thiết
Đáng chú ý chính là, chúng ta ở xử lý cái thứ nhất con số khi yêu cầu hơi chút sửa chữa một chút sách lược: Đầu tiên, ứng giữ lại
Dưới thực hiện sử dụng khối sàng chọn tới tính toán nhỏ hơn hoặc bằng
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Phân khối si pháp tiến dần thời gian phức tạp độ cùng ai thị si pháp là giống nhau ( trừ phi khối phi thường tiểu ), nhưng là sở cần nội tồn đem thu nhỏ lại vì
Khối lớn nhỏ
Tuyến tính si pháp
Ai thị si pháp vẫn có ưu hoá không gian, nó sẽ đem một cái hợp số lặp lại nhiều lần đánh dấu. Có biện pháp gì không bỏ bớt vô ý nghĩa bước đi đâu? Đáp án là khẳng định.
Nếu có thể làm mỗi cái hợp số đều chỉ bị đánh dấu một lần, như vậy thời gian phức tạp độ liền có thể hàng đến
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Mặt trên loại nàyTuyến tính si phápCũng xưng làEuler si pháp( Âu kéo si pháp ).
Note
Chú ý tới si pháp cầu tố số đồng thời cũng được đến mỗi cái số nhỏ nhất chất ước số.
Si pháp cầu Âu kéo hàm số
Chú ý tới tại tuyến tính si trung, mỗi một cái hợp số đều là bị nhỏ nhất chất ước số si rớt. Tỷ như thiết
Quan sát tuyến tính si quá trình, chúng ta còn cần xử lý hai cái bộ phận, phía dưới đối
Nếu
Kia nếu
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Si pháp cầu Mobius hàm số
Định nghĩa
Căn cứ Mobius hàm số định nghĩa, thiết
Nếu
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Si pháp cầu số ước lượng cái số
Dùng
Số ước lượng cái số định lý
Định lý: Nếu
Chứng minh: Chúng ta biết
Thực hiện
Bởi vì
Ở chỗ này đơn giản giới thiệu một chút tuyến tính si thực hiện nguyên lý.
- Đương
Vì số nguyên tố khi, ,Đồng thời thiết ,Trong đó Vì Nhỏ nhất chất ước số. - Đương
Vì Chất ước số khi, . - Đương
Hơn kém nhau khi, .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Si pháp cầu số ước lượng cùng
Thực hiện
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Giống nhau tích tính hàm số
Nếu một cáiTích tính hàm số
Thiết hợp số
Nếu
Bổn tiết bộ phận nội dung dịch tự bác vănРешето ЭратосфенаCùng với tiếng Anh phiên dịch bảnSieve of Eratosthenes.Trong đó tiếng Nga bản bản quyền hiệp nghị vì Public Domain + Leave a Link; tiếng Anh bản bản quyền hiệp nghị vì CC-BY-SA 4.0.
Bổn giao diện gần nhất đổi mới:2024/10/9 22:38:42,Đổi mới lịch sử
Phát hiện sai lầm? Tưởng cùng nhau hoàn thiện?Ở GitHub thượng biên tập này trang!
Bổn giao diện cống hiến giả:iamtwz,StudyingFather,HeRaNO,Mr-Python-in-China,shuzhouliu,TravorLZH,weilycoder,wood3,YOYO-UIAT,1804040636,383494,aofall,CCXXXI,CoelacanthusHex,countercurrent-time,cubeheadsun,Early0v0,Enter-tainer,frank-xjh,gongyisheng,Great-designer,greyqz,H-J-Granger,hqztrue,ImpleLee,inkydragon,Ir1d,LJFYC007,luojiny1,Lutra-Fs,Marcythm,MegaOwIer,Menci,mgt,NachtgeistW,opsiff,partychicken,Peanut-Tang,PerfectPan,Persdre,shawlleyw,StableAgOH,Steaunk,SukkaW,sunruisjtu2020,TianKong-y,Tiphereth-A,TrisolarisHD,untitledunrevised,WAAutoMaton,WineChord,Xeonacid,YanWQ-monad,zhouyuyang2002
Bổn giao diện toàn bộ nội dung ởCC BY-SA 4.0CùngSATAHiệp nghị chi điều khoản hạ cung cấp, phụ gia điều khoản cũng khả năng ứng dụng