Aus dem Link von danimath:
Ok, diesen Generator habe ich nun mal verwendetKnuth suggests various generators, including one that combines the first two table entries above:
- xn+1 = 48271*xn mod (231 - 1),
yn+1 = 40692*yn mod (231 - 249),
zn = (xn - yn) mod (231 - 1),
Und sieheda, auch wenn der Generator nicht perfekt ist, lässt sich damit kein Vorteil beim Spiel "mit system" mehr feststellen.Code:unsigned long lastrandom1,lastrandom2; unsigned long random() { unsigned long z=(lastrandom1-lastrandom2)%2147483647; // 2^31-1 lastrandom1=(48271*lastrandom1)%2147483647; lastrandom2=(40692*lastrandom2)%2147483399; // 2^31-249 return z; } // Seed: time_t t; time(&t); srand((unsigned int)t); lastrandom1=rand(); lastrandom2=rand();
Hallo!
So wie der Richard schrieb, fast perfekte Zufallsgeneratore lassen sich (wie in der Natur) nut Analog hardwaremässig realisieren. Besser und einfacher als "rosa" ist "weiss" Rauschen. Als Lekture würde ich das empfehlen: https://www.roboternetz.de/community...%9Fes-Rauschen![]()
Geändert von PICture (06.10.2011 um 16:50 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Ich wollt's noch vorschlagenEigentlich sind bei den aktuellen Pseudo-Zufallszahlengeneratoren nur die in der Art von D. Knuth verbreitet (in Java wird sogar explizit drauf verwiesen). Wer das Geld ausgeben möchte (oder eine gute Bibliothek in der Nähe hat), mag sich gern mal "The Art of Computer Programming" von D. Knuth zulegen (oder mal reinschauen). Neben Pseudozufallszahlen gibt es da auch so spannende Sachen wir Suchen Sortieren, Listen,... Man kann also viel über grundlegende Algorithmen lernen.
"Echte" Zufallszahlen sind - wie schon PICture und Richard geschrieben haben - nicht mit Algorithmen zu erzeugen. Das beste ist immer noch ein radioaktives Präparat mit einen Zähler; aber das bringt wieder andere Probleme
viele Grüße
Andreas
#define true ('/'/'/')
#define false ('-'-'-')
Wenn jemand Lust auf einfache Experimente hat, dann: https://www.roboternetz.de/community...rator-(gelöst) .
Übrigens, ich werde sehr dankbar für Ausprobieren und Berichten. Am einfachsten wäre fehlerhaftes Unterprogramm für internen ADC Wandler., falls in dem µC vorhanden.![]()
Geändert von PICture (06.10.2011 um 17:38 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Hmm, ich (dachte) bisher das der Radioaktive Zerfall ein höchst zuverlässiges Signal erzeugt, weit entfernt von Zufall? Als (einigermaßen) guter Zufalls Generator, sollte ein Stück Draht mit offenen Ende an einen ADC Port taugen. Mit der Länge muss man etwas testen damit nicht gerade 50 Hz empfangen werden.
Gruß Richard
Wahrscheinlich meinst du, dass die max. zulässige für ADC Amplitude der empfangener Netzspannung nicht uberschritten wird. Ich würde deshalb an ADC Pin zwei Dioden anschliessen, falls es nicht intern geschützt ist (siehe Code).Code:VCC + | D1 - lange "Antenne" ^ | ------------------------------------------------+---> ADC Pin | D2 - ^ | === GND (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Geändert von PICture (08.10.2011 um 12:35 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Lesezeichen