Hallo Community
Wollte den schon lange mal hier reinstellen. Hier ein sehr schneller Prime-Generator.
Aufgebaut auf den zwei Gleichungen
Das heisst:
Eine x-beliebige Zahl multipliziert mit 4 oder 6 ± 1 ist ein potentieller Prime-Kandidat.
Spoiler anzeigen
EDIT:
Eine kleines WinForms-Beispiel hinzugefügt.
Danke RFG, ich hoffe das Anhängsel gibt es wieder.
EDIT:
Bin gerade auf das Video gestossen, wobei ich meine Formeln noch ein bisschen präziser ausgedrückt habe.
The Prime Number Race (with 3Blue1Brown) - Numberphile
Freundliche Grüsse
exc-jdbi
UPDATES:
Primegen.vb - Erste Version in Vb.Net - 2019
PFPG.zip - Winformsanwendung in Vb.Net - 2019
PFPG-DotNet8.0.zip - Optimierte Winform C#-Version .Net8.0 - 2024
PFPG-DotNet8.0-Async.zip - Winform C#-Async-Parallel .Net8.0 - 2024
BigPrimeGenerator.cs - C#-Console .Net8.0 Async-Parallel, nur lange Primes-Generierung - 2024
Different_BigPrimeGenerators.zip - C#-Console Async-Parallel, mit verschiedenen Arten der BigPrimeGenerators. - 2024
DiemitkoAlgoritm.zip - C#-Console .Net8.0, Async-Parallel, ein interessanter Primzahlenfinder, der lange von der Ukraine verwendet worden ist. - 2024
NEU: Different_BigPrimeGenerator.zip Async-Parallel. Beinhaltet die schnellste je entwickelte Variante, die ich kenne. Siehe auch folgender Link mit Beispiele für C# und Vb.Net.
github.com/exc-jdbi/BigPrimeGenerators
Wollte den schon lange mal hier reinstellen. Hier ein sehr schneller Prime-Generator.
Aufgebaut auf den zwei Gleichungen
Das heisst:
Eine x-beliebige Zahl multipliziert mit 4 oder 6 ± 1 ist ein potentieller Prime-Kandidat.
VB.NET-Quellcode
- 'Generator instanzieren
- Dim pfpg As New PowerFastPrimeGenerator
- 'Anzahl definieren
- Dim cnt = 1_000I
- 'Array für Primzahlen
- Dim primes1 = New Int64(cnt - 1) {}
- For i As Int32 = 0 To cnt - 1
- primes1(i) = pfpg.GetPrime()
- Next
- Console.WriteLine("Count = {0}", cnt)
- 'Primes in einem bestimmten Bereich
- Dim primes2 = New Int64(cnt - 1) {}
- Dim _min, _max As Int64
- _min = 300_000L
- _max = 500_000L
- 'Prüfen von min und max
- 'über die Swap-Methode
- pfpg.Swap(_min, _max)
- For i As Int32 = 0 To cnt - 1
- primes2(i) = pfpg.GetPrime(_min, _max)
- Next
- Console.WriteLine("Count = {0}", cnt)
- 'PrimeTest mit Miller-Rabbin (BigInteger)
- '>> !!! Methode IsMRPrime auf Public stellen
- Dim isprime As Boolean = False
- Dim num = 9223372036854775783L
- If pfpg.IsMRPrime(num) Then
- isprime = True
- End If
- Console.WriteLine("{0} is Prime: {1} ", num, isprime)
EDIT:
Eine kleines WinForms-Beispiel hinzugefügt.
Danke RFG, ich hoffe das Anhängsel gibt es wieder.
EDIT:
Bin gerade auf das Video gestossen, wobei ich meine Formeln noch ein bisschen präziser ausgedrückt habe.
The Prime Number Race (with 3Blue1Brown) - Numberphile
Freundliche Grüsse
exc-jdbi
UPDATES:
Primegen.vb - Erste Version in Vb.Net - 2019
PFPG.zip - Winformsanwendung in Vb.Net - 2019
PFPG-DotNet8.0.zip - Optimierte Winform C#-Version .Net8.0 - 2024
PFPG-DotNet8.0-Async.zip - Winform C#-Async-Parallel .Net8.0 - 2024
BigPrimeGenerator.cs - C#-Console .Net8.0 Async-Parallel, nur lange Primes-Generierung - 2024
Different_BigPrimeGenerators.zip - C#-Console Async-Parallel, mit verschiedenen Arten der BigPrimeGenerators. - 2024
DiemitkoAlgoritm.zip - C#-Console .Net8.0, Async-Parallel, ein interessanter Primzahlenfinder, der lange von der Ukraine verwendet worden ist. - 2024
NEU: Different_BigPrimeGenerator.zip Async-Parallel. Beinhaltet die schnellste je entwickelte Variante, die ich kenne. Siehe auch folgender Link mit Beispiele für C# und Vb.Net.
github.com/exc-jdbi/BigPrimeGenerators
Dieser Beitrag wurde bereits 22 mal editiert, zuletzt von „exc-jdbi“ () aus folgendem Grund: Neuer Algo hinzugefügt