Hallo Besucher, der Thread wurde 13k mal aufgerufen und enthält 102 Antworten

letzter Beitrag von Hanno Behrens am

RND-Zahlen von 0-10 in ASM

  • Zitat

    Original von Hanno Behrens
    Tatsächlich ist selbst beim Urvater der Computerspiele "Pong" eine Zufallsvariable mit von der Partie. Wenn man es schafft die beiden Paddel so zu positionieren, dass der Ball zwischen ihnen eigentlich endlos hin und herfliegen müsste, stellt man fest, dass er plötzlich dennoch in eine unvorgesehene Richtung fliegt.


    Wo wir schon mal Off-Topic sind:


    Nein, das Atari Pong von 1972 hat keinen Zufallsmechanismus. Die Paddle Logik ist so gebaut, dass ein Paddle in gleichmäßige Pixelintervalle eingeteilt ist, und je nachdem, auf welchen Bereich der Ball trifft, wird der Bewegungsschaltkreis mit unterschiedlichen Konstanten geladen, die auf die Ballposition addiert/subtrahiert werden. Wobei das eigentlich auch anders gelöst wurde (der Ball wird positioniert, indem der Zähler für die Ballgrafik in einer speziellen Rasterzeile weniger/mehr Zyklen zählt als der Sync Generator).

  • Ah! Interessant. Ich hatte ein Pong-Spiel von Phillips, ich glaube das war 1982, so ein orangener Kasten. Und die haben einen Zufallswert mit drin gehabt. Aber das war bereits ein kleiner Computer und keine feste Verschaltung mehr. Es gab auch mehr als nur ein Spiel. Und bei den MAME-Emulationen von alten Spielen ist auch ein Pong dabei, das sich zufällig verhält. Das Linux-Pong hat ebenfalls einen Randomizer enthalten, denke ich. Das habe ich allerdings nur mal kurz angespielt und nicht wie das Phillipsgerät mit meinem Bruder in- und auswendig gekannt.


    Ich denke aber, wir sind nicht wirklich Off-Topic damit. Es bleibt ja bei der Frage um RND-Generatoren. Und ich denke, das gehört dann auch in so einen Thread.

  • Warum addiert man Zufallszahlen dazu?


    Diese statistische Textgenerierung hab ich irgendwann mal in einem alten Sonderheft Spektrum der WIssenschaft - Computerspielereien gesehen. War echt faszinierend, wie "sinnvoll" die Texte ab einer gewissen Ordnung werden.

  • Zitat

    Original von Hanno Behrens
    Und bei den MAME-Emulationen von alten Spielen ist auch ein Pong dabei, das sich zufällig verhält.


    Das Atari Pong ist nicht mehr Bestandteil von MAME, weil die Circuit Emulation viel zu ungenau gewesen ist. Das einzige, was im Atari Pong noch zufällig ist, sind die Zeiten,wann der nächste Ball eingeworfen wird,weil das nämlich durch analoge Timer realisiert wurde.


    Zitat

    Original von hoogo
    Warum addiert man Zufallszahlen dazu?


    Implementierung von Modellrauschen, welches in der Natur nun mal vorkommt. Rauschen ist der Schlüssel zum Realismus, also perfekt für den C64 geeignet...

  • Zitat

    Original von hoogo
    Diese statistische Textgenerierung hab ich irgendwann mal in einem alten Sonderheft Spektrum der WIssenschaft - Computerspielereien gesehen. War echt faszinierend, wie "sinnvoll" die Texte ab einer gewissen Ordnung werden.


    Haha! Ja, genau da hatte ich die Idee her. Und habs natürlich sofort nachprogrammiert. Die Idee ist lustig, aber man kann auf die selbe Methode auch Codes brechen. In den 40ern haben die Leute in Bletchley Park die Ergebnisse ihrer Bomben (Codebrecher) mit der Distanz der "e" überprüft. Da das E der häufigste Buchstabe ist. Unterschreitet es die zufällige Distanz ist es möglich, dass der korrekt dechiffrierte Text vorliegt und die Maschinen haben zur Überprüfung gestoppt. Witzige Lösung für die Zeit vor dem if()


    Das selbe kann man jedoch viel besser bewerkstelligen, indem man die obige Buchstabenhäufigkeit dazu einsetzt. Noch besser ist es, wenn man negativ-Auschlüsse dazu verwendet.


    Also so amüsant und verspielt auch das APE Programm scheint, da steckt eine Menge Möglichkeit dahinter. Das war der Grund, warum ich das sofort mit Begeisterung umgesetzt habe damals. Aber man kann mit diesen Zufallsspielen noch weiter gehen. Die selbe Idee auf Wörter angesetzt hat zwar erstmal ein deutlich schlechteres Ergebnis - normalerweise erscheinen Auszüge aus dem Originaltext - aber wenn man den Originaltext vorher in ein semantisches Netzwerk zerlegt und das dann darauf anwendet bekommt man ziemlich interessante Ergebnisse. Leider habe ich den Source dazu nicht mehr, steht aber seit Jahren auf meiner ToDo, das wieder neu zu schreiben. :(


    Es gab auch ein Programm auf dem 64er, das Zufallsgedichte erzeugt hat. Das hab ich aber mal irgendwann gefunden und ist wieder verschwunden. Ziemlich nette Ergebnisse, schade dass ich das Programm verloren habe mit meiner Diskettensammlung. Vielleicht hat das ja noch einer irgendwo? Bitte posten.

  • Zitat

    Wenn du das weisst, warum fragst du das dann?


    ich wette selbst du hast irgendwann mal was von der "rhetorischen frage" gehört....


    Zitat

    Implementierung von Modellrauschen, welches in der Natur nun mal vorkommt. Rauschen ist der Schlüssel zum Realismus, also perfekt für den C64 geeignet...


    aber nicht bei einem flipper :) da (und auch bei billard) kann man eigentlich sehr gut das idealisierte modell nehmen, weil der faktor zufall im verhältnis so gering ist das er vernachlässigbar ist. grade bei spielen werden aber ganz andere tricks benötigt, weil man die physik da nur sehr bedingt und sehr ungenau simulieren kann (es muss ja in echtzeit passieren). da werden zb oft konstante (! nicht zufällige!) sehr kleine kräfte irgendwo aufaddiert um gewisse fehler in der simulation zu kaschieren, oder andersrum thresholds eingeführt um gegen null laufende kleine kräfte auch wirklich auf null zu ziehen. (und bei schlechten physikengines sieht man dann eben genau dieses verhalten, das objekte von alleine und ohne grund rumzappeln).

  • Sicher weiss ich, was eine rhetorische Frage ist. Und ich kann ganz gut zwischen dieser und einem Versuch unterscheiden, meine Autorität zu untergraben mit lustigen, kleinen rhetorischen Tricks und das ist eigentlich ziemlich berechenbar, wenn ich es auch nicht nachvollziehen kann. Argumente wären mir lieber. Aber ich hab dich lieb dafür, weil ich ja weiss, wie du so bist. :winke: Also spiel ruhig weiter. Das regt mich nicht auf.


    Zurück zum Thema:
    Wenn du in einem Spiel die Wahl hast, einen leicht zufälligen Wert oder einen konstanten Wert zu addieren und es nicht gerade um einen Stillhalte-Treshhold geht, dann wäre es ein schlechter Deal. Wenn die Rechenzeit fehlt, kann ich es verstehen, wenn nicht, ist es nur Verlust. Verlust an Komplexität, an Überraschungsmoment und an Realismus. Realismus ist Tiefe. Braunsche Teilchenbewegungen. Das ist es, worum es in so einer Simulation geht. Und das kann man nicht mit ein paar billigen Add oder Sub hier oder da erreichen. Das ist zu wenig.


    Das Problem mit dem Zufall ist, dass es ein zeitaufwändiger Prozess ist, wenn er gut sein soll. Der von mir vorgeschlagene 2D-Test ist im übrigen genau die Art von Probe, die man in der Regel zur Überprüfung der Qualität des Algorithmus anwendet (unter anderen). Nur dass man es nicht auf zwei Dimensionen beschränkt, sondern die Dimensionen immer weiter und weiter nach oben schraubt. Der Mersenne Twister, beispielsweise kann über 600 Dimensionen (nachweislich) komplett weiss verrauschen. Das ist natürlich mehr, als man normalerweise braucht. Und der damit verbundene Rechenzeitverlust ist tatsächlich so groß, dass dieses Verfahren in der Regel nur bei wissenschaftlichen Versuchen verwendet wird, nicht jedoch in Spielen.


    Aber zurück zum Thema. Nochmal das Beispiel Billiard. In der Realität gibt es eine Menge Variablen, die die Kugel nach Anstoß zusätzlichen Kräften aussetzen, die der Spieler nicht erwünscht hat. Dennoch kann ein guter Billardspieler mit diesen Kräften so rechnen, dass er dennoch trifft. Das ist ein guter Ansatz für ein interessantes Billardspiel. Denn den Zufall mit einzubeziehen in seine Taktik oder Strategie und ihn als Freund zu empfangen denn als unliebsamen Störenfried ist das, was Spiele wie Dame von Spielen wie Backgammon unterscheidet. Oder jedem nichtabstrakten Spiel mit einer höherrangigen physischen Komponente als nur zwei Würfeln wie bei Backgammon.


    Und wenn die Unabhängigkeit der Zufallswerte bei einem Generator nicht ausreichend ist, dann hat das teilweise Katastrophale Auswirkungen. Vielleicht nicht in einem billigen Ballerspiel. Aber wenn in einer Routine häufiger Doppelsechsen folgen, aber viel seltener Doppeleinsen oder eben bestimmte Wurfkombinationen überhaupt nicht auftreten, dann ist das katastrophal. Wie das Beispiel Blackjack zeigt, kommt man mit solchen Abhängigkeiten sehr schnell an Qualitätsansprüche, die sowas wie den Mersenne Twister rechtfertigen. Ich denke aber, man kann den Twister den Anforderungen entsprechend reduzieren. Also mit einer kleineren Primzahl arbeiten.

  • bitte programmiere doch erstmal eine für ein spiel geeignete physikengine. mindestens zwei in diesem thread postende haben dies schon erfolgreich getan, du aber offensichtlich nicht.


    eventuell lache ich dann beim nächsten mal nicht mehr so sehr wenn du was vonwegen autorität faselst.

  • Ich wusste doch, dass du auf einen Kompetenzstreit aus bist, sauhund. Ansonsten macht das keinen Sinn. Da ich aber seit '84 aktiv Programmiere, studiert habe und ein paar Zeilen hinter mir habe, solltest du das sein lassen, weil das zu nichts führt. Vermutlich hast du ein Problem mit einer Autoritätsperson oder mit deinem Vater oder sonstige Probleme und versuchst das zu kompensieren. Oder auch nicht, es ist mir egal, ich kenne dich nicht.


    Wenn du also diskutieren möchtest, bringe einfach ein paar Argumente vor und begründe sie. Wenn sie gut sind, werde ich sie akzeptieren, sind sie schlecht, werde ich sie widerlegen. Das hier ist das Netz, ich könnte behaupten die Königin von Thule zu sein oder sonstwas. Die Frage nach Autorität ist komplett unsinnig im Netz, sauhund. Das einzige was zählt sind Argumente und Programmzeilen. Meine Programme kannst du herunterladen von meiner Page, zumindest das, was ich freigebe. Meine Argumente kannst du hier lesen. Und ich beschränke mich dabei nicht auf Einzeiler nach dem Schema: "ist ja gar nicht wahr". Wenn mich das angreifbar macht, dann ist mir das deshalb egal, weil ich das nicht als einen Beliebtheitswettbewerb wahrnehme, sondern als einen interessanten Ort, um noch das eine oder andere zu lernen oder sich so mit Interessierten zu unterhalten, dass ihm vielleicht auch etwas bringt.


    Ich werde mich darauf beschränken, finde es aber amüsant, dass du es anscheinend anders siehst. Ich bin etwas müde auf jede mener Postings eins von dir zu lesen nach dem Motto "du bist ein Idiot und alles was du von dir gibst ist Scheisse". Aber wie gesagt ich schreibe dir nicht vor, was du tun oder lassen sollst. Ich hab dich trotzdem lieb.


    Trotzdem könntest du mir einen Gefallen tun und dir entweder jemand anderen als Objekt deiner Projektionen zu suchen oder zumindest auf meine Postings nicht mit schmähenden Einzeilern zu antworten. Ich gebe mir etwas Mühe und sowas nervt etwas und vergällt mir ein wenig die Lust. Ich hoffe du verstehst das. Hast du etwas vorzubringen, bringe Argumente und keine Behauptungen. Dann kann ich darauf eingehen. Werde konkret und sag nicht Sachen wie "ich kenne zwei Leute im Forum, die sowas schon mal gemacht haben". Sag sowas wie: "Ich habe dies oder das gemacht" oder "ich habe nachgeforscht und gefunden, dass" und dergleichen. Und wenn du nicht willst, dass ich deine Postings beleidigend verstehe, dann verzichte auf beleidigende, herabwürdigende Umschreibungen meiner Beiträge mit "Gefasel" oder niedliche Animationen mit Köpfen, die gegen Wände knallen.
    Das ist nichts anderes als versuchtes Mobbing, nur dass keiner mitmacht außer dir. Und ich kann das eine Weile stillschweigend hinnehmen, aber irgendwann muss ich dann doch mal äußern, dass mir das nicht schmeckt. Ein normaler Mensch würde auf so eine Bitte von mir einfach aufhören auf meine Postings zu antworten. So wie ich es machen werde bei dir.

  • Wenn ich mal dazwischengrätschen darf :)


    Vorweg, ich hab mich nie so intensiv mit Zufallszahlen oder Physikengines verschäftigt.
    Bei Hanno sehe ich nur das Problem, dass er hier einen sauschlechten (nicht sauhund ;) ) Start mit der Behauptung hatte, dass beim C64 einzelne Bits ständig umkippen.
    Hat dann auch tolle Begründungen, Theorien und ein Beispielprogramm geliefert.


    Nur hatte das alles mit der Realität, oder zumindestens mit den Erfahrungen von 99% der User dieses Forums und der Leute die ich kenne die einen C64 benutzen nichts zu tun gehabt. Da sind nie Bits gekippt (und ich beschäftige mich auch schon über 20 Jahre SEHR intensiv mit dem C64).


    Das hat nicht wirklich zu der Glaubwürdigkeit bzw. Realitätsnähe deiner Aussagen beigetragen.

  • Das ist wahr, Roland. Aber ich hab auch nie behauptet, dass jeder C64 da ein Problem gehabt hat. Nur meiner und die einiger Freunde hatten das Problem. Und dass das ein schlechter Start ist, wenn keiner meine Erfahrungen teilt, war mir auch klar. Nur -wie auch immer- wenn ich es mit eigenen Augen gesehen habe, kann ich es nicht leugnen. Wenn es mir bei der Sache um Beliebtheit gegangen wäre, hätt' ich's sein lassen, gesagt, ich hätt mich geirrt und gut ist. Und da ich das nicht belegen kann mit harten Fakten (in einem Forum?) stehe ich doof da. Tatsache ist, dass ich auf meinem Emulator selbstverständlich noch die ein kippendes Bit hatte und ich nicht mehr anders arbeite als auf einem Emulator. Ein alter C64 ist zwar auf dem Dachboden, aber in der Regel nicht angeschlossen. Und der 64er auf dem Boden ist dummerweise nichtmal meine alte Kiste sondern ein neueres Modell. Also bleibt mir eben nichts anderes als das, was ich mit eigenen Augen gesehen habe. Vielleicht teste ich das nochmal auf dem alten C64 von meinem Kumpel. Wenn er dazu mal Zeit hat. Das war auch ein Modell '82/'83


    Was würdest du aber machen, wenn du diese Erfahrung hast, sie mitteilst und auf Unverständnis stößt? Alles, was ich vorgebracht habe, stimmt. Leider. Und scheint ein echter Einzelfall zu sein. Leider - für mich - nicht leider für die anderen C64-Besitzer. Auch mein Kumpel (der auch noch hier im Forum ist) konnte sich nicht mehr dran erinnern und mir helfen. Er könnte höchstens meine Glaubwürdigkeit bestätigen. Aber ich habe ihn gebeten, sich da rauszuhalten. Weil es häßlich war.


    Ich hatte ein paar Vermutungen dazu angestellt, warum es so häßlich geworden ist, aber das hat auch nicht geholfen. Übrigens ist die etwa '84/'85 gelaufene Schnupperstudiums-Vorlesung über das Thema "Unsicherheit in Rechnersystemen" (oder so) tatsächlich gelaufen und hat damals für einiges an heftigen Auseinandersetzungen über Pro und Contra gesorgt. Ich selbst war angekotzt über den Vortrag. Aber wir waren natürlich noch Schüler in dieser Zeit und wollten wissen, ob man uns Mist erzählt oder nicht. Da fing das ganze an.


    Und da ich nichts davon habe, sowas aus dem Nichts heraus zu behaupten, wundert es mich auch, dass ich so viel Unglauben geerntet habe. Wenn ich jedoch etwas sehe und nicht darüber berichte, nur weil es in die allgemeine Wahrnehmung nicht passt, dann wäre ich wirklich ein mieser Wissenschaftler. Und wissenschaftlich bin ich wohl, ob ich will oder nicht. Ich rede nicht über Stellung, Titel oder irgend so etwas, sondern über den Zustand wissenschaftlich, der dabei herauskommt, wenn man prägende Jahre lang in dieser Bildungsmaschine festgehangen hat. Das wird jeder bestätigen, schätze ich. Wobei ich es persönlich unerheblich finde, ob jemand an der Uni war oder nicht, nur für mich kann ich sagen, dass es mich geprägt hat. Prioritätenverschiebung - jeder normale Mensch würde sagen: ja, sorry, muss ich mich wohl geirrt haben. Nur - so war es nicht. Ich kann das nicht abschwören, selbst wenn es ein für mich völlig unwichtiger Kram ist, ob nun Bits kippen oder nicht. Es zu sagen und auf Widerstand zu stoßen und die eigene Beobachtung zu verleugnen ist für mich unmöglich. Geht einfach nicht. Selbst wenn ich am Ende wie ein Depp dastehe.


    Mehr kann ich dazu nicht sagen. Ich habe nichts dazu gedichtet. Seufz. Aber es war ein mieser Start. Und sauhund bekrittelt so ziemlich jedes meiner Postings seitdem. Und es nervt langsam. Daher meine Bitte um Unterlassung.

  • Zitat

    Original von Hanno Behrens
    Ich werde mich darauf beschränken, finde es aber amüsant, dass du es anscheinend anders siehst. Ich bin etwas müde auf jede mener Postings eins von dir zu lesen nach dem Motto "du bist ein Idiot und alles was du von dir gibst ist Sche***e". Aber wie gesagt ich schreibe dir nicht vor, was du tun oder lassen sollst. Ich hab dich trotzdem lieb.


    Nimm es nicht zu persoenlich. Der "ballert" in jeden Thread rein, ob er nun Ahnung davon hat oder nicht. :)
    Dann wird halt geposted was das Zeug haelt. Was Programmierung angeht, kennt er sich wirklich aus. Diesen herablassenden Ton fand ich auch schon mehrfach sehr unnoetig.
    Immerhin hat er mit seiner Schlagzahl an Postings und Rechthabereien langsam dem Titel "Forums-Titte" verdient. ;))))


    Michael

  • Das Problem ist einfach die Tendenz, unbedingt mit Kanonen auf Spatzen schiessen zu wollen.


    Der Ursprungsposter wollte nämlich nur einen möglichst einfachen Zufallsalgorithmus für sein Bomben Spielchen, woraufhin Hanno dann einen ganzen Absatz über statistisch einwandfreie Zufallszahlen Generatoren postet, damit die Grätsche zur Kryptographie wieder schafft, und daraufhin Lösungen angibt, die nicht nur auf dem C64 unpraktikabel sind, sondern vollkommen an der Zielsetzung vorbei gehen. Der Ursprungsposter hat währenddessen bei soviel Hilfsbereitschaft schon schreiend Reisaus genommen.


    Jedoch kann man trotzdem sagen, dass Hanno den Ball aufgefangen hat, und dann doch angefangen hat, ein paar einfache Beispiele zu posten. Hanno ist schon ein bisschen verloren in diesem Forum, denn er weiss sehr viel, aber seine Sichtweisen und Lösungsansätze sind manchmal zu weit gedacht für einen kleinen süßen 8bit Rechner und seinen verwegenen Hackern die eigentlich möglichst schnelle und dreckige Lösungen präferieren... ;)


    Und ja, die steife und feste Klammerung an der Behauptung, dass Bitkippen völlig normal auf dem 64er sei war ein denkbar schlechter Einstieg... Jeder macht mal Fehler. :) Aber daraus jetzt einen Streit zu machen halte ich eigentlich für kindisch, denn jeder merkt eigentlich, dass Hanno im Grunde nur helfen möchte, und zwar nach, aus seiner Sicht, bestem Wissen und Gewissen. :)


    @Hanno:


    es hat nichts damit zu tun, seine eigene Beobachtungen zu verleugnen (so ganz im Stile von Gallilei), sondern manchmal sollte man realisieren, dass es in sehr vielen Fällen mehrere Erklärungen für ein Phänomen gibt, und seien es auch manchmal äußerst triviale Erklärungen wie: "dein C64 ist defekt", die natürlich für einen Wissenschaftler ziemlich unspannend sein können, der es eigentlich viel faszinierender findet, nach einer im System immanenten Schwäche zu forschen.


    Gerade die allerersten 64er haben teilweise gravierende Qualitätsprobleme gehabt. Ich würde sehr gerne einmal wissen was mit der Zeit passiert, wenn auf Deinem 64er eine Bitmap Grafik geladen und angezeigt wird.

  • Zitat

    Original von Oliver_A
    Das Problem ist einfach die Tendenz, unbedingt mit Kanonen auf Spatzen schiessen zu wollen.
    (...) ist schon ein bisschen verloren in diesem Forum, denn er weiss sehr viel, aber seine Sichtweisen und Lösungsansätze sind manchmal zu weit gedacht für einen kleinen süßen 8bit Rechner und seinen verwegenen Hackern die eigentlich möglichst schnelle und dreckige Lösungen präferieren... ;)


    Witzig. Genau so nehme ich es auch wahr und diese kleine Eigenart meiner Herangehensweise an Probleme war auch der Grund, warum ich schon nach den ersten zwei/drei Wochen Basic völlig genervt war und sofort mit Assembler angefangen habe. Meine Problemlösungen haben einfach nicht funktioniert in Basic.


    Dabei ist es gar nicht so, dass meine Programme ineffizient waren - ich habe die Probleme nur immer gleich "richtig" lösen wollen. Bestes Beispiel der Zufallszahlengenerator. Ein Mersenne Twister schießt zugegebenermaßen weit über das Ziel hinaus, aber es gibt eben auf dem 64er auch Spiele (Beispiel Blackjack), wo so eine hohe Unabhängigkeit nötig ist.


    Nachdem ich jetzt eine Weile nach Algorithmen gesucht habe und auch die Lösungen auf Google Code durchgeforstet habe, habe ich nichts in die Richtung gefunden. Die Frage lautet jetzt für mich: würde es überhaupt jemanden interessieren, einen "richtigen" Generatoralgorithmus zu kriegen oder nicht? Denn ich bin sicher, dass ich den Mersenne Twister kleinhacken kann für 6502. Also etwas vereinfachen, downgraden sozusagen. Indem man eine kleinere Mersenne-Zahl nimmt zum Beispiel statt mit den 6xx 32-Bitwörtern zu arbeiten vom Original.


    Die Umsetzung eines AES hab ich auch schon angedacht und wenn man den hätte, könnte man ihn im Counter-Modus betreiben und einen Fortuna Algorithmus versuchen. Vielleicht praktikabler. Ich persönlich halte nicht so viel von den Rauschgeneratoren im C64. Warum? Macht einfach mal den Test 100000 Werte davon zu kriegen zwischen 1-10 und zählt die einzelnen Events. Dann zählt die Doubletten und die Tripletten. Sprich Zweierpasch und Dreierpaschs. Wenn das statistisch korrekt ist, kann man das machen. Obwohl ich das jetzt nicht nochmal gemacht habe, kann ich mich erinnern, dass ich da '85 schon mal war und mit dem Ergebnis zum Kotzen unzufrieden war. Die "Rauschgeneratoren" vom 64er sind nett, um einen Seed zu füllen - also für ein einzelnes Ereignis. Aber nicht für kombinierte Ereignisse.


    Ich lasse mich aber gern vom Gegenteil überzeugen. Wäre mir sogar lieb, weil ich dann auf sowas wie Fortuna verzichten kann.

  • Zitat

    Original von enthusi
    Rauschgeneratoren vom C64? Du machst auch da alles in Vice?


    Ja, leider. Ich bin endlos verwöhnt inzwischen und mit dem Basic-Zeileneditor zu arbeiten bereitet mir körperliche und seelische Qualen. Die Rauschgeneratoren vom Emulator habe ich aber auch noch nicht getestet. Die sind aber wahrscheinlich noch schlechter als die vom 64er, nehme ich an.


    Ich weiss nur, dass die Chips, die Rauschen generieren können folgende sind:
    VIC/Zeilen- und Spaltencounter
    CIA/Timer/TOD
    SID/Paddles AD-Wandler/Pink Noise Generator?


    Die Basic-Routinen nehmen für RND(0) üblicherweise die CIA Timer und TOD-Counter. Die funktionieren auf dem Emulator, schätze ich mal, genauso. Mit den Zeilen/Spaltencountern bin ich unsicher und bei den SID-Quellen sehe ich schwarz.


    Deshalb würde ich deterministische Rauschquellen durch einen Algorithmus vorziehen. Bei Einzelereignissen reichen die Rauschquellen sogar aus. Also auch für einen Seed. Aber wenn sie aufeinander folgen sollen war meine Erfahrung in der Vergangenheit eher ernüchternd. Beim 2D-Test haben sie definitiv jämmerlich versagt. Ist aber auch ganz logisch. Bestimmte Ziffernfolgen tauchen beim CIA nicht auf, weil die Null den Interrupt auslöst, der IRQ sorgt da auch für eine unerwünschte Synchronisierung, die Synchronisierung ist auch ein Problem mit dem Zeilenaufbau - wenn man mal die Austastlücken bedenkt ist das auch verständlich.


    Jedenfalls waren wir damals auf Rauschquellen scharf, das muss '86 gewesen sein und wir haben die Chips nach ein paar Versuchen als unzureichend abgetan. Aber vielleicht gibt es einen besseren Ansatz? Ich traue jedenfalls keiner Rauschquelle, die es nicht durch ein paar Test hindurch geschafft hat.


    Wenn man von allen Quellen immer nur die unteren paar Bits nimmt, geht es gerade noch so. Aber jeder soll mal scherzhafterweise den 2D-Test machen. Bei einem bereits mäßig guten Randomisierer ist das gleichverteilt. Was nicht heißt, dass alle Flächen gleichmäßig geschlossen werden, aber es gibt keine Häufchen und keine Löcher. Schwer zu erklären, man sieht es einfach... Abwesenheit von Mustern.

  • So, das ganze ist ja nun schon wahrlich Off Topic genug und diese Abhandlungen über Zufallszahlengenerierung haben wir doch wirklich schon zur Genüge in so einigen Threads durchgekaut, mit jedesmal dem gleichen Erfolg: Das sich irgendwann irgendjemand auf den Schlips getreten fühlt und es irgendwie "ungut" wird.
    Ich glaube, Oliver A.'s Post sagt so ziemlich alles, was es hierzu noch zu sagen gibt.
    Ich will nicht dass das hier irgendwie (noch) persönlich(er) wird, ok?!
    Es geht um Zufallszahlen, nicht um Leben und Tod. Also bleibt friedlich und habt euch lieb.
    Sonst mach ich zu hier.

  • Zitat

    Original von Hanno Behrens
    Mit den Zeilen/Spaltencountern bin ich unsicher und bei den SID-Quellen sehe ich schwarz.


    Gerade der SID ist noch einer der besseren RNGs im C64, denn der Rauschgenerator generiert eine ungewöhlich lange Sequenz für einen Soundchip aus der Zeit (2^23 - 1). Ist im Prinzip auch nichts anderes als ein LFSR, dessen MSB sich auslesen lässt. Nimmt man dan noch andere Faktoren hinzu, die den Zeitpunkt der Initialisierung und des Auslesens beeinflussen (Tastendruck des Users) denke ich schon, dass man ein ausreichend grosses Maß an zufälligen Ereignissen generieren kann, aber nun gut.