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 >> Wenn fast alle Zahlen Primzahlen wären........
Neues Thema    »Antworten«
Seite Drucken
red.gif Autor:
Thema: Wenn fast alle Zahlen Primzahlen wären........
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Wenn fast alle Zahlen Primzahlen wären........ #1 Datum: 22.10.2009, 08:49  


Hallo und eine dringende Bitte um Hilfe:

Ich bin Mediziner und gehe als Naturwissenschaftler anders an Probleme heran. Ich versuche ein System zu beschreiben, Vermutungen aufzustellen und dann durch gezielte Veränderung von Einflußgrößen zu sehen, ob die Vermutungen stimmen...

Das scheint bei der Verteilung der Primzahlen nur sehr bedingt möglich zu sein.

Trotzdem will ich Sie alle zu "experimentieren" verführen:

Ich habe meine Gedanken zur Verteilung der Primzahlen über eine Beschreibung der möglichen Produkte (zusammengesetzte Zahlen) bereits an anderer Stelle in diesem Forum veröffentlicht. Herauskam ein einfaches Programm, welches die zahl der Primzahlen in einem Invall von 0 bis n exakt berechnet. Dabei braucht das Programm nur die Kenntnis der Primzahlen bis Wurzel n.

Der Algorithmus ist ein einfacher:

Es werden nur ungerade Zahlen betrachtet (die Primzahl 2 fließt in das Ergebnis am Ende einfach als +1 ein.

Es werden zunächst die ungeraden Produkte mit einem Primteiler 3 berechnet (# der ungeraden Zahlen bis n / 3)

Es werden dann die ungeraden Produkte mit einem Primteiler 5 berechnet
Abzuziehen ist die Zahl der Produkte die durch 3 und 5 geteilt werden können, da alle Produkte mit dem Primteiler 3 ja bereits im ersten Schritt gezählt worden sind.

Das wiederholt sich entsprechend bis als höchste Zahl Wurzel n abgearbeitet ist.

Hier noch einmal das Programm (freebasic):

dim shared a(100000000) 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)-1)/2))+1) Rem +1 is correction For even prime number 2
End Function


For t= 1 to 100000000 Rem the Next two For Next loops
a(t)= 1 Rem setup the infomation On primes
Next t Rem information As odd numbers
Rem therefore primes are up to
For t=1 to 10000 Rem 200.000.001
If a(t)=1 Then Rem theoretically calculations are
For u=t+2*t+1 to 100000000 step 2*t+1 Rem possible For numbers of primes
a(u)=0 Rem up to 40.000.000.000.000.000
Next u Rem = 10^16
Print t Rem not needed Rem but calculation will take long
EndIf Rem Program is about factor 15-20
Next t Rem slower than ecprime.exe

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

(bitte auf zeilenumbruch achten!!!!!!!)

Die Kenntnis der Primzahlen ist im array a() abgespeichert, es wird einfach im Sinne eines Siebes des Eratosthenes erzeugt, es ist als array der ungeraden Zahlen gespeichert. 1 bedeutet Primzahl, 0 ist zusammengesetzt. Für die Primzahl 13 steht also im array a(6)=1, die 15 ist a(7)=0.


Jetzt geht es zum Experiment:

Verändern wir doch einfach das array, lassen wir fast alle Zahlen Primzahlen sein.

Dies ist am einfachsten zu bewerkstelligen, wenn wir ds Sieb des Eratosthenes zum Beispiel mit der 3 laufen lassen.

Die Zeile :
For t=1 to 10000 Rem 200.000.001

muss dazu nur verändert werden in:

For t=1 to 1 Rem 200.000.001

Jetzt sind alle Zahlen für das Programm prim bis auf die Vielfachen von 3.

Das Ergebnis ist für mich von entscheidender Erkenntnis:

Im Folgenden steht Primzahlen für die Anzahl der Zahlen bis n, die nicht als Produkte mit der Funktion erklärt werden können.

Das Programm berechnet jetzt bis zu einer Zahl n weniger Primzahlen,
aber mit steigendem n steigt die Anzahl der Primzahlen.

Es findet sich sogar zwischen in jedem Intervall n+n und n*(n+1) eine Primzahl......

ich bitte dringend um Kritik!!!!!!!!!!!

Dr. 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: Wenn fast alle Zahlen Primzahlen wären........ #2 Datum: 22.10.2009, 16:30  


Habe bei http://en.wikipedia.org/wiki/Legendre_sieve praktisch diese Funkion gefunden. Hier ist sie nur negativert:
noofprod (n,i) berechnet die Anzahl der Zahlen, die mindestens einen Primteiler <=i haben
während: "S(A,P) is the count of numbers in A with no factors common with P".
Habe zu diesem Thema aber bisher keinen anderen source code gefunden.


Für jede Antwort bin ich dankbar!!!!!
     PM   Buddy hinzufügen Copy Quote
rifischer (offline)
Junior Member



Beiträge: 36
Geschlecht:
Mitglied seit: 02.08.2006

Schweiz
icon1   Re: Wenn fast alle Zahlen Primzahlen wären........ #3 Datum: 25.10.2009, 22:05  


Hallo Dr. Carsten Neumann

> Es findet sich sogar zwischen in jedem Intervall n+n und n*(n+1) eine Primzahl......

Soweit mir bekannt ist, ist es mathematisch bewiesen, dass es mindestens eine Primzahl im Intervall n und 2*n gibt. Mehr über heute bekannte Extremlücken (vollständig bis 1.5E+18) kann man finden unter:
http://www.trnicely.net/index.html#TPG


Über Ihr Thema mit dem "Legendre sieve" habe ich mich noch nie näher auseinandergesetzt.

Gruss rifischer
       PM   Buddy hinzufügen Copy Quote
dr.c.n (offline)
Newbie



Beiträge: 9
Geschlecht:
Mitglied seit: 12.10.2009

Deutschland
icon1   Re: Wenn fast alle Zahlen Primzahlen wären........ #4 Datum: 30.10.2009, 12:43  


Danke rifischer,

ich habe leider einen Schreibfehler übersehen:

der Satz:
Es findet sich sogar zwischen in jedem Intervall n+n und n*(n+1) eine Primzahl

muss heissen:

Es findet sich sogar zwischen in jedem Intervall n*n und n*(n+1) eine Primzahl..

Das ist die unbewiesene legendre vermutung, die es in verschiedenen versionen gibt:

z.B.: zwischen 2 Quadratzahlen gibt es mindestens 2 Primzahlen...

Ich habe übrigens ein Problem, die "Computerfunktion" in eine korrekte mathematische Formel mit all den notwendigen Bedingungen auszudrücken.

Um Hilfe bin ich dankbar.
     PM   Buddy hinzufügen Copy Quote
Board >>  Einfach drauf los >>  Einfach drauf los >> Wenn fast alle Zahlen Primzahlen wären........
Seiten: <<  1  >>
Seite Drucken
Neues Thema    »Antworten«



Forum durchsuchen:


   


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