Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Random ist kein reiner Zufall (https://www.delphipraxis.net/89462-random-ist-kein-reiner-zufall.html)

dino 31. Mär 2007 14:33


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:


http://images.foren-city.de/images/u...4818/1_117.png
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

inherited 31. Mär 2007 14:46

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.

3_of_8 31. Mär 2007 14:47

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...

inherited 31. Mär 2007 15:00

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*

dino 31. Mär 2007 15:03

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

Cöster 31. Mär 2007 15:06

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von inherited
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

Das mit Uhrzeit und Datum ist mir nicht bekannt. Der RandSeed wird beim Aufruf von Randomize wenn möglich auf den Var-Parameter von QPC gesetzt, sonst auf den TickCount.

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.

dino 31. Mär 2007 15:12

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

inherited 31. Mär 2007 15:25

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
und überhaupt: was wisst ihr alles über Random

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

dino 31. Mär 2007 15:28

Re: Random ist kein reiner Zufall
 
ich weiss, was Zufall ist, ich rede von der Random funktion von Delphi! :)

Cöster 31. Mär 2007 15:28

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
was hats mit dieser konstante auff sich?

kp ob es mit jeder anderen 4Byte-Konstante genauso gut ginge? Vielleicht kommt das Result aber auch bei dieser Zahl dem Zufall am nächsten.

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.

dino 31. Mär 2007 15:33

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

blablab 31. Mär 2007 15:37

Re: Random ist kein reiner Zufall
 
Zitat von inheriteds wikipediaseite:

Zitat:

In der Informatik werden gelegentlich Zufallszahlen benötigt. Der Versuch, sie mit dem Computer zu berechnen, ist ein Widerspruch in sich.

dino 31. Mär 2007 15:44

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:

Zitat von Wikipedia
Vom heutigen Standpunkt aus sind die Phänomene der Quantenphysik der einzige Bereich, in dem es „reine“ Zufälle geben könnte.

entscheidet, ob es nun wirklich zufall ist oder nicht

alzaimar 31. Mär 2007 15:48

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von inherited
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

Öhm. nö.

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.

inherited 31. Mär 2007 15:52

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von alzaimar
Zitat:

Zitat von inherited
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

Öhm. nö.

Dann lügt das Delphi-Buch was ich hier stehen habe :mrgreen:

3_of_8 31. Mär 2007 15:53

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.

inherited 31. Mär 2007 15:53

Re: Random ist kein reiner Zufall
 
kommt auf den würfel an.

HERMES 31. Mär 2007 15:56

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.

dino 31. Mär 2007 15:58

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

Amateurprofi 31. Mär 2007 15:58

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von Cöster
Zitat:

Zitat von inherited
Der Delphi-Zufallsgenerator benutzt für die Hilfen wie TickCount, Uhrzeit und Datum.

Das mit Uhrzeit und Datum ist mir nicht bekannt. Der RandSeed wird beim Aufruf von Randomize wenn möglich auf den Var-Parameter von QPC gesetzt, sonst auf den TickCount.

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.

@Cöster:
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.

schrimm 31. Mär 2007 16:00

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

Dax 31. Mär 2007 16:01

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von inherited
Dann lügt das Delphi-Buch was ich hier stehen habe :mrgreen:

Was mich, ehrlich gesagt, wundern würde wie 'ne Schippe Sand in der Sahara..


Zitat:

Zitat von alzaimar
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.

Ein Ungetüm sicherlich, dafür aber (in der richtigen Implementation, mein Versuch damals in C# war schneller als der .net-mitgebrachte Generator) recht fix[1] dank Verzicht auf arithmetische Operation und eine unschlagbare Periode ;)


[1] Siehe dazu http://www.math.sci.hiroshima-u.ac.j...FMT/index.html

3_of_8 31. Mär 2007 16:03

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:

Zitat von HERMES
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.

Echt sind die garantiert nicht. Aber ein "echtes" weißes Rauschen hat tatsächlich eine Gleichverteilung aller Frequenzen.

dino 31. Mär 2007 16:11

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?

blablab 31. Mär 2007 16:26

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???

Cöster 31. Mär 2007 16:34

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
nur habe ich da keine ahnung von, wie man das im Programm einbaut, dass er guckt, was die einzelnen random aufrufe an Cpu verbrauchen

Nein, ich meinte das CPU-Fenster. Also nen Haltepunkt beim Randomaufruf reinsetzen, starten und, sobald der Haltepunkt erreicht ist, Strg+Alt+C. Dann ein paar mal F7 und man kann besser nachvollziehen, was passiert. Allerdings musst du dafür ein klitzekleines bisschen ASM können.


Zitat:

Zitat von dino
ist random ein besonderes Geheimniss von Delphi???

Wie kommst du darauf, der Code liegt offen.


Zitat:

Zitat von schrimm
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

Man soll Randomize ja auch nur einmal aufrufen, weil es den RandSeed wie gesagt entweder mit dem Var-Parameter von QPC oder dem TickCount initialisiert. Danach wird der RandSeed immer nur noch geändert, wenn Random aufgerufen wird. Wenn du Randomize in einer Schleife 6mal direkt hintereinander aufrufst, hat sich der TickCount in diesen Sekundenbruchteilen wohl kaum geändert. Der RandSeed wird immer wieder zurückgesetzt und du kriegst immer das gleiche raus.


Zitat:

Zitat von 3_of_8
Randomize initialisiert den Random-Seed mit irgendeinem Zeitwert, welcher genau weiß ich jetzt nicht

s.o.


Zitat:

Zitat von dino
reden wir überhaupt noch davon, wie das random bei delphi realisiert wurde?

Was sollen wir darüber reden, die Implementierung ist bekannt.
Die einzige Frage, die für mich noch unbeantwortet ist, ist die Herkunft der mysteriösen Konstante $08088405.

dino 31. Mär 2007 17:32

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

Sunlight7 31. Mär 2007 18:23

Re: Random ist kein reiner Zufall
 
Abend allerseits!

Zitat:

Zitat von dino
sun und ich haben entdeckt, dass die delphi zufallsfunktion etwas nicht zufälliges hat:

Da muß ich mich auch zu Wort melden. :mrgreen:

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;

dino 31. Mär 2007 18:27

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:
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.
ach übringens: hat jemand die exe ausprobiert? was habt ihr so raus?

Luckie 31. Mär 2007 18:37

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von schrimm
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

Logisch weil der Zufallsgenerator immer mit dem gleichen Wert initialisisert wurde. Randomize darf nur einmal beim Programmstart aufgerufen werden.

dino 31. Mär 2007 19:05

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von Luckie
Logisch weil der Zufallsgenerator immer mit dem gleichen Wert initialisisert wurde. Randomize darf nur einmal beim Programmstart aufgerufen werden.

also sun und ich rufen randomize wie man sihet immer wieder auf und trotzdem kommt was anderes bei raus

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

grenzgaenger 31. Mär 2007 19:51

Re: Random ist kein reiner Zufall
 
nur um ein paar dinge klar zu stellen,
  • randomize initialisiert den zufallszahlengenerator mit einer willkürlichen zahl(hier datum und uhrzeit)
  • diese initialisierung kann auch über randseed gesetzt werden
  • randseed wird benötigt um ergebnisse, welche unter zuhilfenahme mit einem zufallszahlengenerator entstanden, überprüfen zu können
  • die ermittlung in delphi erfolgt über einen einfachen modalwert, der divident ist die konstante, von ihrer güte hängt der algo ab.
dazu muss man sagen
  • in der IT gibt es keine zufallszahlen
  • ein generator muss reproduzierbare ergebnisse liefern
  • diese zahlen müssen hinreichend verteilt sein und
  • der wiederholungs zyklus muss möglichst gross sein
hoffe, ich hab auf die schnelle nix wichtiges vergessen. es ist klar, dass man den algo immer optimieren kann, IMHO ist derjenige von Delphi in den meisten fälle jedoch ausreichend.

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.

3_of_8 31. Mär 2007 19:54

Re: Random ist kein reiner Zufall
 
Hast du irgendeinen Beitrag hier komplett gelesen? Sieht nicht danach aus.

grenzgaenger 31. Mär 2007 20:05

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)

dino 31. Mär 2007 20:10

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

Cöster 31. Mär 2007 20:17

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von dino
nehme ich einfach mal an, dass es nie möglich sein wird

Genau das ist es: Damit sagst du, dass es möglich ist, dass es irgendwann mal möglich ist. Es ist also möglich.

grenzgaenger 31. Mär 2007 20:17

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

dino 31. Mär 2007 20:22

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

Cöster 31. Mär 2007 22:09

Re: Random ist kein reiner Zufall
 
Zitat:

Zitat von grenzgaenger
es setzt nur die variable randseed. da er nix besseres hat, nimmt er halt datum und uhrzeit.

nein, immer noch nicht

Zitat:

Zitat von grenzgaenger
dass hier und da mal 'n bit kipt (weshalb auch keine abfrage wie a = b möglich ist, bei fliesskommazahlen).

Was heißt ein "bit kipt"? Dass man Fließkommazahlen nicht vergleichen darf, liegt daran, dass viele gerundet werden.

Zitat:

Zitat von grenzgaenger
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.

Sorry, aber dazu fällt mir nur eins ein: :wall:

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.

Daniel G 31. Mär 2007 22:31

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 02:07 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz