[Monkey] "Echter" Zufall
Übersicht

BBPro2Betreff: "Echter" Zufall |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey,
wie kann ich in Monkey "echten" Zufall generieren ? In BB ist das ja sowas wie SeedRnd Millisecs () problem bei Monkey ist aber, dass Millisecs () nicht die Zeit seit dem 1.1.1970 sondern seit start der App angibt. Wenn ich also Seed = Millisecs () an den Anfang des Programms setze kommt es sehr sehr häufig zu Wiederholungen des "Zufalls", da Millisecs () für gewöhnlich im Bereich von 0 und 100 liegt oder so... Wie macht ihr das ? Danke im Voraus LG BBPro2 |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also Millisecs() bei BB gibt die Zeit seit Systemstart zurück, nicht seit 1.1.70. Hat mit dem Unix Time Stamp nichts zu tun.
Ich habe hier kein Monkey, daher kann ich es leider nicht testen, aber es würde mich wundern wenn Millisecs() unter Monkey anders funktionieren würde. Selbst wenn es - wie Du sagst- ab Appstart ist, kannst Du den Zufalssgenerator ja erst nach der ersten Usereingabe initialisieren, denn die wird immer ein zufälliges Zeitelement haben. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
öhm ja stimmt, seit systemstart...
dennoch ist das natürlich weitaus sinnvoller als seit app-start wie in monkey (und ja, das ist definitiv so - wenn man ne app startet und sich per DrawText Millisecs() ausgeben lässt gibts immer 0, 1, ,2, 3, ... zudem steht es auch so in den docs) das mit der usereingabe wäre ne idee. vlt multiplizier ich es noch mit der x-koordinate auf der der user als erstes rumtippt oder sowas in der art. is halt irgendwie nervig im entwicklungsstadium wo es noch keine usereingaben gibt aber ok ^^ |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nimm doch den Wert des Accelerometers, oder eines anderen Sensors, wenn das geht ![]() |
||
Starfare: Worklog, Website (download) |
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist nicht für jede Plattform geeignet.
Für HTML5 z.B. gar nicht ![]() |
||
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann verrechne ein paar sachen ![]() Nutzername + millisecs + millisecs bei erster nutzereingabe, falls vorhanden maus X / mausY oder letzten touch x/y, targetnamen, etc etc Nutzername verrechnen: Shifte die bytewerte zusammen oder schreib einen kleinen algorythmus, der zb 4 bytes zusammenshiftet (-> 1 int) und den rest draufrechnet. Fest steht: je mehr unterschiedliche quellen du nimmst, um einen pseudowert auszurechnen, desto besser. Was gibts denn feines bei Monkey, was man über jedes target einlesen kann? |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
habe irgendwo diese Funktion her: Code: [AUSKLAPPEN] Extern
Function RealMillisecs:Int() = "(function(){return (new Date()).getTime();})" Public Funktioniert auf jeden Fall mit HTML5, Rest weiß ich auch nicht. mfg, Tennisball |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit dem Modul "Diddy" wird auch ein systemweiter Millisecs() angeboten. Da da auch sonst noch ein paar nette Zusätze drin sind, fast schon eine MOD, die immer dabei sein sollte. | ||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Unter Android kannst du wahrscheinlich auch /dev/random und /dev/urandom auslesen, da es ja auf einem Linux-Kernel läuft. Das wäre der einzige "Echte Zufall", SeedRnd MilliSecs() ist genau so gefaket wie alles andere.
Noch genauer: /dev/random ist eine Mischung aus Userinput etc. um möglichst zufällige Zahlen zu generieren. Dies wird z.B. für die Berechnung von RSA Keypairs verwendet, wo es wichtig ist eine möglichst nicht-berechenbare Zahl zu haben. /proc/sys/kernel/random/entropy_avail gibt dir an wie voraussehbar die nächste Zahl ist (Siehe Informationsentropie) Je höher der Wert desto zufälliger die Zahl. /dev/urandom hingegen nimmt afaik Spannungsunterschiede der Hardware, was ebenfalls sehr guter Zufall ist. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group