Die Sache mit dem Zufall
-
einarmjoe schrieb:
wenn du das mit der aktuellen Zeit initialisierst kommen wirklich zufällige Werte raus, und nicht immer die gleichen!
Falsch! Wirklich zufällige Werte kannst du in keinem PC dieser Welt erzeugen.
-
Reyx schrieb:
Falsch! Wirklich zufällige Werte kannst du in keinem PC dieser Welt erzeugen.
hmm...gleich der erste Beitrag von mir falsch .. fängt ja gut an ..

Ich möchte aber doch klarstellen das mir das klar war und damit gemeint habe.. man bekommt nicht immer die gleichen Werte raus, was der Fall ist wenn man srand mit einer festen Grösse initialisiert!Somit denke ich ist das für sein Chatprogramm schon der richtige Ansatz ist..
.. oder lieg ich da "wirklich" so falsch?Gruss
Joe
-
An deinem Beitrag hab ich gar nichts auszusetzen, nur eben
einarmjoe schrieb:
wenn du das mit der aktuellen Zeit initialisierst kommen wirklich zufällige Werte raus

@Perner
Wenn du rand() nicht verwenden willst, dann schau dir mal random_shuffle() an, das hat mir in einer ähnlichen Situation schonmal gute Dienste geleistet (erfordert aber den vorherigen Aufruf von randomize()).
-
Reyx schrieb:
einarmjoe schrieb:
wenn du das mit der aktuellen Zeit initialisierst kommen wirklich zufällige Werte raus, und nicht immer die gleichen!
Falsch! Wirklich zufällige Werte kannst du in keinem PC dieser Welt erzeugen.
Warum muß darauf gleich eine pauschal ebenfalls wohl eher falsche, mindestens aber unbeweisbare Antwort kommen, wo doch eigentlich klar war, was er meinte.

Tatsächlich gibt es sehr wohl div. Hardwarelösungen, zum Teil als Steckkarte, zum Teil als externe Lösung, die auf Basis verschiedenster Ansätze Nonalgo-Zufallszahlen erzeugen, z.B. wahlweise über Zerfallsprozesse/Strahlung, oder Halbleiterrauschen. Ein damit ausgestatteter PC erzeugt Zufallszahlen die den dafür existierenden Definitionen genügen. Wenn Du natürlich Einsteins Meinung bist, das Gott nicht würfelt und Heisenberg Unsinn erzählt hat, es also gar keinen Zufall gibt, ist das nur eine dünne Theorie und ein theologischer, denn naturwissenschaftlicher Ansatz und hat hier in jedem Fall vielleicht nur wenig mit dem Thema zu tun.

-
Ich habe mich auf Computer bezogen, nicht auf irgend welche externen Verfalls- oder Strahlentechniken! Und selbst in deinem Beispiel erzeugt der Computer keine Zufallszahlen, er "bekommt" sie lediglich!
Vom Aufbau deiner Argumentation kann man auch einen Menschen in den Computer stecken und behaupten, der Computer könne jetzt interaktiv auf den, der vorm Monitor sitzt, reagieren. Kann er aber nicht, auch wenn er vielleicht etwas "nutzt", was dies kann!

-
Reyx schrieb:
Ich habe mich auf Computer bezogen, nicht auf irgend welche externen Verfalls- oder Strahlentechniken! Und selbst in deinem Beispiel erzeugt der Computer keine Zufallszahlen, er "bekommt" sie lediglich!
Vom Aufbau deiner Argumentation kann man auch einen Menschen in den Computer stecken und behaupten, der Computer könne jetzt interaktiv auf den, der vorm Monitor sitzt, reagieren. Kann er aber nicht, auch wenn er vielleicht etwas "nutzt", was dies kann!
Dann hättest Du Deine Definition von PC noch dazuschreiben sollen. Für mich kann ein PC mit einer eingebauten Karte die Funktionen die das Paket erlaubt. Nach Deiner Definition kann man mit keinem PC TV-Programme empfangen, die meisten würden aber eher glauben das ein PC mit TV-Karte eben genau dieses tut. Mir scheint was Du eigentlich sagen wolltest ist, das heutige CPUs keine echten Zufallszahlen erzeugen können. Da stimme ich natürlich zu. Aber jetzt so zu tun das ein PC nur eine fest definierte Hardware mit von Dir bestimmten Karten ist, ist "merkürdig".

-
PCDefinitionError schrieb:
Mir scheint was Du eigentlich sagen wolltest ist, das heutige CPUs keine echten Zufallszahlen erzeugen können
Genau das meinte ich

Trotzdem ist es für mich ein Unterschied, ob da eine Karte im PC drin steckt oder irgenwelche Verfallsprozesse digitalisiert werden...
-
Mensch jungs, es ist nur ein einfaches Chatprogramm. Ich benötige keinen Höchstwissenschaftlichen zufall. Alles was ich will ist, das nicht immer der selbe witz erzählt wird.

Außerdem gibt es keinen Zufall. Zufall ist für mich eine für den Menschen unberechenbare begebenheit, ansonsten ist alles vorrausbestimmt. Theoretisch könnte man genau ausrechnen um wie viel Uhr ich auf die Sekunde morgen früh in mein Brötchen beißen werde, allerdings bräuchte ich dazu eine riesen formel in der sämtliche Naturbegebenheiten berücksichtigt sind (z.B. Butterfly effekt) aber ich weiche vom Thema ab.

Wie war das mit dem Shuffle? In Delphi gibts n gutes random, das muss man auch mit Randomize initalisieren. Wie geht das in c++?
-
#include <cstdlib> #include <iostream> #include <ctime> using namespace std; int main(int argc, char *argv[]) { srand((unsigned int)time(NULL)); for(int i=0;i<20;i++) { cout << rand() % 10 << endl; } system("PAUSE"); return EXIT_SUCCESS; }
-
Hier nochmal ein Code, der dir (fast) beweist, dass die Zahlen gleich häufig vorkommen:
#include <cstdlib> #include <iostream> #include <ctime> using namespace std; int main(int argc, char *argv[]) { int Anzahl[10]; memset(Anzahl,0,sizeof(Anzahl)); srand((unsigned int)time(NULL)); for(int i=0;i<1000;i++) { int x = rand() % 10; Anzahl[x]++; } for(int i=0;i<10;i++) { cout << int(Anzahl[i] / 10.0f) << " % der Zahlen waren " << i << endl; } system("PAUSE"); return EXIT_SUCCESS; }
-
das testet nicht mal ein Drittel der Bits deiner ZZ. und 1000 ? icht dacht das gild immer für n=infinity

-
b7f7 schrieb:
das testet nicht mal ein Drittel der Bits deiner ZZ. und 1000 ?
Warum nicht?
b7f7 schrieb:
icht dacht das gild immer für n=infinity

Was meinst du damit?
mfg.
-
joomoo schrieb:
b7f7 schrieb:
das testet nicht mal ein Drittel der Bits deiner ZZ. und 1000 ?
Warum nicht?
b7f7 schrieb:
icht dacht das gild immer für n=infinity

Was meinst du damit?
mfg.
wieviel bits einer 15bit zufallszahl benutzt man bei %10?
http://de.wikipedia.org/wiki/Gesetz_großer_Zahlen