首頁 > 後端開發 > Python教學 > 如何用 Python 創建高效的無限素數生成器?

如何用 Python 創建高效的無限素數生成器?

DDD
發布: 2024-12-19 12:32:09
原創
290 人瀏覽過

How to Create an Efficient Infinite Prime Number Generator in Python?

如何在Python中實現一個高效的無限素數產生器?

任務是在Python中創建一個高效的無限素數產生器。這裡的關鍵術語是“無限”,這意味著生成器可以產生無窮無盡的素數流,而不知道會消耗多少素數。

建議的解決方案:三個最佳化的篩函數

提供的程式碼提供了三個最佳化的篩函數:erat2、erat2a 和erat3。每個函數在速度和效率方面都比前一個函數逐漸提高。

erat2a

erat2a 函數是erat2 函數的修改,這裡不包含。透過優化奇數檢查並減少候選步驟數,erat2a 將生成速度提高了 20-25%。

erat3

erat3 利用模30 的事實進一步增強了erat2a ,除了2、3 和5 之外的所有素數都只產生八個數字(1、7、11、13、 17、19、23、29)。這使得erat3能夠更有效地過濾掉非候選奇數,從而將速度提高35-40%。

基準測試結果

不同硬體配置上的基準測試展示了效能改進:

在Atom 330 Ubuntu 9.10 伺服器上,erat3 在這兩個方面均優於erat2 和erat2a Python 2 和3。

在 AMD Geode LX Gentoo 家庭伺服器上,erat3 再次顯示出顯著的效能提升,優於 Python 2 和 3 上的其他函數。

Sieve 函數中的這些最佳化在有效生成素數方面提供了顯著的優勢,使其適用於各種數學和計算應用。

以上是如何用 Python 創建高效的無限素數生成器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板