Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich einen effizienten Generator für unendliche Primzahlen in Python?

Wie erstelle ich einen effizienten Generator für unendliche Primzahlen in Python?

DDD
Freigeben: 2024-12-19 12:32:09
Original
235 Leute haben es durchsucht

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

Wie implementiert man einen effizienten unendlichen Primzahlgenerator in Python?

Die Aufgabe besteht darin, einen effizienten unendlichen Primzahlgenerator in Python zu erstellen. Der Schlüsselbegriff hier ist „UNENDLICH“, was bedeutet, dass der Generator einen endlosen Strom von Primzahlen erzeugen kann, ohne zu wissen, wie viele verbraucht werden.

Die vorgeschlagene Lösung: Drei optimierte Siebfunktionen

Die Der bereitgestellte Code bietet drei optimierte Sieve-Funktionen: erat2, erat2a und erat3. Jede Funktion verbessert sich schrittweise gegenüber der vorherigen in Bezug auf Geschwindigkeit und Effizienz.

erat2a

Die erat2a-Funktion ist eine Modifikation der erat2-Funktion, die hier nicht enthalten ist. Durch die Optimierung der Seltsamkeitsprüfung und die Reduzierung der Anzahl der Schritte für Kandidaten beschleunigt erat2a die Generierung um 20–25 %.

erat3

erat3 verbessert erat2a weiter, indem es die Tatsache nutzt, dass Modulo 30 , alle Primzahlen außer 2, 3 und 5 ergeben nur acht Zahlen (1, 7, 11, 13, 17, 19, 23, 29). Dadurch kann erat3 ungerade Zahlen, die nicht in Frage kommen, effizienter herausfiltern, was zu einer Geschwindigkeitssteigerung von 35–40 % führt.

Benchmark-Ergebnisse

Benchmarks auf verschiedenen Hardwarekonfigurationen zeigen die Leistungsverbesserungen:

Auf einem Atom 330 Ubuntu 9.10-Server übertrifft erat3 erat2 und erat2a sowohl auf Python 2 als auch auf 3.

Auf einem AMD Geode LX Gentoo-Heimserver zeigt erat3 erneut erhebliche Leistungssteigerungen und übertrifft die anderen Funktionen sowohl auf Python 2 als auch auf 3.

Diese Optimierungen in den Sieve-Funktionen sorgen für einen erheblichen Vorteil bei der effizienten Generierung von Primzahlen, wodurch sie für verschiedene mathematische und rechnerische Anwendungen geeignet sind.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen effizienten Generator für unendliche Primzahlen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage