Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Wie erzeugt der PC Zufall?


Karlson - Sa 19.03.05 18:02
Titel: Wie erzeugt der PC Zufall?
Moin,

Wie erzeugt der PC denn nochmal Zufall?
War das nicht abhänig von der Systemzeit?


Moderiert von user profile iconChristian S.: Topic aus Sonstiges verschoben am Sa 19.03.2005 um 17:05


BenBE - Sa 19.03.05 18:11

Die Initialisierung ist meist Systemzeitabhängig oder mit anderen unvorhersehbaren Dingen belegt ist. Die eigentliche Abfrage hat nur selten noch etwas mit der Systemzeit zu tun.

Guck dir z.B. mal die Verfahren bzgl. Suche in: Delphi-Forum, Delphi-Library RNG und Suche bei Google RNG an. Da müsstest Du einiges finden.


sourcehunter - Sa 19.03.05 19:21

Eigentlich erzeugt der Computer gar keinen Zufall. Er hat nur eine Funktion eingebaut, die abhängig von einer Zahl andere Zahlen ausgibt, die dann wie zufällig aussehen. Das heißt, wenn du dem Zufallsgenerator immer die gleiche Zahl gibst, dann wird er immer die gleichen Zufallszahlen ausspucken. Meistens wird er mit der Systemzeit initialisiert, weil die immer anders ist und dann auch immer andere "zufällige" Zahlen berechnet.


Karlson - Sa 19.03.05 19:57

user profile iconsourcehunter hat folgendes geschrieben:
Eigentlich erzeugt der Computer gar keinen Zufall. Er hat nur eine Funktion eingebaut, die abhängig von einer Zahl andere Zahlen ausgibt, die dann wie zufällig aussehen. Das heißt, wenn du dem Zufallsgenerator immer die gleiche Zahl gibst, dann wird er immer die gleichen Zufallszahlen ausspucken. Meistens wird er mit der Systemzeit initialisiert, weil die immer anders ist und dann auch immer andere "zufällige" Zahlen berechnet.


Wenn wir gerade schon dabei sind: Kennst du irgendwas in unserer Welt das Zufällig geschieht? (Gedankenstränge des Gehirns mal ausgenommen)

@Ben: Danke, aber so genau brauch ich es eigentlich garnicht wissen ;) Trotzdem dnake.


Popov - Sa 19.03.05 20:06

user profile iconsourcehunter hat folgendes geschrieben:
Eigentlich erzeugt der Computer gar keinen Zufall.


Ich schätzen deswegen gibt es Random und Randomize. Random spuckt immer das gleiche aus. Erst mit Randomize wird es zufällig. Aber Randomize ist kein Zufalsgenerator. Er initialisiert den Zufallszahlengenerator nur mit einem zufälligen Wert. Und soweit ich weiß ist es das Datum und die Zeit die diesen Wert liefern.


sourcehunter - Sa 19.03.05 21:03

user profile iconKarlson hat folgendes geschrieben:
Kennst du irgendwas in unserer Welt das Zufällig geschieht?


Bewegung von Quanten.


AXMD - Sa 19.03.05 21:05

user profile iconKarlson hat folgendes geschrieben:
Kennst du irgendwas in unserer Welt das Zufällig geschieht?


Auch der radioaktive Zerfall geschieht rein zufällig; alle Teilchen haben die exakt selbe Wahrscheinlichkeit zu zerfallen, aber nur eines zerfällt im Endeffekt nach Ablauf einer bestimmten Dauer - und welches Teilchen das ist, ist rein zufällig

AXMD


delfiphan - So 20.03.05 02:16

Eine quantenmechanische Messung ist ein Zufallsexperiment. Beispiel Polarisationsfilter: Wenn das Licht horizontal polarisiert ist und durch einen Polarisationsfilter 45° dazu gedreht geht, dann findet eine "quantenmechanische Messung" statt: 50% der Photonen werden zu diesen 45° gedreht, und kommen vollständig durch den Filter durch, die anderen 50% werden 90° zu den 45° gedreht und werden vom Material absorbiert. Welche Photonen genau gefiltert werden, ist absolut reiner Zufall. Zusammen mit anderen Effekten der Quantenmechanik (Stichwort Verschränkung) wird man vielleicht bald in der Lage sein, so absolut sichere Datenleitungen zu konstruieren.

Die Generierung von Zufallszahlen im PC geht so: Man nimmt eine Startzahl, rechnet sie mal eine Konstante plus eine andere Konstante; und das ganze modulo einem Höchstwert. Das gibt dann die nächste Zahl. Mit der macht man dann wieder genau dasselbe und so erzeugt man sich eine Zahl nach der anderen. Das ist der "Linear Congruential" Randomgenerator.
Der ist allerdings nicht so gut, da sich die Zahlen nach einigen Tausend oder Million erzeugten Zahlen wiederholen. Besser sind da die Lagged Fibonacci Random Generators, die funktionieren nach einem ähnlichen Prinzip. Die Zahlen wiederholen sich allerdings erst nach sehr, sehr langer Zeit.

Es gibt Algorithmen, die werden von Zufallszahlen angetrieben (Stichwort Monte Carlo Algorithmus). Dort muss man dann - vor allem wenn man in höheren Dimensionen arbeitet - sehr aufpassen, dass man gute Pseudozufallsgeneratoren verwendet. Da bekommt man es u.U. zu spüren, dass man nicht wirklich zufällige Zahlen hat.


Alni - So 20.03.05 04:10

Bitte bringt keine Zufälle aus der Physik als Beispiel, denn die Quantentheorie ist nur ein Modell. Bisher hat noch niemand beweisen können das radioaktiver Zerfall oder ähnliches wirklich zufällig ist. Möglicherweise liegt diesem Zufall etwas zu Grunde das nur für uns zufällig erscheint, so wie einem Laien Zufallszahlen eines Computers zufällig erscheinen. Physikstudenten und Physiker mögen mich widerlegen.

Ich bitte um Nachsicht für diesen vom Thema abscheifenden Beitrag ;)


patrick - So 20.03.05 13:57

user profile iconsourcehunter hat folgendes geschrieben:
user profile iconKarlson hat folgendes geschrieben:
Kennst du irgendwas in unserer Welt das Zufällig geschieht?


Bewegung von Quanten.


nicht unbedingt, ich habe vor kurzem nem artikel gelesen in dem forscher es geschafft haben, die bewegung zweier quanten korrekt vorhergesagt zu haben.

frag mich aber jetzt nicht nach nem link :oops:


wulfskin - So 20.03.05 14:06

user profile iconAlni hat folgendes geschrieben:
Bitte bringt keine Zufälle aus der Physik als Beispiel, denn die Quantentheorie ist nur ein Modell. Bisher hat noch niemand beweisen können das radioaktiver Zerfall oder ähnliches wirklich zufällig ist. Möglicherweise liegt diesem Zufall etwas zu Grunde das nur für uns zufällig erscheint, so wie einem Laien Zufallszahlen eines Computers zufällig erscheinen. Physikstudenten und Physiker mögen mich widerlegen.

Ich bitte um Nachsicht für diesen vom Thema abscheifenden Beitrag ;)
Mein Physiklehrer sagt, dass Einstein genau so gedacht hat wie du, also das nur nicht alle Parameter bekannt sind und das ganze deshalb auf uns zufällig wirkt.
Heutzutage kann aber mit Sicherheit sagen, dass es wirklich zufällig passiert.


Karlson - So 20.03.05 14:47

Das ist nicht ganz richtig so @ Wulfskin.

Ein kurzes Zitat aus dem Vorwort von "Chaos - Bausteine der Ordnung"

Zitat:

"Bis heute (anm. Stand 2005, wäre sonst wohl durch diverse Zeitschriften publiziert worden) sind die Meinungen über Chaos gespalten. Es gibt Wissenschaftler die von Chaos als Produkt des Zufalls ausgehen, während andere der festen Überzeugung sind dass nichts zufällig geschieht. Letzere Gruppe allerdings verzeichnet täglich neue Erfolge, indem ein Bereich nach dem anderem als deterministisch entarnt, und somit berechenbar wird."


Ich persönlich bin der Meinung das alles theoretisch berechenbar ist. Allerdings eben nur Theoretisch. Schon bei der Berechnung des Wetters sind ganze Rechenzentren aufgrund der extremen genauigkeiten überfordert und liefern trotz extravaganter Finanzierung bis heute nur Teilerfolge.
Ich denke dass wir nie erfahren werden was richtig oder falsch ist, vielleicht aber unsere ur-ur-ur[....]ur-ur-ur-Enkel :)

@Patrik: Ich hab ne Ausgabe der PM die sich fast auschließlich mit Chaos in allen möglichen Bereichen befasst. Da steht drin das Wissenschaftler die Bewegung von Quanten in dem LAbor in München (afaik des 200 Meter unter der Erde) vorrausberechnen konnten. Das ganze war irgendwie wichtig für diese Null-Materie Geschichte (woraus besteht null-materie...), und dabei haben sie fast zufällig (:mrgreen: ) eine Strucktur entdeckt.

Der Artikel ist leider sehr wenig Wissenschaftlich, deswegen kann ich auch nicht sagen bis in wie weit das jetzt voll zutrifft.


sourcehunter - So 20.03.05 15:30

user profile iconpatrick hat folgendes geschrieben:
user profile iconsourcehunter hat folgendes geschrieben:
user profile iconKarlson hat folgendes geschrieben:
Kennst du irgendwas in unserer Welt das Zufällig geschieht?


Bewegung von Quanten.


nicht unbedingt, ich habe vor kurzem nem artikel gelesen in dem forscher es geschafft haben, die bewegung zweier quanten korrekt vorhergesagt zu haben.

frag mich aber jetzt nicht nach nem link :oops:


Und ich hab gelernt, dass man über Quanten nur Wahrscheinlichkeitsaussagen treffen kann, was eine genaue Vorhersge eigentlich ausschließt, aber kann ja auch sein, dass ich was falsches gelernt hab.


Karlson - So 20.03.05 15:56

Kann ich mir ehrlich gesagt nicht vorstellen.
Die Frage ob es den Zufall gibt ist laut Peitgen und der PM eine der interessantesten Fragen momentan. Wenn bekannt wäre, dass die Bewegung von Quanten rein zufällig geschieht, dann würde das ja die Theorie des zufälligen Chaos' bestätigen. Ich bin mir aber auch nicht 100%ig sicher... :gruebel:


delfiphan - So 20.03.05 16:37

@Alni: Die heute sehr verbreitete und akzeptierte Theorie ist die Quantenmechanik für kleine Längenskalen und die Relativitätstheorie für schnelle Geschwindigkeiten. Dass die Theorien nicht vollständig sind ist erwiesen. Man wird aber niemals absolut sicher beweisen können, ob irgendwelche Theorien stimmen oder nicht. Wenn ich also ein Beispiel aus der Physik bringe, dann stütze ich mich auf die momentan akzeptierten, physikalischen Theorien. Was soll ich denn sonst nehmen? Es gibt sonst nirgends Zufall als in der Physik.
@patrick: Man liest und hört viel; vieles davon ist einfach falsch. Was man in normalen Magazinen liest ist, ist meist von Leuten geschrieben, die eigentlich gar keine genaue Ahnung vom ganzen haben. Aber auch wenn ein Artikel von einem Professor geschrieben ist: Wenn es in einem Magazin steht, dann ist es sehr vereinfacht dargestellt, sodass auch ein Normalbürger folgen kann. Solche vereinfachte und anschauliche Facts eigenen sich imho überhaupt nicht als Diskussionsgrundlage... Man kennt weder Geltungsbereich noch sind die Facts selbst wirklich genau formuliert...
@wulfskin: "Absolut" sicher kann man wohl nie sein... Das ist eine philosophische Sache ;) Es kann letzten Endes immer sein, dass "alles nur ein Traum war".

Wie gesagt ist eine Messung in der Quantenmechanik ein Zufallsexperiment. Wie hoch die Chancen für gewisse Messungen ist (Erwartungswert), kann man aber exakt ausrechnen.


Christian S. - So 20.03.05 16:42

user profile icondelfiphan hat folgendes geschrieben:
@patrick: Man liest und hört viel; vieles davon ist einfach falsch. Was man in normalen Magazinen liest ist, ist meist von Leuten geschrieben, die eigentlich gar keine genaue Ahnung vom ganzen haben. Aber auch wenn ein Artikel von einem Professor geschrieben ist: Wenn es in einem Magazin steht, dann ist es sehr vereinfacht dargestellt, sodass auch ein Normalbürger folgen kann. Solche vereinfachte und anschauliche Facts eigenen sich überhaupt nicht als Diskussionsvorlage... Man kennt weder Geltungsbereich noch sind die Facts selbst wirklich genau formuliert...
Dem kann ich nur zustimmen, weshalb ich mich in Foren nur noch wenig an solchen Diskussionen beteilige. Besonders beim beliebten Thema der QM habe ich die Erfahrung gemacht, dass man da einfach die Mathematik braucht, um wirklich drüber sprechen zu können. Einiges davon lässt sich einfach nicht so richtig in Worte fassen.


Tilo - So 20.03.05 17:07

Ich bin der Meinung, dass der Begriff Zufall nur zur Beschreibung von zu komplexer Vorgängen dient.
z.B.: Welche Zahl wird der (Standard)Würfel beim nächsten Wurf zeigen?
Einflüsse bei der "Berechnung" der nächsten Zahl:
- Abschürfungen am Würfel
- Unebenheiten der Unterlage
- Wurfanfangshöhe
- Wurfanfangsgeschwindigkeit
- Anfangsrotation
- Wurfrichtung
- ...

-> zu komplex für eine Berechnung
-> "Zufälliges" Ergebnis


GTA-Place - So 20.03.05 17:10

Wikipedia hat folgendes geschrieben:
Man spricht von Zufall, wenn ein Ereignis nicht notwendig oder nicht beabsichtigt auftritt. Umgangssprachlich bezeichnet man ein Ereignis auch als zufällig, wenn es nicht absehbar, vorhersagbar oder berechenbar ist.


http://de.wikipedia.org/wiki/Zufall


splinter1990 - Sa 26.03.05 21:57

ich hätte da mal noch eine frage wenn ich mit dem randomize und so weiter hab.Dann hab ich 12 ausgabefelder weil ich per 'zufall' 12 zahlen brauce.Ich möchte aber ,dass jede zahl 2 mal vorkommt.Wie mache ich das am besten?mit einem Array ich weiß es nicht


delfiphan - Sa 26.03.05 22:03

Hallo und :welcome:. Für ne neue Frage solltest du nen neuen Thread anfangen, vor allem auch, weil deine Frage nicht direkt mit der ursprünglichen Frage ("Wie erzeugt der PC denn nochmal Zufall") zu tun hat.
PS. Ein ähnliches Topic hatten wir schon mal: Wie erzeuge ich eine zufällige Permutation der Zahlen 1-10 [http://www.delphi-forum.de/viewtopic.php?p=228819#228819].


pallep - Do 31.03.05 23:25

Also, es war echt interessant den Thread hier zu lesen !
Zwar muss ich sagen, hat die Diskussion schon etwas länger nichts mehr mit Delphi zu tun, sondern ist zu einer äusserst philosophischen Diskussion geworden, aber interessant ist es alle mal ! :wink:

Im Großen und Ganzen gab es ja hier nur ein ziemliches hin und her. Der eine hat dies gelesen, der andere das. Ich glaube aber eigentlich, dass diese Frage gar keine Frage ist, die wissenschaftlich zu beantworten ist. Viel mehr denke ich, geht es hierbei darum, was jeder einzelne glaubt. Ich mein, für die, die meinen bzw. gelesen haben, es sei "bewiesen", dass etwas nicht zufällig ist (sei es die bewegung der Quanten, der atomare Zerfall etc.): ist es nicht, rein theoretisch, auch möglich, dass es Zufall war, dass die Experimente oder Untersuchungen ergeben habe, dass es sich um keinen Zufall handelt. Wenn wir uns mal die Definition laut Wikipedia anschauen:

user profile iconGTA-Place hat folgendes geschrieben:
Wikipedia hat folgendes geschrieben:
Man spricht von Zufall, wenn ein Ereignis nicht notwendig oder nicht beabsichtigt auftritt. Umgangssprachlich bezeichnet man ein Ereignis auch als zufällig, wenn es nicht absehbar, vorhersagbar oder berechenbar ist.


Diese Definition schließt doch die Möglichkeit nicht aus, dass auch eine zufällig erzeugte Folge eine Teilfolge enthält, die einem gewissen Muster folgt oder in der man ein gewisses Muster erkennen kann. So währe es doch dann auch möglich, dass die Ergebnisse der Experimente zufällig einem Muster folgen, dass es so erscheinen lässt, als handle es sich nicht um einen Zufall.

Was ich sagen will ist: Ist es nicht eigentlich so, dass alleine die Möglichkeit, dass es sich um einen Zufall handeln kann, es unmöglich macht, zu beweisen, dass etwas kein Zufall ist. Es ist doch immer möglich, dass das Ergebniss, dass angeblich beweist, dass es kein Zufall ist, selber ein Zufall ist...

Kompliziert, ich weiß, ich hoffe es hat trotzdem jemand verstanden, was ich meine :?

Paul


rjan - Do 31.03.05 23:44

user profile iconpallep hat folgendes geschrieben:




Was ich sagen will ist: Ist es nicht eigentlich so, dass alleine die Möglichkeit, dass es sich um einen Zufall handeln kann, es unmöglich macht, zu beweisen, dass etwas kein Zufall ist. Es ist doch immer möglich, dass das Ergebniss, dass angeblich beweist, dass es kein Zufall ist, selber ein Zufall ist...


recht hast du Pallep....

kurz der zufall ist ein unvorhersebares ergebnis...

oder so :D


delfiphan - Fr 01.04.05 00:03

user profile iconpallep hat folgendes geschrieben:
Diese Definition schließt doch die Möglichkeit nicht aus, dass auch eine zufällig erzeugte Folge eine Teilfolge enthält, die einem gewissen Muster folgt oder in der man ein gewisses Muster erkennen kann. So währe es doch dann auch möglich, dass die Ergebnisse der Experimente zufällig einem Muster folgen, dass es so erscheinen lässt, als handle es sich nicht um einen Zufall.

Möglich ist vieles, aber wahrscheinlich ist es nicht. Wenn man überhaupt irgendwas erreichen will, muss man irgendwann mal von einer Beobachtung auf etwas Allgemeines schliessen. Obwohl nicht 100% sicher ist das vernünftig und sinnvoll.


Delete - Fr 01.04.05 01:14

user profile iconwulfskin hat folgendes geschrieben:
Heutzutage kann aber mit Sicherheit sagen, dass es wirklich zufällig passiert.
:roll:

Man hat auch vor noch gar nicht so langer Zeit gedacht, die Erde wäre ein Scheibe. Dann dachte man, dass die Geschwindigkeit eines Autos einen Menschen töten würde. Die nächste These war dann, dass Atome die kleinsten Teilchen im Universum sind....

Und alles wurde wiederlegt. IMHO kann man zu keiner Zeit mit absoluter Sicherheit etwas sagen, obwohl behaupten bekanntlich sicherer als beweisen ist (Friedrich Nitzsche).


demo88 - Sa 02.04.05 13:47

Also ich habe gerade mal ein Programm geschrieben das Zufallszahlen erzeugt und dann den Durchschnitt ausrechnet. Aber egal wie viele Zahlen er erzeugt hat, bei einem Maximahlwert von 10 war der Durchschnitt immer ungefhär 4,5.
Ist das normal?
Wahrscheinlich ja schon aber wenn, warum ist das so?


WeBsPaCe - Sa 02.04.05 13:56

Hmm... Bei unendlich vielen Zufallszahlen müsste der Durchschnitt doch auf 5 liegen oder? :gruebel:


jaenschi - Sa 02.04.05 14:40

Ich hab das Programm auch mal geschrieben und bei mir kommt da 5,5 raus :shock:
@demo88: kann es sein, dass du statt random(10)+1, nur random(10) geschrieben hast?


Kroni - Sa 02.04.05 14:44

Ach hier mal einfach ein Programm zum Thema Zufallszahlen^^


demo88 - Sa 02.04.05 15:05

user profile iconjaenschi hat folgendes geschrieben:
Ich hab das Programm auch mal geschrieben und bei mir kommt da 5,5 raus :shock:
@demo88: kann es sein, dass du statt random(10)+1, nur random(10) geschrieben hast?


Ja kann sein :D
Werde ich sofort berichtigen :wink:


jaenschi - Sa 02.04.05 15:15

hab mich vertan, muss natürlich random(9)+1 heißen :oops:
Dann kommt auch in etwa 5,0 raus.
Bei mir lag der Durchschnitt nach 10 000 000 mal Zufall bei ca. 5.0008 :wink:


zemy - Sa 02.04.05 18:49

Wenn man davon ausgeht, das das gesamte universum determenistisch aufgebaut ist (Urkanll eben als erstes Glied der Kette) ist nichts aber auch garnichts zufall... nur eben nicht vorhersagbar (Chaostheorie etc.) Wenn einen das als Zufall genügt, kann er sich ja zufrieden geben^^

Radioaktiver zerfall und ähnliches prinzipiel als Zufall abzutun, währe ich eher abgeneigt. Eher glaube ich, das dieser Gesetzen gehorcht, die wir in 5-555 Jahren entdecken werden... tut mir Leid, ein zufälliges Universum widerspricht meinem Weltbild^^

*mal (nicht ganz so) blind in den Thread reinwerf*

MfG Zemy


mimi - Sa 02.04.05 19:56

ja und wie erzeug tder PC jetzt zufall ?
er nimmt die zeit gut und weiter ?


GTA-Place - Sa 02.04.05 20:01

@Kroni: Das gleiche hab ich auch mal geschrieben und mir wurde gesagt, dass Delphi das nach der Wahrscheinlichkeits-Theorie aufteilt.


uall@ogc - Sa 02.04.05 20:02

schau dir doch einfach die random funktion an...

es funktioniert mit den nachkommastellen nach dem teilen

z.b. 1/7 dann -> nachkommastallen sind der zufall
nur halt bisl komplizierter mit der zeit und größeren zahlen


Kroni - So 03.04.05 02:37

Ja, die Streeung verringert sich so nach s(n)=sqrt(n), so wie es sein sollte1^^