Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 10.01.2013, 16:53 Titel: Zufallszahlen so zufällig wie möglich |
|
|
Ich kann mit Freebasic ja Zufallszahlen generieren. Diese sind mir nicht "zufällig" genug.
Ich will Zufallszahlen erstellen, die so zufällig wie möglich sind. Im Moment ist der Zufall noch nicht so, wie ich ihn haben will.
Welche Möglichkeiten gibt es Zufallszahlen so zufällig wie möglich zu erstellen? Am besten so, als wenn ein Mensch mit einem Würfel würfelt. Oder am besten noch zufälliger.
Es sollte der perfekte Würfel sein!
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 10.01.2013, 17:39 Titel: |
|
|
Hi,
hast du dir schon mal alle Algorithmen angesehen, die du mit RANDOMIZE auswählen kannst?
http://www.freebasic-portal.de/befehlsreferenz/randomize-539.html _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 10.01.2013, 18:12 Titel: Re: Zufallszahlen so zufällig wie möglich |
|
|
ALWIM hat Folgendes geschrieben: | Im Moment ist der Zufall noch nicht so, wie ich ihn haben will. |
Das ist beim Zufall völlig normal.
Der verwendete Generator ist schon wirklich sehr gut. Auftretende Häufungen sind normal und ebenfalls zufallsbedingt - anders ausgedrückt: die Wahrscheinlichkeit, dass bei 60 Würfelwürfen genau 10 mal die Sechs fällt, ist ziemlich gering (kleiner als 14%), obwohl man ja im Schnitt genau 10 Sechser erwarten würde. Aber das, was wir vom Zufall "erwarten", ist eben sehr oft gerade kein Zufall mehr. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 10.01.2013, 21:22 Titel: |
|
|
Zitat: | Zunächst sollte man sich darüber im Klaren sein, dass die in FreeBASIC verfügbare Methode keine echten Zufallszahlen erzeugt. Computer können aus gegebenen Daten neue Daten errechnen, sich aber keine zufälligen Werte "ausdenken". Genau das passiert beim "Zufallsgenerator" eines Computers: Anhand eines bestimmten Algorithmus errechnet sich der Computer aus einer gegebenen Zahl die nächste "Zufallszahl". Allerdings ist der verwendete Algorithmus so ausgetüftelt, dass die Ergebnisse sehr zufällig erscheinen. Solange Sie keine sicherheitsrelevanten Dinge implementieren wollen, wird der eingebaute Pseudozufallsgenerator ausreichend gute Dienste leisten. |
_________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 10.01.2013, 21:54 Titel: |
|
|
Damit beantwortest du dir die Frage selbst, warum der Zufall nicht zufällig genug ist. Der neue Algorithmus 5 verwendet zur "Zufallsberechnung" noch Nutzereingaben. Die lassen sich eher schwierig vorhersagen, sind also sehr "zufällig". Was besseres wirst du nicht kriegen können. |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 10.01.2013, 22:07 Titel: |
|
|
MOD hat Folgendes geschrieben: | Damit beantwortest du dir die Frage selbst, warum der Zufall nicht zufällig genug ist. Der neue Algorithmus 5 verwendet zur "Zufallsberechnung" noch Nutzereingaben. Die lassen sich eher schwierig vorhersagen, sind also sehr "zufällig". Was besseres wirst du nicht kriegen können. |
Das ist blöd! Da kann man nichts machen. Auf jeden Fall danke für die zahlreichen Antworten!
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 11.01.2013, 06:04 Titel: |
|
|
ALWIM hat Folgendes geschrieben: | MOD hat Folgendes geschrieben: | Damit beantwortest du dir die Frage selbst, warum der Zufall nicht zufällig genug ist. Der neue Algorithmus 5 verwendet zur "Zufallsberechnung" noch Nutzereingaben. Die lassen sich eher schwierig vorhersagen, sind also sehr "zufällig". Was besseres wirst du nicht kriegen können. |
Das ist blöd! Da kann man nichts machen. Auf jeden Fall danke für die zahlreichen Antworten!
Gruß
ALWIM |
najaaaa, es gibt schon was besseres, jedenfalls unter Unixen:
/dev/random (im Gegensatz zu /dev/urandom):
/dev/random ist vergleichsweise langsam, bezieht aber statistische daten wie deine tipprate, was so an die netzwerkkarte kommt und saemtliche aeusseren einfluesse auf deinen computer mit ein, und gewinnt dadurch immer neue entropie.
d.h. die zufallszahlen sind immernoch berechnet, und wenn du volle kontrolle ueber die umgebung deines pcs hast kannst du sie immernoch vorhersagen.
sie sind aber ein ganzes stueck besser als RND _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 11.01.2013, 13:12 Titel: |
|
|
Flo hat Folgendes geschrieben: | ALWIM hat Folgendes geschrieben: | MOD hat Folgendes geschrieben: | Damit beantwortest du dir die Frage selbst, warum der Zufall nicht zufällig genug ist. Der neue Algorithmus 5 verwendet zur "Zufallsberechnung" noch Nutzereingaben. Die lassen sich eher schwierig vorhersagen, sind also sehr "zufällig". Was besseres wirst du nicht kriegen können. |
Das ist blöd! Da kann man nichts machen. Auf jeden Fall danke für die zahlreichen Antworten!
Gruß
ALWIM |
najaaaa, es gibt schon was besseres, jedenfalls unter Unixen:
/dev/random (im Gegensatz zu /dev/urandom):
/dev/random ist vergleichsweise langsam, bezieht aber statistische daten wie deine tipprate, was so an die netzwerkkarte kommt und saemtliche aeusseren einfluesse auf deinen computer mit ein, und gewinnt dadurch immer neue entropie.
d.h. die zufallszahlen sind immernoch berechnet, und wenn du volle kontrolle ueber die umgebung deines pcs hast kannst du sie immernoch vorhersagen.
sie sind aber ein ganzes stueck besser als RND |
Und /dev/random blockt, wenn der entropy-pool leer ist. Und wird eigentlich nur für kryptographische Zwecke befragt… |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 11.01.2013, 19:08 Titel: |
|
|
Das Blockierverhalten ist der Hauptgrund, warum der Algorithmus 5 unter Linux /dev/urandom nutzt. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.01.2013, 20:48 Titel: |
|
|
Es muss halt immer unterschieden werden zwischen "alltäglichen" (general usage) Anwendungen und kryptografischen Anwendungen wie z.B. ein Sitzungsschlüssel generieren.
Für die alltäglichen Anwendungen sollte ein RND() mit RANDOMIZE TIMER (vermutlich in FB nicht einmal mehr nötig - nicht getestet) genügen. Für Kryptografie-Anwendungen wird es entsprechend anspruchsvoller und erheblich rechenzeit-intensiver. Nötigenfalls auch Benutzereingabe vorsehen, z.B. Anweisung "Bitte Maus jetzt beliebig im Fenster bewegen" anzeigen mit unten einem Balken "% fertig".
Beispiel eines Wireless LAN-PSK-Generators von mir:
http://beilagen.dreael.ch/QB/WPA_GEN.BAS
=> Hier fordere ich auch den Benutzer auf, völlig chaotisch beliebige Tasten zu drücken, so dass ich deren INKEY$-ASCII-Wert als auch den Zeitpunkt (TIMER) des Drückens in den Zufall einfliessen lasse, so dass garantiert nicht Sachen wie unter
http://www.heise.de/security/meldung/Schwache-Krypto-Schluessel-unter-Debian-Ubuntu-und-Co-207332.html
beschrieben passieren können. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 11.01.2013, 20:54 Titel: |
|
|
Da fällt mir noch ne alternative möglichkeit ein.
Einfach in einen stock dunklen raum setzen. Dabei die augen offen lassen, und wenn man im linken auge einen lichtblitz sieht, dann schreibt man ne 1, und beim rechten auge entsprechend ne 0 auf.
Ich glaube, das is nicht vorhersagbar
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 11.01.2013, 21:14 Titel: |
|
|
Ob es gleichverteilt ist, ist aber nochmal eine andere Frage.
RANDOMIZE ist in FB noch notwendig, wobei nicht notwendigerweise ein Initialwert angegeben werden muss - während RANDOMIZE TIMER nur sekundengenau arbeitet, ist RANDOMIZE ohne Initialwert zwar ebenfalls von TIMER abhängig, aber mit wesentlich höherer zeitlichen Auflösung. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 11.01.2013, 21:16 Titel: |
|
|
ach, @nemored .. das is ja das tolle an einem zufall. man weist vorher nicht, ob es gleichverteilt ist, oder nicht. Gleichverteilung bezieht sich immer auf eine zeiteinheit. für "uns" mag es sinvoll erscheinen, wenn die gleichverteilung schon bei geringen wiederholraten gegeben ist.
warum sollte aber nicht auch mal die möglichkeit gegeben sein, erst nach 1000 eine änderung zu erhalten, und danach gleich wieder zurück .. das ist ja immer alles subjektiv, beim zusalle.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 12.01.2013, 15:18 Titel: |
|
|
Code: | function getRandomNumber() as integer ' returns a random number between 0 and 255
return 61; ' this number has been found in a laplace experiment, throwjng a perfectly symmetrical coin 8 times, and is perfectly random
end function |
_________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 12.01.2013, 15:42 Titel: |
|
|
ThePuppetMaster hat Folgendes geschrieben: | ach, @nemored .. das is ja das tolle an einem zufall. man weist vorher nicht, ob es gleichverteilt ist, oder nicht. Gleichverteilung bezieht sich immer auf eine zeiteinheit. für "uns" mag es sinvoll erscheinen, wenn die gleichverteilung schon bei geringen wiederholraten gegeben ist. |
Gleichverteilt war das falsche Wort - gleich wahrscheinlich meinte ich. Ich halte es für durchaus möglich, dass jemand z. B. mit dem linken Auge generell mehr Blitze sieht als mit dem rechten. Von einer Gleichverteilung kann man hier vermutlich schon ausgehen.
Flo, dein Code compiliert in meinem fbc leider nicht.
(scnr ) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 12.01.2013, 20:08 Titel: |
|
|
Tatsächlich kann man mit Webcams sehr billig recht gute Hardware-RNGs bauen. Einfach das Objektiv mit schwarzem Isoband lichtdicht abkleben und die Belichtungszeit auf ausreichend kurze Werte fixieren. Der Dunkelstrom des Bildsensors ist nahezu perfekter Zufall, sofern keine Hotspots existieren. Da es die aber meistens gibt, empfiehlt es sich, einfach einen guten PRNG mit diesen "Rohzufall" permanent zu füttern. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 12.01.2013, 22:55 Titel: |
|
|
Inzwischen ein kleiner Code zum Ganzen:
http://beilagen.dreael.ch/QB/MausStarkZufall.bas
Für die Zweifler: Ruhig einmal das Rnd und Randomize ganz herausnehmen - Zufällige Mausbewegungen alleine sind praktisch immer Unikate, so dass es unmöglich ist, die genau gleiche Würfelung zu wiederholen.
Selbstverständlich ist ein Mikrofon und entsprechender Soundeingang auch geeignet -> Hintergrundrauschen ist auch hinreichend zufällig. Ebenso das Rauschen im Bild einer aktiven Notebook-Webcam. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 13.01.2013, 01:57 Titel: |
|
|
nemored hat Folgendes geschrieben: | Flo, dein Code compiliert in meinem fbc leider nicht.  |
verdammt, da kam wohl der c++ler in mir durch. fuer alle anfaenger die superzufallszahlen wollen, einfach das ';' entfernen  _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
|