Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zufallszahlen so zufällig wie möglich

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 10.01.2013, 16:53    Titel: Zufallszahlen so zufällig wie möglich Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 10.01.2013, 17:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 10.01.2013, 18:12    Titel: Re: Zufallszahlen so zufällig wie möglich Antworten mit Zitat

ALWIM hat Folgendes geschrieben:
Im Moment ist der Zufall noch nicht so, wie ich ihn haben will.

Das ist beim Zufall völlig normal. grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 10.01.2013, 21:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 10.01.2013, 21:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 10.01.2013, 22:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 11.01.2013, 02:18    Titel: Antworten mit Zitat

als lötkolbenschwinger:
http://web.jfet.org/hw-rng.html
http://www.cryogenius.com/hardware/rng/

oder, wenn du geld ausgeben magst
http://www.protego.se/sg100_en.htm

oder viel geld ausgeben magst
http://www.idquantique.com/random-number-generators/resources/software/97.html

und, wenn du langeweile hast,
dann schnapp dir n uv-laser, fokusiere ihn auf n nichtlinearen kristall, messe einen der strahlen auf polarität, und tada, du hast ein random bit.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 11.01.2013, 06:04    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 11.01.2013, 13:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 11.01.2013, 19:08    Titel: Antworten mit Zitat

Das Blockierverhalten ist der Hauptgrund, warum der Algorithmus 5 unter Linux /dev/urandom nutzt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.01.2013, 20:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 11.01.2013, 20:54    Titel: Antworten mit Zitat

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 durchgeknallt


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 11.01.2013, 21:14    Titel: Antworten mit Zitat

Ob es gleichverteilt ist, ist aber nochmal eine andere Frage. happy

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 11.01.2013, 21:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 12.01.2013, 15:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 12.01.2013, 15:42    Titel: Antworten mit Zitat

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

(scnr grinsen )
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.01.2013, 20:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 12.01.2013, 22:55    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 13.01.2013, 01:57    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Flo, dein Code compiliert in meinem fbc leider nicht. traurig


verdammt, da kam wohl der c++ler in mir durch. fuer alle anfaenger die superzufallszahlen wollen, einfach das ';' entfernen zwinkern
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz