![]() |
Random ist kein reiner Zufall
Liste der Anhänge anzeigen (Anzahl: 3)
Guten Morgen DP
ich habe gerade ne ganze seite über folgendes geschrieben und als ich fertig war ist der Internet Explorer abgeschmiert, darum hab ich nun kein Bock es nchmal alles zu schreiben daher die kurzversion: sun und ich haben entdeckt, dass die delphi zufallsfunktion etwas nicht zufälliges hat: wir haben heute morgen um 2-4 uhr etwas mit dem 1. beiliegenden Programm rumgespielt, welches so lange random(3) aufruft, bis 0,1 und 2 gleich oft vorkahm nun liegt der Wert,wie oft die zahlen vorkahmen auffallend oft sehr nahe zusammen darauf habe ich eben ein Programm geschrieben, was immer wieder testet, bei welchem wert sich die drei anzahlen traffen und bekahm folgendes raus: ![]() X-Achse sind die Durchläufe Y-Achse(von unten nach oben) ist round(2*sqrt(sqrt(gemeinsamer wert))) beiliegend die Werte als Text, das Programm von heute morgen(2 Uhr AM) und das Programm von eben nun deute ich es so, dass, da die werte am Anfang 0 - 0 - 0 sind es immer weniger wahrscheinlich, dass sich die Werte treffen, doch dazu gibts noch einen schwellwert, bei dem sie sich treffen müssen, der damit zusammenhängt, was der Computer sonst noch so gerade macht nun wollte ich fragen, was ihr so über random wisst wenn ihr wollt geb ich euch ncoh die Programme oder einfach nur den Quelltext sie sind an sich sehr einfach gehallten |
Re: Random ist kein reiner Zufall
Es gibt keine "Zufallsgeneratoren" sondern nur bessere oder schlechtere Algorithmen :warn:
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum. |
Re: Random ist kein reiner Zufall
Random ist gar kein Zufall. Es ist ja auch ein "Pseudozufall". Random verwendet vermutlich den Satz von Weyl, initialisiert mit einem Startwert. Dadurch dürfte sich eigentliche eine asymptotische Gleichverteilung ergeben. Deine Ergebnisse hab ich nicht so ganz verstanden...
|
Re: Random ist kein reiner Zufall
Vermutlich ja. Allerdings ist er nicht unbedingt kompatibel, die Delphi-Hilfe schreibt selbst, dass bei verschiedenen Delphi-Versionen trotz gleichem Seed verschiedene Zufallszahlen produziert werden *können*
|
Re: Random ist kein reiner Zufall
dass Random kein Zufall ist war uns klar, doch würde und interessieren, wie es sonst so ist
was haste denn an den Ergebissen nciht verstanden? die y achse ist nichtlinear, das es sonst sehr unübersichtlich wäre, denn die top 12 sieht so aus: 1431655765 1431655765 1431655765 1431655764 1431655764 1431655764 1431655763 1431655761 1431655706 1431655693 1431655581 1431655532 dagegen sind einige tausend nichts doch durch die nichtlineare achse sind die klleinen zahlen unterscheidbar ohne die grossen über alle massen gehen zu lassen (möchtest du auf einem centimeter die zahlen 1-100.000 sehen, dann liegt 1.431.655.532 bei 143 Meter |
Re: Random ist kein reiner Zufall
Zitat:
Wenn Randomize nicht aufgerufen wird, wird der RandSeed mit 0 initialisiert. Beim späteren Aufruf von Random wird der TickCount allerdings nicht mehr verwendet, sondern lediglich ein bisschen mit RandSeed und der sagenhaften Konstante $08088405 rumgespielt. Was genau bei Random alles passiert, kann man auch in seiner Implementierung nachgucken. Dann ist auch klar, dass das kein wirklicher Zufall ist. Ich glaube aber kaum, dass es überhaupt möglich ist, echten Zufall zu erzeugen. |
Re: Random ist kein reiner Zufall
Angefangen hats heute morgen mit einer disskussion, obs überhaupt zufall gibt oder nicht, womit ich von dem anderes aktuellen zufallsthread inspiriert anfing.
Doch glaube ich, dass es trotz alledem komisch ist, dass sie die werte so komisch verhallten bzw. wurde es wohl entweder so geacht, dass die werte nicht völlig frei rumlaufen, oder es ist eine logische reaktion darauf, wie random programmiert wurde was hats mit dieser konstante auff sich? und überhaupt: was wisst ihr alles über Random |
Re: Random ist kein reiner Zufall
Zitat:
![]() |
Re: Random ist kein reiner Zufall
ich weiss, was Zufall ist, ich rede von der Random funktion von Delphi! :)
|
Re: Random ist kein reiner Zufall
Zitat:
Vielleicht könnte es für dich auch ganz interessant sein, einfach mal zu gucken, was bei einem Random-Aufruf im CPU-Fenster so alles abgeht. Dann kann man besser nachvollziehen warum und wie Random überhaupt funzt. |
Re: Random ist kein reiner Zufall
stimmt cöster. nur habe ich da keine ahnung von, wie man das im Programm einbaut, dass er guckt, was die einzelnen random aufrufe an Cpu verbrauchen, dann noch, wie die zahl errecht wird, aso ob eine zahl sobald sie die zahl erreicht nciht mehr vorkommt, oder wie
|
Re: Random ist kein reiner Zufall
Zitat von inheriteds wikipediaseite:
Zitat:
|
Re: Random ist kein reiner Zufall
wenn man die zufalls zahl aus zufälligen sachen berechnen würde, wäre es kein widerspruch
schliesslich ist ein Computer nicht ganz von der aussenwelt abgeschnitten naja zahlen, die man in irgendeiner form von der umwelt nimmt sind auf jeden fall unberechenbar, da die welt ja wie wir wissen sehr komplex ist, doch die Frage ob es überhaupt Zufall gibt Zitat:
|
Re: Random ist kein reiner Zufall
Zitat:
Randomize setzt den Startwert auf etwas, das mit Tick counts zu tun hat (wieso auch nicht, soll halt irgendeine Zahl sein). Der Generator an sich ist obersimpel, er besteht aus einer Multiplikation, Addition und Modulo. Noch etwas zum 'Zufall'. Hier im Forum gibt es immer wieder die Annahme, das Zufall so zufällig sein muss, das er immmer gleichverteilt ist... Das ist Quatsch, denn dann wäre es ja nicht mehr zufällig. Weiterhin (wurde schon erwähnt), gibt es nur eine einzige Möglichkeit, 'echten' Zufall mit einem PC zu erzeugen: Mit externer Hardware. Alle anderen 'Zufallsgeneratoren' erzeugen nur eine Zahlenreihe, die bestimmten Regeln genügt: Salopp gesagt soll sie zufällig aussehen. Der Borland-Generator ist schon nicht schlecht, richtig gut isser natürlich nicht, dafür gibt es dann besondere Algorithmen: Einer davon ist der Mersenne-Twister, ein ziemliches Ungetüm, das eine sehr sehr lange Periode hat: Die Zahlenreihe wiederholt sich erst nach einigen 10^xxxx Sequenzen. So genau weiss ich das aber nicht. |
Re: Random ist kein reiner Zufall
Zitat:
|
Re: Random ist kein reiner Zufall
Nun, Zufall muss nicht gleichverteilt sein. Aber einigermaßen guter Zufall ist es meißtens. Beweis durch 100000-maliges Werfen eines Würfels.
|
Re: Random ist kein reiner Zufall
kommt auf den würfel an.
|
Re: Random ist kein reiner Zufall
Man kann aber bessere "Zufallswerte" mit einem sog. WhiteNoise generator erzeugen, in wie weit diese Zufallszahlen echt sind ist mir nicht bekannt, allerdings benötigt man dafür spezielle Hardware.
|
Re: Random ist kein reiner Zufall
ist random ein besonderes Geheimniss von Delphi???
ja aber dass eine gleichverteilung nach so einem nahezu gefixten wert erzwungen wird finde ich seltsam was ich aber auch seltsam finde ist, dass er nciht vollkommen gleich ist obwohl da fällt mir wa ein: jenachdem wie die gleichverteilung angestrebt wird, ist es logisch, dass die sich zur gleichverteilung hin immer wahrscheiinlicher treffen(es sei denn, ein wert tritt banal einfach nicht mehr auf |
Re: Random ist kein reiner Zufall
Zitat:
Ich würde noch weiter gehen und die These aufstellen, daß ein "echten Zufall" nicht nur nicht berechnet werden kann, sonder daß es ihn überhaupt nicht gibt. Jedes Ereignis, und sei es der der noch so kleinste Quantensprung, ist eine Folge von irgend etwas. Wäre man in der Lage, alle Ursachen, die zu einem Ereignis führen, genau zu erfassen, und hätte man genaue Kenntnis darüber, wie sich die Gegebenheiten auf zukünftige Ereignisse auswirken, dann wäre man auch in der Lage, zukünftige Ereignisse genau vorauszusagen. Das was wir als "zufällige Ereignisse" ansehen erscheint uns nur deshalb als zufällig, weil wir eben nicht in der Lage sind, alle Gegebenheiten zu erfassen und korrekt auszuwerten. |
Re: Random ist kein reiner Zufall
also unser delphi lehrer hat das immer mit randomize gemacht, ka, was das dann macht, aber es scheint zufälliger zu werden.
aber wenn ich in einer schleife (lottozahlenzeugs) immer erst randomize und dann random gemacht habe, kam da immer die gleichen zahlen in einem durchgang hinaus, jedoch nach neustart des progs wieder andere, aber alle 6 gleich :roll: Wie schon gesagt, es gibt ebend keinen wirklichen zufall |
Re: Random ist kein reiner Zufall
Zitat:
Zitat:
[1] Siehe dazu ![]() |
Re: Random ist kein reiner Zufall
Randomize initialisiert den Random-Seed mit irgendeinem Zeitwert, welcher genau weiß ich jetzt nicht. Ohne Randomize, kriegst du immer die gleichen Werte.
Zitat:
|
Re: Random ist kein reiner Zufall
@Amateurprofi nun das ist auch ganz genau meine Meinung
manche glauben jedoch, dass es möglich wäre, dass ein teil auch mal in seinem leben regiert, wie er drch seine einflüsse hätte nciht regieren sollen und da muss ich zugeben, dass kann man nciht ausschliessen, doch das ist genau das selbe wie gott: ausschliessen kann man nciht, dass es Zufall/Gott gibt, aber es beruhigt manche, daran zu glauben, also wieso nicht? reden wir überhaupt noch davon, wie das random bei delphi realisiert wurde? |
Re: Random ist kein reiner Zufall
Ich versteh gar net was denn jetzt die frage ist...
Also random benutzt einfach eine zahl und rechnet mit Hilfe dieser zahl die nächste aus. Diese 2. Zahl sollte dann halt noch möglichst unterschiedlich von der 1. sein. So rechnet er dann eine Zahl nach der anderen aus. Und mit Randomize setzt er für die zahl einfach gettickcount ein. Das ist alles. Ich weiß gar nicht, was da so geheimnisvoll sein soll??? |
Re: Random ist kein reiner Zufall
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Die einzige Frage, die für mich noch unbeantwortet ist, ist die Herkunft der mysteriösen Konstante $08088405. |
Re: Random ist kein reiner Zufall
oh nagut
also: wenn ihr wisst, wie random gemacht ist, könnt ihr mir dann sagen, warum das so ist?(was ich am anfang des threads feststellen musste) also ich belibe dabei, dass niemand sagen kann, dass es zufall nciht gibt genausowenig, wie jemand sagen kann, dass es zufall gibt, denn dafür müsste man die Welt und ihre zusammenhänge 100%ig verschlüselt wissen und das ist, wie wir wissen ganz und garnicht so @unwissender etwas nciht berechnen zu können heisst nicht, dass es zufall ist!!! die unschärferelation ist eine vereinfachung, die nötig ist, da man (hoffentlich vertue ich mich da nciht) etwas[weiss nciht mehr was] physisch unmöglich genau bestimmen kann, da jedes verfahren zum erkennen, wie das Ergebnis ausfällt das Ergebnis beeinflussen würde ich glaube es handelte sich dabei um ort und energie(wellenenergie?schwingungsenergie?rotations energie?) eines elektrons, welche man nciht bestimmen kann, weil halt jedes verfahren, welches auf diese Eigenschaften eines Elektrons reagiert das Elektron ebenfalls auf die Messung reagieren lässt und übrigens habe ich bereits erwähnt, dass in der Welt alles mit allem zusammenhängt und deshalb lässt es sich nciht berechnen jedes einzelne helium atom in der Sonne, welches sich mal nach links oder rechts bewegt hat auswirckung auf das Ergebnis unschärferelation heisst also meiner meinung nach nciht, dass es ungenau ist, sondern dass wir es nciht genau erfahren können in dem sinne unberechenbar aber nciht zufällig |
Re: Random ist kein reiner Zufall
Abend allerseits!
Zitat:
Also um das etwas zu verdeutlichen, wir haben ein Random, das 3 Zustände ausgeben kann (0, 1, 2)... :angel2: Dann zählen wir in einer Schleife mit, welcher Zustand wie oft dran kommt. :stupid: Sobald alle Zustände gleich oft erzeugt wurden wird die Schleife abgebrochen. Das Interessante dabei ist, das die Schleife entweder sofort wieder abgebrochen wird, weil alle Zustände nur nach wenigen Durchläufe gleich auf sind, oder es läuft zu ner Zahl, die ca. zwischen 1411655764 und 1431655764 liegt... :shock: Nur einmal kam ein EIntOverflow :stupid: , das war wohl nur zufällig :lol: Und so kommt die Frage auf, wie kommt das zustande? :gruebel: Grüßle! PS: Zum ansehen das ganze als Quelltext:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i0, i1, i2:integer; begin Randomize; i0:=0; i1:=0; i2:=0; Repeat Case Random(3) of 0: Inc(i0); 1: Inc(i1); 2: Inc(i2); end; until (i0=i1) and (i0=i2) and (i1=i2); Beep; Edit1.text:=IntToStr(i0)+' - '+IntToStr(i1)+' - '+IntToStr(i2); end; |
Re: Random ist kein reiner Zufall
schön ausgedrückt sun
hier mal der Quelltext aus meinem 2. Programm, welches das selbe tut wie das 1. nur immer wieder
Delphi-Quellcode:
ach übringens: hat jemand die exe ausprobiert? was habt ihr so raus?
var
i:integer; {$R *.DFM} procedure rechne; var i0, i1, i2:integer; begin Randomize; i0:=0; i1:=0; i2:=0; form1.Button1.caption:='Stop'; Repeat Case Random(3) of 0: Inc(i0); 1: Inc(i1); 2: Inc(i2); end; until (i0=i1) and (i0=i2) and (i1=i2); Beep; inc(i); form1.image1.canvas.pixels[i,form1.image1.height-round(2*sqrt(sqrt(i0)))]:=clred; form1.edit1.text:=form1.edit1.text + inttostr(i0)+' - '; form1.timer1.enabled:=true; end; procedure TForm1.Button1Click(Sender: TObject); begin if button1.caption='Stop' then begin button1.caption:='Start'; timer1.enabled:=false; end else rechne; end; procedure TForm1.Timer1Timer(Sender: TObject); begin timer1.enabled:=false; rechne; end; procedure TForm1.FormCreate(Sender: TObject); begin i:=0; end; end. |
Re: Random ist kein reiner Zufall
Zitat:
|
Re: Random ist kein reiner Zufall
Zitat:
wir aben ursprünglisch(zumindest ich) randomize im formcreate drin gehabt, aber geändert hats letztendlich nix wahrscheinlich, weil Randomize nicht immer aufgerufen wird, wenn random gebraucht wird sondern nur, wenn der mal 3 gleiche hat |
Re: Random ist kein reiner Zufall
nur um ein paar dinge klar zu stellen,
PS: das ist übrigens, IT, keine quantenmechanik. hier kannste ausrechnen, welche zufallszahl, bei einem gegebenen generator, startwert und position, als nächste kommt. du weisst also, ob die katze lebt oder nicht ;-) PPS: @lucky, hier kommt es wohl nur in den ersten fällen zu den gleichen ergebnissen, bis sie sich wegkürzen, da hier sich hier nur die niederwertigste datums-/zeitkomponente ändert. |
Re: Random ist kein reiner Zufall
Hast du irgendeinen Beitrag hier komplett gelesen? Sieht nicht danach aus.
|
Re: Random ist kein reiner Zufall
das hat nix mit einer gleichverteilung zu tun. wenn du eine gleichverteilte zufallszahl haben willst, darfst du die funktion selber schreiben, oder suchst mal bei google, ob du 'ne entsprechende kompo findest.
der allgemeine algo sieht in etwa so aus zufall := zahl mod magische_zahl; that's all. es gibt aber auch andere algos. alzimar hat hier auch ein beispiel gebracht. aber hierfür gibts genügend literatur. einfach mal danach suchen... (z.b. stichwort sedwick) |
Re: Random ist kein reiner Zufall
nagut ich nehme zurück, du scheinst tatsächlich nicht aufgepasst zu haben
schau dir noch mal die grafik meines ersten threads genau an, vielleicht erkennst du ja auch den drang von randomize nach fast dem selben wert ne gleichverteilung zu haben @Cöster aber es ist ja wohl klar, dass man ncihtmal den ist zustand eines simplen elektrons weissen kann geschweige denn der ist zusastand von allem, was es gibt(hier kann nix ausgeklammert werden) nun es ist unmöglich die Erde schwerelos zu machen zwar kann man sie so erscheinen lassen(irgendwann vielleicht) aber einer masse die schwerkraft zu berauben ist nciht möglich naja nehme ich einfach mal an, dass es nie möglich sein wird |
Re: Random ist kein reiner Zufall
Zitat:
|
Re: Random ist kein reiner Zufall
randomize, hat keinen drang. es setzt nur die variable randseed. da er nix besseres hat, nimmt er halt datum und uhrzeit. mehr macht die funktion nicht. die variable randseed, kannste ja auch selbst setzen... damit sind die pseudozufallszahlen reproduzierbar... jedenfalls im rahmen, wenn man die möglichkeit mit einbezieht, dass hier und da mal 'n bit kipt (weshalb auch keine abfrage wie a = b möglich ist, bei fliesskommazahlen).
gleichverteilung, kannst du das nicht nennen, weisst du überhaupt ob alle zahlen vorkommen und diese gleichverteilt sind? schon getestet? aber eines ist klar, der algo zeigt bestimmte zahlen häufiger an als andere, das liegt alleine schon an der konstanten, durch welche dividiert wird. so, nun noch einen schönen abend. PS: ach wie schön war da noch der kernspeicher ;-) . aber auch da kam es vor, dass sich die magnetisierung änderte |
Re: Random ist kein reiner Zufall
wir diskutieren hier seit stunden auf grundlage meines Programms, mit dessen hilfe ich gezeigt habe, dass nach ziehmlich gleichbleibenden random aufrufen eine gleichverteilung auftritt
an dem geposteten QT sieht man auch, dass gezählt wurde @Cöster genau genommen sage ich damit, dass es nie möglich sein wird also nicht möglich ist |
Re: Random ist kein reiner Zufall
Zitat:
Zitat:
Zitat:
War wohl auch unnötig, dass ich das hier jetzt geschrieben hab, weil du's sowieso nicht liest, aber egal. @dino: Wenn du sagst "Ich nehme an, dass es nie möglich sein wird" heißt das, dass auch du nicht 100%ig ausschließen kannst, dass es irgendwann vielleicht doch mal möglich sein wird. Damit sagst du, dass es möglich ist. |
Re: Random ist kein reiner Zufall
Jungs, euch ist schon klar, dass ihr mit euren OT's einen eigenen Thread aufmachen könntet, oder? :gruebel: :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz