Home | Registrieren | Mitgliederliste | Suchen | Hilfe | Themen des Tages | Alle Lampen aus | Login
Guten Abend, Gast

Wenn dies Dein erster Besuch hier ist, lies Dir die FAQ - Häufig gestellte Fragen durch. Du musst Dich vermutlich Registrieren, bevor Du Beiträge schreiben kannst: klicke oben auf registrieren, um den Registrierungsprozess zu starten. Um Beiträge zu lesen, suche Dir einfach das Forum aus, das Dich interessiert. Die Registrierung ist kostenlos.
Username:
Passwort:
Suchen:


Seiten: <<  1  >>
Board >>  Einfach drauf los >>  Einfach drauf los >> Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen
Neues Thema    »Antworten«
Seite Drucken
red.gif Autor:
Thema: Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen #1 Datum: 12.10.2009, 15:08  


Eine Beschreibung der Verteilung der zusammengesetzten Zahlen: Gedanken zur Verteilung der Primzahlen

Zusammenfassung:
Im Folgenden soll gezeigt werden, wie sich unter Kenntnis des kleinsten Primteilers aller Zahlen bis n (der kleinste Primteiler einer Primzahl p ist p) sich die genaue Zahl aller Primzahlen bis 6n+1 berechnen lässt.
Hintergrund: Da es keine Formel gibt, welche sicher zu einer Primzahl führt, ich aber auch keine Hinweise zur Verteilung der zusammengesetzten Zahlen gefunden habe wird im folgenden der Frage nachgegangen, ob sich die Verteilung der zusammengesetzten Zahlen nach einem mathematisch fassbaren Algorithmus beschreiben lassen.
Vereinfachung: alle Primzahlen bis auf die 2 sind ungerade Zahlen. Es sollen daher nur die ungeraden zusammengesetzten Zahlen untersucht werden:
Alle zusammengesetzten ungeraden Zahlen 2n+1 lassen sich als Produkt von zwei ungeraden Zahlen beschreiben:
2n+1= (2a+1)(2b+1)
mit a,b element von N.
Das lässt sich vereinfachen zu
n=2ab+a+b.
Für jedes m nicht element der Verknüpfung(a,b): 2ab+a+b gilt:
2m+1=prim.
Nebenerkenntnis: jede gerade Zahl, welcher keiner Primzahl folgt, ist als Summe der Flächen von zwei Rechtecken mit der Form 2ab und 2(a+1)(b+1) darstellbar.
&#8195;
Betrachtung der Elemente der Verknüpfung (a,b): (2a+1)(2b+1)
Die Kenntnis der Zahl m der verschiedenen Elemente dieser Verknüpfung bis zu einer Zahl n wird als n-m die Zahl der Primzahlen bis zu einer Zahl n widerspiegeln.
Nachfolgende Tabelle zeigt die ersten Werte dieser Verknüpfung:

a= 1 2 3 4 5 6
b=
1 4 7 10 13 16 19
2 7 12 17 22 27 32
3 10 17 24 31 38 45
4 13 22 31 40 49 58
5 16 27 38 49 60 71
6 19 32 45 58 71 84
7 22 37 52 67 82 97
8 25 42 59 76 93 110
9 28 47 66 85 104 123
10 31 52 73 94 115 136
11 34 57 80 103 126 149
12 37 62 87 112 137 162

Feststellung 1: Die Verknüpfung ist spiegelsymmetrisch an der Diagonalen.
Feststellung 2: Die erste Reihe mit b=1 zeigt als Inkrement von Element zu Element die 3. In dem betrachteten System der ungeraden Zahlen steht ja auch die 1 für die reale 3.
Feststellung 3: Jede weitere 3. Reihe b=3n+1 enthält nur Elemente, welche auch in der ersten Reihe vorkommen. Begründung: Jedes b=3n+1 steht in der realen Zahlenwelt als 2b+1=2(3n+1)+1=6n+3 für eine durch 3 teilbare Zahl.
Gleiches gilt für die 2. Reihe (reale 5) und dann für jede weitere 5. Reihe etc.
Nur wenn b für eine Primzahl in der realen Welt steht, kommen also Elemente mit neuen Werten in dieser Tabelle hinzu. Ansonsten steht das Element bereits weiter oben in einer Reihe.
Feststellung 4: Wegen der Spiegelsymmetrie gilt die Feststellung 3 auch für alle a.

Programm zur Berechnung der Anzahl von verschiedenen Elementen der
Verknüpfung(a,b): (2a+1)(2b+1) unterhalb einer vorgegebenen Grenze
Beispiel: gesucht wird die Anzahl verschiedener Elemente mit einem Wert unter 50:
Farblich markiert sind die Zahlen kleiner 50.
a= 1 2 3 4 5
b=
1 4 7 10 13 16
2 7 12 17 22 27
3 10 17 24 31 38
4 13 22 31 40 49
5 16 27 38 49 60
6 19 32 45 58 71
7 22 37 52 67 82
8 25 42 59 76 93
9 28 47 66 85 104
10 31 52 73 94 115
11 34 57 80 103 126
12 37 62 87 112 137
13 40 67 94 121 148
14 43 72 101 130 159
15 46 77 108 139 170
16 49 82 115 148 181
17 52 87 122 157 192
18 55 92 129 166 203

Es folgt jetzt praktisch eine Quantifizierung des Sieb der Erastosthenes:
die Zahl 50 entspricht in der realen Welt der 101. Die Wurzel hieraus ist etwa 10 , die nächst kleinere ungerade Zahl 9 und damit beträgt das maximale a=4.
Jetzt gilt es zunächst die Elemente im Quadrat von (1,1) bis (4,4) zu zählen. Wegen der Symmetrie ist das nur ein Dreieck inclusive der Diagonale. Abzuziehen ist aber hier von jedes Element für a,wenn a nicht für eine ungerade Primzahl steht (im Beispiel die 40).
Weiterhin ist für jede weitere Reihe zu berechnen, wie viele Elemente kleiner gleich der untersuchten Zahl (im Beispiel die 50) die Reihe enthält. Es lässt sich ferner zeigen, dass wenn b für keine Primzahl in der realen Welt seht, in der Reihe maximal aber nur die Zahl der Primzahlen bis inklusive des kleinsten Primteilers dieser Zahl gezählt wird (siehe b=7, hier wird nur das Element 22 nicht aber die 37 gezählt).

Wie der Algorithmus funktioniert, ist dem nachfolgenden Basic-Programm zu entnehmen.


&#8195;
FreeBasic Programm zur Berechnung der Zahl der Primzahlen bis zu einer angegebenen Höchstgrenze:

dim a As ULongInt
dim b As ULongInt
dim bp As ULongInt
dim bc As ULongInt
dim ca As ULongInt
dim cb As ULongInt
dim ai As ULongInt
dim amax As ULongInt
dim bi As ULongInt
dim i As ULongInt
dim j As ULongInt
dim n As ULongInt
dim n1 As ULongInt
dim shared p (5000000,4) As integer
dim q As ULongInt
dim z As ULongInt
dim f As double
dim f1 As double



Z=0 rem wird die primzahlen zählen

n= 5000000

For i= 1 to n rem Schleife um die Primzahlen und die
Rem notwendigen Informationen zu erzeugen

If p(i,4)= 0 Then rem p(i,4)= 0 hat bisher keinen Primteiler
z=Z+1 rem primzahlzähler um 1 hochgesetzt
p(i,1)= 2*i+1 rem primzahl wird eingetragen
p(i,2)= 1 rem 1 = primzahl
P(i,4)=i rem odd#

For j = p(i,1)+i to n step p(i,1)

If p(j,4)=0 Then rem wenn bisher noch keinen Primteiler dann
rem jetzt setzen
p(j,4)=i rem nummer des kleinsten Primteiler als odd#
EndIf
Next j
EndIf
P(i,3)=z rem Zahl der primzahlen <=i
Rem Print i ,z

Next i

Rem JETZT KOMMT DIE BERECHNUNG

test:
input “bitte eine ungerade Zahl <=30.000.001 eingeben “, n1

n=(n1-1)/2
amax = int((n-1)/3)

bp=0
bc=0

For ai = 1 to amax

bi= int((n-ai)/(2*ai+1))

If p(ai,2)=0 Then rem wenn ai nicht prim

If bi>=p(ai,4) Then Rem wenn bi groesser = dem kleinsten Teiler

bc=bc+p(p(ai,4),3) Rem nur primzahlen bis zum kleinsten
rem Teiler addieren
Else
bc=bc+p(bi,3) Rem sonst Primzahlen bis bi addieren
EndIf

Else Rem wenn ai prim

If bi>ai Then Rem nur primzahlen bis max ai addieren
Bp=Bp+p(ai,3)
Else
bp=bp+p(bi,3) rem nur primzahlen bis max bi addieren
EndIf

EndIf
B=bc+bp

Next ai


Print “Dis Zahl der Primzahlen bis incl. “;n1; “ ist gleich “; n-b+1


goto test:

end

Ich hoffe auf Kritik

Carsten Neumann
     PM   Buddy hinzufügen Copy Quote
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Re: Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen #2 Datum: 12.10.2009, 15:10  


Noch vergessen: die Schlüsse!

Überlegungen aus dem beschriebenen Algorithmus
Als Naturwissenschaftler (Medizin) bin ich Experimente gewohnt, d.h. Einflussgrößen werden verändert und man sieht wie sich das System verhält. Bei dem vorgegebenen und fixen System der Zahlen ist das natürlich nicht durchführbar.

Trotzdem sei eine einfache Überlegung erlaubt:
Wenn eine Reihe durch ein b definiert wird, welches für eine Primzahl steht, werden mehr Elemente erzeugt, die für eine zusammengesetzte Zahl stehen, als wenn b für eine Zahl steht, welche z.B. als kleinsten Primteiler die 3 hat (dann wird nur ein Element hinzugezählt).
Dieser Satz gilt für den Algorithmus auch in seiner Umkehrung.
Das heißt: gibt es an einem Ort relativ viele Primzahlen, wird es in der weiteren Folge mehr zusammengesetzte Zahlen und damit weniger Primzahlen geben und umgekehrt.
Das System der Primzahlen reguliert sich selbst!
Der Algorithmus kann auch als Primzahlentest dienen:
#p(n+2)-#p(n)=1 für n+2=prim

Die Verteilung der Primzahlen (bis zu einer Zahl n) bestimmt die Anzahl (und die Verteilung) der weiteren Primzahlen (und nicht nur bis 6n+1).
Oder ganz einfach ausgedrückt (da wir uns im ungeraden Zahlenbereich aufgehalten haben):
Die 3 bestimmt die Welt der Primzahlen

Primzahlen seien statistisch zufällig verteilt. Da es einen Algorithmus für die zusammengesetzten Zahlen gibt, scheint diese Zufälligkeit eher nur so auszusehen.
     PM   Buddy hinzufügen Copy Quote
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Re: Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen #3 Datum: 15.10.2009, 22:44  


Ein Programm zu spielen:
Du bestimmst, ob eine Zahl prim ist und sehe die Auswirkungen


Im ersten Basic Programm wurde die Tabelle reihenweise untersucht und es brauchte viel Information zu den Zahlen bis n/6 wenn wir bis n die Anzahl der Primzahlen wissen wollten.
Das nachfolgende Programm untersucht die Tabelle spaltenweise. Es ist recursiv geschrieben und benötigt nur das Wissen um die Primzahlen bis &#8730;n. Es werden keine Primzahlen berechnet und auch die zusammengestzten Zahlen aufgrund der vorgegebenen Abhängigkeit mit der Verteilung der Primzahlen in ihrer Menge bestimmt.
Da das array a() die Information darüber enthält, ob eine Zahl prim ist oder nicht kann durch Veränderung der Verteilung der Primzahlen abgeschätzt werden, wie sich dies auf die weitere Verteilung der Primzahlen verhält.
Viel Spaß beim herumspielen….

Hintergrund: ich behaupte: im Unendlichen gibt es zwischen 2 Quadratahlen unendlich viele Primzahlen. Dabei ist die Goldbachsche Vermutung - zwischen zwei Quadratzahlen gibt es mindestens 2 Primzahlen - nicht einmal bewiesen.
Möglicherweise kann man ja mit einer Formel, die verständlicher ist als die Verteilung der Primzahlen und diese leicht überschätzt aufgrund der im Programm aufgezeigten Abhängigkeit diesen Satz beweisen……..

Freebasic Programm:

dim shared a(1000000) As byte Rem to look at number up to 10^12
dim shared t As ulongint
dim shared u As ulongint
dim shared s As double Rem not really needed just For timing
dim shared maxi As ulongint Rem not really needed just to check On highest prime used in table a(I)

Rem noofprod = number of products up to x with divisor <=i
Rem noofprim = number of primes <= x

Declare Function noofprod ( x As ulongint, i As ulongint ) As ulongint
Declare Function noofprim (x As ulongint )As ulongint


Function noofprod ( x As ulongint, i As ulongint ) As ulongint
dim m As ulongint
dim n As ulongint
dim k As ulongint

Rem If i is not prime search Next lower prime unless it is 3

Do while i*(2*i+2)> x And i>1
i=i-1
loop

Do while a(i)=0 Rem two statements For sqr(x) comes up with numbers much to high
i=i-1
loop


If maxi<i Then
maxi=i
EndIf


Rem If i=2 it is easy

If i=1 Then
x=int((x-1)/3)
return x
Else
n=int((x-1)/3) Rem all numbers For devisor 3
For k=2 to i
If a(k)=1 Then Rem If k is prime
m= int((x-k)/(2*k+1)) Rem all numbers For prime devisor k
n=n+m-noofprod(m,(k-1))
Rem - all numbers that have a devisor smaller than prime k
n=n- k+noofprod(k,(k-1))+1
Rem the correction to the diagonal of the table
EndIf
Next k
x=n
return x
EndIf
End Function

Function noofprim ( y As ulongint)As ulongint
dim l As ulongint
l = int((y-1)/2) Rem l is # of odd numbers
return (l-noofprod(l,int(sqr(y)/2-1))+1) Rem +1 is correction For even prime number 2
End Function


Open "c:/basic/primes.txt" For input As #1 Rem by "ecprime 1.000.001 -p1"
input #1, u Rem nicht die 2

Do while not eof(1)
input #1, u
a((u-1)/2)=1

Rem hier wäre es ideal, Primzahlen zu löschen oder zu definieren

loop
Close #1

Do while u>0
input "(0=end) Calculate # of Primes up to: ", u
If u=0 Then
End
EndIf
s=Timer
Print noofprim (u), maxi
Print "time: ";Timer-s;" sec"
loop

Um die Primzahlen in die Tabelle einzufügen, habe ich sinnvoller Weise das Programm „ecprime.exe“ verwendet. Das hat auch zur Kontrolle der Ergebnisse gedient.

Zum spielen schlage ich zunächst folgenden Einschub vor:
If t Mod 30 = 17 Then
rem Jede 30. Zahl an einer möglichen Primstelle
a((t-1)/2)=0 rem ist 1=prim oder 0=nicht prim
EndIf


Mit der Bitte um Kritik!!!
     PM   Buddy hinzufügen Copy Quote
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Re: Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen #4 Datum: 15.10.2009, 22:46  


UNleserlicher Text:
&#8730;n = Wurzel (n)
     PM   Buddy hinzufügen Copy Quote
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Re: Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen #5 Datum: 17.10.2009, 03:50  


Fehlerteufel!!

im Programm zu spielen hat sich ein Fehlerteufel eingeschlichen:

Der Funktionsaufruf von noofprod (x,y) aus der Funktion noofprim (n) berechnet ein zu kleines 2. Argument, das größte Primzahlenquadrat wird dadurch nicht regelmäßig als Produkt mitgezählt.
Richtig lautet die Befehlszeile:

return (l-noofprod(l,int((sqr(y)-1)/2))+1) Rem +1 is correction for even prime number 2
     PM   Buddy hinzufügen Copy Quote
Board >>  Einfach drauf los >>  Einfach drauf los >> Eine Beschreibung der Primzahlen über die Verteilung der zusammengesetzten Zahlen
Seiten: <<  1  >>
Seite Drucken
Neues Thema    »Antworten«



Forum durchsuchen:


   


Stefanos Bulletin Board, v1.3.7
© Coder-World.de, 2001-2005 (Stefanos)