Zum Inhalt springen

VB: Prinzip vom Zufallsgenerator?


Ninni

Empfohlene Beiträge

Hallo Leute,

mich würde mal interessieren wie der Zufallsgenerator vom Prinzip her funktioniert.

Ich meine jetzt nicht, wie man die Rnd-Funktion benutzt, sondern wie der Zufallsgenerator an sich funktioniert.

D.h. wann er eine Zahl ausgibt und nach welchem Prinzip er zu zählen anfängt, usw.

wäre echt dankbar über Eure Hilfe,

mfg, Mugglberger

Link zu diesem Kommentar
Auf anderen Seiten teilen

wie der genau funzt wei sich auch nicht...

aber er soll die werte entlang der gaußschen glockenkurve rauswerfen.. d.h. er muß doch rechnen.. k.A. vielleicht liest er irgendwelche speicherinhalte aus und stellt diese als zufällig dar.. aber dann stimmt die kurve nicht.. hmm....

also bei QBasic lief der Zufallsgenerator immer gleich.. d.h. bei jedem initialisieren aht er mit den gleichen werten begonnen... aber irgendwie konnte man ihm das abgewöhnen...

ansonsten such doch mal bei google oder so.. ich danke, da hast du glück...

gruß Taz...

Link zu diesem Kommentar
Auf anderen Seiten teilen

also nur der Startwert des Generators wird aus dem Datum gebildet, der Rest ist einfach eine Formel nach der berechnet wird. Deshalb kann man auch mittels dem Startwert immer die selbe 'Zufallsreihe' erzeugen. Es ist also alles garnicht so zufällig.

Schau mal hier zB.

http://www-irm.mathematik.hu-berlin.de/~hgrass/0wr/node39.html

http://www.educeth.ch/informatik/werkstatt/multiplik/zufallszahlen/

http://www.puran2.de/puran2/

Link zu diesem Kommentar
Auf anderen Seiten teilen

einwegfunktionen

nutzen hier aber so gar nichts, denn du machst es mir nun zwar unmoeglich, anhand der *zufallszahl* den initialisierungswert zu ermitteln; jedoch erhalte ich nach wie vor mit gleichem initialiserungswert immer noch die gleiche zufallszahlenfolge. genau das ist ja letztlich der sinn der *einwegfunktionen* ;) ...

zudem erzeugen computergenerierte folgen immer periodische werte, so dass sich diese zahlen zwangslaeufig vorhersagen lassen. und vorhergesagter zufall ist dann wohl doch keiner mehr, oder ?! ;)

solltest du es dennoch geschafft haben, *echte* zufallszahlen zu erzeugen, dann lass dich fuer den nobelpreis vorschlagen, den hast du dir dann naemlich verdient.

es gibt bis dato *keine* einfache moeglichkeit, auf einem computer echte zufallszahlen zu erzeugen. alle diesbezueglichen *verbesserungen* zielen auf eine verlaengerung der periode ...

wmg

dz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi doublezero!

Original geschrieben von doublezero

einwegfunktionen

nutzen hier aber so gar nichts, denn du machst es mir nun zwar unmoeglich, anhand der *zufallszahl* den initialisierungswert zu ermitteln; jedoch erhalte ich nach wie vor mit gleichem initialiserungswert immer noch die gleiche zufallszahlenfolge. genau das ist ja letztlich der sinn der *einwegfunktionen* ;) ...

ist ja auch nur ein kleiner Teil des Algorithmus...

Da wird ziemlich viel rumgerechnet :D

Original geschrieben von doublezero

zudem erzeugen computergenerierte folgen immer periodische werte, so dass sich diese zahlen zwangslaeufig vorhersagen lassen. und vorhergesagter zufall ist dann wohl doch keiner mehr, oder ?! ;)

solltest du es dennoch geschafft haben, *echte* zufallszahlen zu erzeugen, dann lass dich fuer den nobelpreis vorschlagen, den hast du dir dann naemlich verdient.

es gibt bis dato *keine* einfache moeglichkeit, auf einem computer echte zufallszahlen zu erzeugen. alle diesbezueglichen *verbesserungen* zielen auf eine verlaengerung der periode ...

wmg

dz

Ich hab das Teil einfach mal so geschrieben - für nix und niemanden, ich wollte eben einfach mal nen Zufallsgenerator nutzen.

In irgendwelche Perioden kommt man mit dem Programm kaum. (Ich könnte nicht absolut sagen, nie - ich hab mich dann nicht mehr weiter mit dem Teil beschäftigt.)

Nochmal zu den "echten Zufallszahlen":

Echte Zufallszahlen wären per Definition immer Zufallszahlen, die ohne einen Algorithmus erzeugt würden - und das ist, logischerweise, am Computer unmöglich. (Bisher, wohlgemerkt - es gibt Algorithmen für Quantenrechner, die tatsächlich echte Zufallszahlen erzeugen - ja, es sind Algorithmen, aber sie beruhen darauf, dass bestimmte quantenmechanische Prozesse absolut nicht vorhersagbar sind...)

Gruß,

Technician

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe da mal die wichtigsten definitionen rund um den zufall in generierten zahlenfolgen herausgesucht.

*zufallszahl* [auch: zufallsbit] wird nach b. schneier folgendermassen definiert:

1. "er [der generator] scheint zufaellig zu sein. das bedeutet, dass er saemtliche uns zugaenglichen statistischen zufallstests besteht." [def. *pseudozufall*]

2. "sie [die pseudozufallsfolge] ist nicht voraussagbar. es muss unmoeglich sein zu berechnen, welches zufallsbit als naechstes kommt, selbst wenn der algorithmus oder die hardware, die die folge erzeugen, sowie alle vorangehenden bits bekannt sind." [def. *kryptographisch sichere pseudozufallsfolgen*]

3. "er [der generator] ist nicht zuverlaessig reproduzierbar. wenn man den generator zweimal mit exakt derselben eingabe (zumindest soweit dies menschenmoeglich ist) laufen laesst, erhaelt man zwei zufallsfolgen, die keinerlei aehnlichkeit aufweisen" [def. *echte zufallsfolgen*]

ich denke daher, dass gute (pseudo)zufallsfolgen nicht zwingend auf komplizierten wegen *errechnet* werden muessen, tech.

wie waere es denn, wenn man einfach nur initialisierungswerte nimmt, welche nicht oder zumindest schwer nachvollziehbar sind (akt.mauspos; akt.rasterzeile, farbwert des bildpunktes unter dem mauszeiger, akt.cpu-auslastung, verzoegerung zw. zwei tastaturanschlaegen, etc.); diese der sicherheit halber durch ein oder zwei einwegfunktionen schiebt und - insbesondere wenn man mehere quellen kombiniert - doch schon recht ansehnliche *zufallszahlen* mit den simplen *random*-funktionen verschiedenster sprachen erhaelt.

natuerlich gibt es bessere wege, die letztlich noch zufaelliger werdende ergebnisse erzeugen:

* die rand-tabelle,

* zufaelliges rauschen (z.b. atmosphaerisches oder hintergrundrauschen)

* radioaktiver zerfall (zeitspanne zwischen zwei emissionen; hier am besten plutonium ;) )

* oder sogar die systemuhr:

bastelanleitung eines zahlengenerators: [nach j.b.lacy, d.p.mitchell und w.m.schell]

"... zieht einen alarm auf und erhoeht dann solange einen zaehler in einem cpu-register, bis ein interrupt kommt. der inhalt des registers wird dann mit dem inhalt eines ausgabepuffers xor-verknuepft, wodurch der inhalt des registers auf 8 bit abgeschnitten wird. nacdem jedes byte des ausgabepuffers gefuellt ist, wird jedes zeichen im puffer ringfoermig um zwei bit nach rechts verschoben. dadurch verschieben sich die aktivsten (und zufaelligen) niederwertigen bits in die hoechstwertigen stellen. der gesamte vorgang wird dreimal wiederholt. schliesslich wird jedes zeichen des puffers von den beiden zufaelligsten bits des zaehlregisters nach interrupts beeinflusst. es treten also 4n interrupts auf, wobei n die anzahl der gewuenschten zufallsbits ist."

solange wir jedoch noch auf den hausgebrauch quantenmechanischer computer warten muessen, bleibt uns keine wahl: "der zufall ist und bleibt berechenbar".

wmg

dz

Link zu diesem Kommentar
Auf anderen Seiten teilen

deine Idde mit dem kombinieren von quellen ist ja schön und gut.. nur müsste die einweg funktion dann soweit arbeiten, dass sie dei Zahlen nach der gaußschen normalverteilung (glockenkurve) ausspuckt.. und wenn du so daran rumrechnen mußt, finde ich das ziemlich uneffektive...

dennoch ist dein Gedanke ziemlich gut.. ir fällt auch nichts besser ein...

Gruß Taz...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von TAZttDevil

deine Idde mit dem kombinieren von quellen ist ja schön und gut.. nur müsste die einweg funktion dann soweit arbeiten, dass sie dei Zahlen nach der gaußschen normalverteilung (glockenkurve) ausspuckt.. und wenn du so daran rumrechnen mußt, finde ich das ziemlich uneffektive...

dennoch ist dein Gedanke ziemlich gut.. ir fällt auch nichts besser ein...

Gruß Taz...

Man (Frau;)) hätt da ja noch weitermachen können:

Z.B. die so entstandene "Zufallszahl" z.B. in eine Koordinate umwandeln und aus einem extrem verrauschten Bild (kann ja z.B. von einem Bildbearbeitungsprogramm erzeugt werden) eine Koordinate auslesen...:eek:

Vielleicht programmier ich ja an dem Teil weiter, wenn ich mal mag

Gruß,

Technician

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von doublezero

* oder sogar die systemuhr:

Wobei man aber am besten nicht die komplette Zeit nehmen sollte (schlecht wäre, aus Stunde:Minute:Sekunde nacheinander eine Zahl zu bilden; womöglich hängt dann auch noch der restliche Algorithmus von der Größe der Zahl ab... besser, man wertet nur die Sekunden... muss man aber natürlich auch aufpassen...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

tech,

wenn du *nur* die sec verwerten wuerdest, dann haettest du viel (!) zu kurze zyklen!

falls du jedoch diese werte als initial-werte verstanden wissen wolltest, dann wuerde ich der effektivitaet wegen doch eher die millisec bevorzugen, da hier der periodische takt nicht ganz so schnell offensichtlich wird.

und *uhr* bezog sich in meinem bsp lediglich auf den taktgeber, nicht auf das, was du so nett angezeigt bekommst, wenn du nach der zeit fragst ...

auch dein *verrauschtes bild* ist nicht zufaellig, sondern vorherbestimmt, so dass man - und hier waere es wirklich simpel - recht schnell auf die entstehende zahlenfolge schliessen koennte. (das *rauschen* in den grafikprogrammen wird ja von den TAZttDevil-gauss'schen algorithmen berechnet - ist also reversibel.)

taz,

warum du dauernd auf der gaussverteilung herumhackst kann ich nicht nachvollziehen.

sie beschreibt lediglich eine reelle, symmetrische(!) und positiv definitive matrix. sobald jedoch symmetrie im spiel ist, wird es kalkulierbar, und genau das ist es ja was eine *zufaellige folge* kompromittieren wuerde. daher waere sie nicht nur unnoetig, sondern m.e. sogar voellig fehl am platz. vielmehr koenntest du tech's *verrauschtes bild* vorherbestimmen, damit er sich nicht die muehe machen muss, es selbst zu malen. ;)

wmg

dz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von doublezero

tech,

wenn du *nur* die sec verwerten wuerdest, dann haettest du viel (!) zu kurze zyklen!

falls du jedoch diese werte als initial-werte verstanden wissen wolltest, dann wuerde ich der effektivitaet wegen doch eher die millisec bevorzugen, da hier der periodische takt nicht ganz so schnell offensichtlich wird.

es ging mir natürlich auch um die Initialwerte!

Original geschrieben von doublezero

auch dein *verrauschtes bild* ist nicht zufaellig, sondern vorherbestimmt, so dass man - und hier waere es wirklich simpel - recht schnell auf die entstehende zahlenfolge schliessen koennte. (das *rauschen* in den grafikprogrammen wird ja von den TAZttDevil-gauss'schen algorithmen berechnet - ist also reversibel.)

es geht ja dabei nur darum, dass die Wahrscheinlichkeit, einen grünen Punkt zu erwischen, genauso groß ist wie die, einen roten Punkt zu erwischen. Könnte meinetwegen auch ein Raster sein.

Original geschrieben von doublezero

taz,

warum du dauernd auf der gaussverteilung herumhackst kann ich nicht nachvollziehen.

sie beschreibt lediglich eine reelle, symmetrische(!) und positiv definitive matrix. sobald jedoch symmetrie im spiel ist, wird es kalkulierbar, und genau das ist es ja was eine *zufaellige folge* kompromittieren wuerde. daher waere sie nicht nur unnoetig, sondern m.e. sogar voellig fehl am platz.

bin auch der Meinung!

gruß,

Technician

Link zu diesem Kommentar
Auf anderen Seiten teilen

hey taz,

nicht sauer werden. :D ich finde dieses thema hochinteressant, und vielleicht ist es ja sogar mgl, dass wir gemeinsam wege finden, einen generator zu entwickeln, der annehmbare *zufaellige* werte liefert. es ist nur so, dass *stochiastik* statistische werte ueber zufaelle ermittelt, also die berechenbarkeit des zufalls sucht, waehrend wir mit einem generator eigentlich bemueht sind, genau das *kaputt zu machen*. ;) imho ist gauss uns deshalb hier nicht wirklich behilflich; was aber nicht heisst, dass deine meinung nicht auch einen sinn haben kann, den ich nicht sehe [was wiederum ursaechlich dafuer ist/sein kann, dass ich bis dato noch immer keinen weg gefunden habe, einen ausreichend befriedigenden *zufall* erzeugen zu koennen.].

um auf deine frage zu kommen, wozu das ganze notwendig ist, kann ich dir verschiedene fachgebiete nennen, die sich mit dem *echten zufall* auseinandersetzen: chaostheorie und kryptographie seinen hier nur vertretungsweise erwaehnt.

wenn es moeglich waere, unendliche *echte zufallsfolgen* zu erzeugen, dann koennte man z.b. saemtliche verschluesselungen *absolut* sicher machen, indem ich bspw. ein one-time-pad ueber die gesamte *bibel* oder ueber *war and peace* legen koennte, ohne dass auch nur der hauch einer chance bestuende, den schluessel - der ja dann genau so lang waere, wie der eigentliche inhalt des zu verschluesselnden textes - zu ermitteln. :D

wmg

dz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...