Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Zufallsprinzip Ja oder Nein ?

andy1111 / 22 Antworten / Baumansicht Nickles

Hallo an alle!

Hätte mal ne Frage die mich schon länger beschäftigt !

Ich habe was das Thema " Programmierung " betrifft leider noch sehr wenig Ahnung ,
jedoch beschäftigt mich schon ne ganze Weile eine Frage .

Spielesoftware

Ist es wirklich möglich eine Software so zu proggen das es reines Zufallsprinzip ist ?

Ich bin der Meinung das es nicht geht !
Denn jedes Prog. benötigt die Eingabe einer bestimmten Reihenfolge an Kombinationen die folgen sollen !
Egal ob Würfel oder Kartenspiele !
Logischerweise könnte man die Software für Millionen von Möglichkeiten proggen,
aber irgendwann würde alles von vorne anfangen .

Wie seht Ihr das ? Würde mich echt interessieren .

Gruß Andy

bei Antwort benachrichtigen
Xdata andy1111 „Zufallsprinzip Ja oder Nein ?“
Optionen

Du liegst richtig mit deiner Vermutung.
Es ist nicht möglich echten Zufall zu programmieren.
Ein Algorithmus erzeugt Pseudozufallszahlen, die aber nicht wirklich zufällig sind.
Macht aber nichts da diese recht lang sind und dem Zufall "ähnlich" sind.

"..aber irgendwann würde alles von vorne anfangen.."

Schon, nur wird nach oder kurz vor einer Wiederholung
ein neuer Startwert mit einer anderen zufällig erscheinenden
Folge gestartet.
Irgendwann aber tatsächlich wieder der Gleiche mit der Selben Folge.

-- Die dann aber längst vergessen ist und auch wie reiner Zufall erscheint :-)
-- Obwohl sie schon mal da war.

Ob man physikalische Vorgänge anstelle eines Algorithmus nehmen könnte, Rauschen? oder gar Quanteneffekte?

Letzteres ist das Einzige womit es wohl möglich wäre.
Da heißt es etwa:
"Selbst die Natur weiß nicht alles was sie gerade tut!" ?*

* nicht determinierte Bereiche

bei Antwort benachrichtigen
hellawaits Xdata „Du liegst richtig mit deiner Vermutung. Es ist nicht möglich echten Zufall zu...“
Optionen

Moin Xdata,

bezieht sich das mit dem Algorithmus auch auf die gute alte C64er Zeit?

C64 Basic: Wenn man damals bei der Programmierung z.B. die Zahlen von 0 - 128 mit einem RND - Befehl verknüpft hat, sah das Ergebnis ziemlich willkürlich aus^^ (ich kann mich auch täuschen^^^^^).

Grüsse
Hellawaits

bei Antwort benachrichtigen
Xdata hellawaits „Moin Xdata, bezieht sich das mit dem Algorithmus auch auf die gute alte C64er...“
Optionen

Ja, da hab ichs her.

War der schöne Atari 800, auch 6502 :-) den C64 hatte ich später auch.
Von den Startzeiten können heutige Rechner nur träumen..

Die grundlegende Methode der Erzeugung ist vermutlich anderswo ebenso.

bei Antwort benachrichtigen
hellawaits Xdata „Ja, da hab ichs her. War der schöne Atari 800, auch 6502 :- den C64 hatte ich...“
Optionen

Moin Xdata,

jo....das wäre schön....sobald das System mit allem Schnickschnack sauber neuinstalliert wurde, alles auf ein ROM übertragen.....also einschalten, und direkt loslegen...... die Bootzeiten waren damals wirklich astronomisch schnell, da kann selbst meine neue OCZ SSD nicht mithalten^^

Grüsse & schönes Wochenende
Hellawaits

bei Antwort benachrichtigen
Andreas42 andy1111 „Zufallsprinzip Ja oder Nein ?“
Optionen

Hi!

Deine Frage berührt neben der klassischen Informatik auch die Mathematik. Gerade beim Thema "Zufall" benötigt man eine Funktion, die bei jedem Aufruf einen andere Zahl zurückgibt. Die Reihenfolge der Werte soll dabei möglichst nicht vorhersehbar sein und sich auch nicht (zu schnell) wiederholen (zudem sollen die Werte etwa gleich häufig auftreten).

Soweit ich weiss, wird auf dem Gebiet immer noch geforscht. Die perfekte Zufallsfunktion dürfte es IMHO immer noch nicht geben.

Die üblichen Zufallsfunktionen, die es schon seit Jahrzehnten in Programmiersprachen gibt arbeiten in etwa so, dass sie sich den letzten Wert merken und dann daraus den nächsten erzeugen. Die Reihenfolge der Werte wäre dabei bei jedem neuen Programmstart gleich. Daher kann man einen Startwert mitgeben, der dann quasi bewirkt, dass an einer anderen Stelle in die Reihenfolge der Werte eingestiegen wird.

Oft nimmt man für diesen Startwert das Datum und die Uhrzeit des Rechners. Damit hat man bei jedem Aufruf einen anderen Startwert und die Reihenfolge der "Zufallszahlen" sollte nicht gleich sein.

So ganz kann man nicht sagen, ob deine Vermutung richtig oder falsch ist. Aus meiner Sicht ist das so:

Ja, es gibt keinen echten Zufall in Programmen. Aber es gibt Funktionen, die verdammt nah dran sind.

Ob es in Spielen zu häufigen Wiederholungen des Ablaufs kommt, liegt dann aber mehr am Design des Spiels und den Fähigkeiten des Programmierers. Wenn er nicht aufpasst, kann das "sichtbar" vorkommen.
Dabei muss man aber bedenken, dass viele Spiele heute nach festen Skripten ablaufen, d.h. die Handlung soll sich gar nicht richtig zufällig entwickeln. Die Story im Spiel muss ja ablaufen können und das geht nur, wenn man "feste Pfade" in die Handlung programmiert (also ein Skript die Handlung vorgibt).

Bis dann
Andreas

PS: http://de.wikipedia.org/wiki/Zufallszahl
Was ich als Zufallsfunktion beschreibe ist eine Pseudozufallszahl:
http://de.wikipedia.org/wiki/Pseudozufallszahl

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Ten_Eniunlsl andy1111 „Zufallsprinzip Ja oder Nein ?“
Optionen

Hi
Nein es ist nicht mglich anhand dessen was der PC von sich aus hat

Truecrypt löst das dadurch das der nutzer die maus zufällig bewegen soll

Richtig interessant ist sowas grad bei glückspielen.
Die meisten Zufallszahlen werden aus der Uhrzeit gebildet genauer aus den sekunden seit 1970 oder so.
Dem entsprechend könnte man wenn man genau den selben code einsetzt wie z.B. eine Poker webseite und die systemzeit genau synchronisiert jede karte die die spieler bekommen im voraus berechnen bzw. ein programm schreiben das anhand der berechneten karten automatisch mit spielt und jedes mal gewinnt.
Um nicht aufzufallen macht man 'zufällig' fehler und gewinnt 6 von 10 spielen nach wenigen monaten ist man millionär denk ich wen die einsätze stimmen.

Ich hab mir sowas schon mal überlegt zuschreiben problematisch ist halt du musst dich mit dem anderen system synchronisieren und den selben spiel code verwenden

Sers

Ten

bei Antwort benachrichtigen
Xdata Ten_Eniunlsl „Hi Nein es ist nicht mglich anhand dessen was der PC von sich aus hat Truecrypt...“
Optionen

Das bringt mich auf eine interressante Frage.

Es gab früher mal irgendwo mini Nachbildungen des 6 aus 49 Lotto Ziehungsgerätes.
Mit durchsichtigen kunststoffkugeln wie beim Original mit den entprechenden Zahlen beschriftet.

Sind die Chancen für einen Gewinn im echten Lotto gleich, wenn man die Zahlen vorher mit diesem Gerät zieht?

Das würde bedeuten man müßte 2 mal gewinnen.
-- Einmal virtuell, ohne Geld, mit dem eigenen Ziehungsgerät.
-- Ein Zweites mal richtig mit dem entscheidenden und gültigen Gerät im Lottostudio.


Dennoch glaube ich, die Chance ist gleich.
Egal ob man die 6 Zahlen mit dem häuslichen Ziehungsgerät oder, nur so, anderswie erstellt.

Jedesmal 1:13983816.

bei Antwort benachrichtigen
Ten_Eniunlsl Xdata „Das bringt mich auf eine interressante Frage. Es gab früher mal irgendwo mini...“
Optionen

HI
die Idee ist gar nicht dchlecht aber dann müssten die kugel ganz genauso liegen am anfang und evtl. haben die einzelnen Kugeln unterschiedliche zeiten dann würde es gehen denk ich.
Aber die Kugeln genau gleich in dem gerät drinn zuhaben ist denk ich kaum machbar.
Des Online Poker ist da denk ich einfacher zuknacken auch ohne den Quelltext des spiels zu haben.

Wenn ich mal bissl Zeit übrig hab werd ich mich mal in sonem gratis Poker damit versuchen.

Beim BlackJack fällt mir grad ein dürfte es wesentlich leichter sein so was zu programmieren man müsste allerdings wissen mit wievielen karten decks gespielt wird.
Wenn die sich überhaupt daran halten und nicht einfach zufällig die nächste karte generieren.

Sers

Ten

bei Antwort benachrichtigen
Borlander Ten_Eniunlsl „HI die Idee ist gar nicht dchlecht aber dann müssten die kugel ganz genauso...“
Optionen

Das kann nicht funktionieren, da es sich bei beiden Ziehungen dann immer noch um stochastisch unabhängige Zufallsexperimente handeln sollte.

Ich halte es übrigens für eher unwahrscheinlich, dass Du von außen die durchs Systems generierten (Pseudo)Zufallszahlen vorhersagen kannst. Bei der Erzeugung von (Pseudo)Zufallszahlen werden schon länger nicht mehr ausschließlich die Systemzeit als Entropiequelle verwendet...


Gruß
Borlander

bei Antwort benachrichtigen
Borlander andy1111 „Zufallsprinzip Ja oder Nein ?“
Optionen
Denn jedes Prog. benötigt die Eingabe einer bestimmten Reihenfolge an Kombinationen die folgen sollen !
Häh?
bei Antwort benachrichtigen
Xdata Borlander „ Häh?“
Optionen

Da ist anscheinend die Folge der Elemente die zufällig sein sollen gemeint.
Man könnte die Elemente aus Pi nehmen, zB. deren dezilmale(r) Darstellung.

Wär aber ein hart ermittelter Zufall, denn die Folge bekommt man ja nicht einfach so.
Ein virtuelles Lotto Ziehungsgerät geht ja nicht.
(um Zufall zu generieren)
Da braucht man wieder einen Generator, einen Algorithmus der den Zufall "erzeugt"!

bei Antwort benachrichtigen
Andreas42 Borlander „ Häh?“
Optionen

Hi!

Er programmiert vermutlich nicht (oder nur sehr wenig). Er geht davon aus dass eine Zahlenfolge, die als Basis für die "zufälligen" Ereignisse dient, fest im Programm (als Daten) gespeichert sein muss, d.h. bei der Programmierung muss diese endliche Zahlenfolge einmal eingegeben werden.

Wenn die Zahlenfolge dann komplett durchlaufen wurde, müsste man wieder in einer Schleife von Vorne anfangen und "der Zufall" würde sich damit wiederholen. Diese Zahlenfolge würde natürlich Speicherplatz rbauchen udn kann daher nur begrenzt gross sein.

Wer schon etwas mehr programmiert hat, weiss natürlich, dass man da dann eine Funktion nutzt, die Zufallswerte zurück liefert.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Xdata Andreas42 „Hi! Er programmiert vermutlich nicht oder nur sehr wenig . Er geht davon aus...“
Optionen

Hmm, hat C auch eine solche Funktion wie das alte BASIC?

Oder muß der Programmierer selbst eine solche programmieren, alternativ eine C Bibliothek..

Nachtrag.

Sehe gerade, mit google und
c pseudozufall findet man einig PDFs dazu

Hier sogar was mit Pysik:

http://www.ibbergmann.org/1851938.htm

bei Antwort benachrichtigen
Andreas42 Xdata „Hmm, hat C auch eine solche Funktion wie das alte BASIC? Oder muß der...“
Optionen

Hi!

Klassisches C habe ich nie gelernt. Mal sehen, ob ich eine Referenz finde. (Aus der Referenz zu MS Visual C++ bin ich jetzt nicht richtig schlau geworden, sind auch weit über 1000 Seiten in drei Bänden...)

Ich meine, dass der Sprachumfang von C keine fertigen Funktionen kennt (im Unterschied zu Basic oder Pascal). Wenn müsste das in den mitgelieferten Bibliotheken stecken.

Da scheint es erklärt zu sein: die Funktion rand(..) steckt in der Bibliothek stdlib.h (Standard Library). Ich vermute mal, dass die (neben stdio.h für Input/Output) seit der Geburt von C zum Lieferumfang gehört.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Xdata Andreas42 „Hi! Klassisches C habe ich nie gelernt. Mal sehen, ob ich eine Referenz finde....“
Optionen

Danke für die Info.

bei Antwort benachrichtigen
jueki andy1111 „Zufallsprinzip Ja oder Nein ?“
Optionen

Das "Zufallsprinzip" hat mich hier, in diesem Thread interessiert, deshalb mein Senf dazu:
Ich habe vor vielen Jahren mal einmal etwas gebaut, vom dem ich eigentlich der Meinung war, das es den reinen Zufall als Grundlage hatte.
Es wurde ein ständig wechselnder Code benötigt, der aus einem Fundus von 989 Codes rein zufällig ausgewählt werden sollte.
Dazu verwendete ich einen Ringzähler 0...1023, der mit 100kHz umlief.
Wurde ein Code benötigt, drückte derjenige auf einen Knopf - der Zähler blieb stehen und schaltete den zu dieser Zählerstellung gehörigen Code frei.
Die Abstände, in denen ein solcher Code benötigt wurden, lagen zwischen einigen Minuten bis Tagen.
Gehe ich nun fehl in der Annahme, das die Wahl der Codes nun keinerlei Gesetzmäßigkeit unterlag?
Der Fundus als Solcher ist begrenzt, ja - aber welcher Code da ausgewählt wurde aus diesem begrenzten Fundus, sollte doch rein zufällig sein, oder?
Ich denke mal, so etwas sollte sich doch auch programmieren lassen.

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
Ten_Eniunlsl jueki „Das Zufallsprinzip hat mich hier, in diesem Thread interessiert, deshalb mein...“
Optionen

Hi
Ich glaube nicht das das ein echter Zufall ist.
Könnte man nicht wenn man weiß wie lang genau der abstand zwischen dem letzten und dem nächsten knopfdruck ist die Zahlen verschiebung voraus berechnen.
Weil er zählt ja imprinzip bloß von 0 -1023 und fängt dann wieder von vorne an.

Oder sehz ich des falsch ich hab bloß rudimentäre elektronik kenntnisse.

Sers

Ten

bei Antwort benachrichtigen
jueki Ten_Eniunlsl „Hi Ich glaube nicht das das ein echter Zufall ist. Könnte man nicht wenn man...“
Optionen
wenn man weiß wie lang genau der abstand zwischen dem letzten und dem nächsten knopfdruck ist
- kann man eben nicht. Rein zufällig kamen unterschiedliche Menschen aus unterschiedlichen Gründen und aus unterschiedlichen Richtungen vorbei.
Und nur manche drückten auf den Knopf.
Weil er zählt ja imprinzip bloß von 0 -1023 und fängt dann wieder von vorne an
Das ist richtig.
Aber auch bei Deinem Spiel gibt es ja endlich viele Möglichkeiten. Also eine klar definierte Menge.
Nur sollte die Auswahl einer dieser (endlichen) Möglichkeiten aus dem vorhandenen Pool (Menge) rein zufällig sein.

Jürgen

PS: Wenn in meinem Beispiel die Zählfreqenz im MHz- Bereich liegt und der Knopfdrücker ein Mensch ist, sollte das Zufallsprinzip schon gegeben sein- denn kein Mensch kann µS- genau drücken.
Und der Zähler kann mit geringem Aufwand beliebig erweitet werden.
- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
Ten_Eniunlsl jueki „ - kann man eben nicht. Rein zufällig kamen unterschiedliche Menschen aus...“
Optionen

Ok klingt schon mal ganz brauchbar.
Aber wen du die zeit sekunden genau weißt dann kannst du die möglichkeiten schonmal deutlich einschränken.

Bei 1024 möglichkeiten ist das noch relativ uninteressant wenn man aber sowas für eas verschlüsselung nutzen würde und mit wesentlich größeren werten arbeitet wirds wieder interessant da man dann nicht mehr billiarden möglichkeiten durch iterieren müsst sonder bloß noch einige zig millionen.

Also steigt die Zufälligkeit mit der frequenz was bedeut bei wirklich sicheren Zahlen vleicht glei im Ghz oder Thz bereich arbeiten

Die Idee ist aber nicht schlecht.

bei Antwort benachrichtigen
Nickeline jueki „ - kann man eben nicht. Rein zufällig kamen unterschiedliche Menschen aus...“
Optionen

Einen echten Zufall gibt es meines Erachtens auch in der analogen Welt nicht. Es sind ständig Wechselwirkungen zwischen den Dingen, welche ein Zufallsprinzip relativieren. Und wenn etwas schon nicht analog exstiert, wie sollte man es dann digital abbilden können?

Natürlich lässt sich ein 'digitaler Zufall' generieren, der dem analogen in Punkto Genauigkeit nicht nachsteht. Ich kann verschiedene Methoden der Zufallsfindung kaskadieren und schon werden die Möglichkeiten enorm.

Methode 1 z.B. ist generiert ein Ergebnis auf Basis der Zeit und von diesem Ergebnis nehme ich eine gewisse Anzahl der hinteren Bits. Das Ergebnis mag periodisch sein, aber die Periode ist schon recht lang. Nehme ich nun noch eine zweite Methode hinzu und zwar auf der Basis von Helligkeitswerten. Auch dieses Ergebnis wird periodisch sein, aber die länge der Periode wird eine andere sein als bei Methode 1. Übrigens kann ich die Reihenfolge der Bits, welche ich dem Ergebnis nehme, von dem Ergebnis einer dritten Methode anhäöngig machen und so weiter...

Wenn ich in der analogen Welt einen Würfel benutze, so unterscheidet sich jeder Würfel von dem anderen. Es sei denn, es ist ein stark idealisierter Würfel, den es in Natura leider nicht gibt. Auch Roulette- und Lottokugeln sind nicht vollkommen rund.

Auch wir entscheiden keineswegs willkürlich, jede unserer Entscheidungen ist zumindes vorgeprägt. Sei es, daß ich (ohne daß es mir bewusst ist) lieber nach links statt nach rechts abbiege, sei es, daß ich mich an irgendetwas erinnere oder schlicht und einfach nur, daß ich so genau so sozialisiert wurde. Irgendwas beeinflusst immer.

Entscheidend ist der Zweck einer Simulation. Geht es um Lotto, um Würfel oder um Kartenspiele, so sollte es kein Problem sein, die Periode der Wiederholung so legen zu können, daß sie sich (selbst bei Dauergebrauch) erst nach frühestens 100 Jahren wiederholt. Aber brauchen werden wir solch eine Genauigkeit wohl kaum.

Anders ist es bei Entscheidungen im Rahmen der 'Künstlichen Intelligenz'. Dort gibt es keinen festen Ergebniswert, aber wenn man genau hinschaut, dann wird man feststellen, daß die Anzahl der situationsbezogenen sinnvollen Entscheidungen recht mässig ist. Es ist genau wie im wirklichen Leben, dort ist es nicht anders.

Eure NiNe

Satiren, die der Zensor versteht, werden zu Recht verboten (Karl Kraus)
bei Antwort benachrichtigen
jueki Nickeline „Einen echten Zufall gibt es meines Erachtens auch in der analogen Welt nicht. Es...“
Optionen

Nun, das geht dann schon etwas in den Bereich der Philosophie - oder, physikalisch betrachtet, der Heisenbergschen Unschärferelation hinein. Welle oder Materie. Ich erinnere mich da an einen Aufsatz, (den ich sowieso nicht in seinen Einzelheiten begriff) bei dem behauptet wurde, das zum Zeitpunkt Null des Urknalls alle Abläufe schon bis ins Detail festgelegt wurden...
Ich bleibe da lieber im Bereich des Begreiflich-Normalen. Des mit normalen Mitteln Berechenbaren.
Und zumindest für meine von mir angewendete Methode scheint es wohl ziemlich schwierig zu sein, ein mathematisches Lösungsschema zu erstellen.
Ja, und ehrlich: Das hatte ich auch nie vor. Mir genügte, das die Wahrscheinlichkeit der Vorausberechnung eines gezielten, berechneten Treffers gegen Null ging.

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
ChrE Nickeline „Einen echten Zufall gibt es meines Erachtens auch in der analogen Welt nicht. Es...“
Optionen

Hallo,

Echten Zufall gibt es hier:

http://www.random.org/faq/

Gruss

ChrE

bei Antwort benachrichtigen