[Tiptoi] Random Funktion/binary-games besser verstehen
andi
aaaaandi at gmail.com
Fr Apr 17 11:20:38 CEST 2015
Hi Ingo,
um Zahlen 0-9 und 0-99 zu erhalten koennte der Code so aussehen:
# x[i]=(a+b*x[i-1])mod c
# since we are using 16bit unsigned integers, max equation result should be
lower than 2^16
# b * (c-1) <= 2^16
# c=800 --> b<=82
# values for b that result in full random number series length: 21 41 61 81
#
# x[i]=(1+81*x[i-1]) mod 800; x[1]=1
random:
- $n*=81 $n+=1 $n%=800 J(zahl_n) # pseudo random number 0 to 799
zahl_n:
- $wunsch==100? J(zahl_100)
- $wunsch==10? J(zahl_10)
zahl_100: # 0-99
- $zahl:=$n $zahl/=8 J(xyz)
zahl_10: # 0-9
- $zahl:=$n $zahl/=80 J(xyz)
Diese Reihe habe ich wieder mit dem LinConG simuliert, um geignete Werte
fuer b zu erhalten.
Da in dieser Zahlenreihe (anders als im Olchi Spiel) auch die 0 mit
enthalten ist, braucht man bei der Zahl-Umrechnung keine 1 von der Random
Zahl $n abziehen.
Da Du aber Zahlen von 0-10 brauchst, muesstest Du z.B. eine zweite random
Funktion erstellen, die durch ein vielfaches von 11 teilbar ist.
Zu Deiner Frage zu der Reihe mit 69: Ich habe bei der Simulation von oben
angefangen und die Werte fuer b ermittelt, die eine vollstaendige Serie
ergeben. Bei 69 habe ich einfach aufgehoert, es gibt aber noch niedrigere
Werte.
LG,
Andi.
Am 16. April 2015 um 17:31 schrieb <St_Germain at web.de>:
>
> Hallo Zusammen,
>
> meine Spielidee: 'Zerstreute Rechenzwerg im Finsterwald'
> Der Rechenzwerg=meine Tochter(7J,2.Kl) der seine Edelsteine(Lösungen) im
> Finsterwald verstreut hat,
> muss die Edelsteine den Edelsteinminen=Aufgaben zuordnen, oder umgekehrt.
>
> Die Ergebnisse='Edelsteine' sind im 'Finsterwald' (Blatt mit
> Rechenaufgaben und Ergebnissen)
> vergraben. Leider weiß der Rechenzwerg (meine Tochter) nicht mehr wo diese
> liegen.
> Tippt Sie auf eine Aufgabe=Edelsteinmine, wird diese vorgelesen und muss
> sie den zugehörigen Edelstein=Lösung finden,
> oder vice versa.
>
> @Andi: Deine Random-Funktion, wie kann die so
> umgebaut werden, dass ich je 2 Zahlen zwischen 0 und 10 bzw. dann eine
> random_number <=100 bekomme,
> oder muss ich dann >=3 bauen (umd das kleine 1*1 und dessen Lösungen
> abbilden zu können)?
> Warum beginnt bei Dir der Range von b bei 69?
> So wie ich den LCG verstehe müsste ich für mich:
> hier in Perl:
>
> @Joachim: Gibt es YAML/Haskell her, dass doppelte Array-Informationen aus
> dem
> Array gelöscht werden können, so dass die Werte für den Index: 131,132
> nicht doppelt kommen?
> In Perl kann man das irgendwie mit map machen ...
>
> for (my $i=1; $i <= 300; $i++) { # initialize 300 times loop
> $x[1]=100; # define 1-element of array with 100
> $x[$i]=(rand(141)+rand(131)*$x[$i-1]) % 101; #array-x on element-i set
> random_number(0-141)
> # + random_number (0-131)
> * array-x_value modulo 101 for values 0-100
> print "$i\t$x[$i]\n"; # print all-lines from array
> }
>
> Hier ein paar Ergebnisse:
> 130 23
> 131 45
> 132 45
> 133 80
> 134 5
> ...
> 153 90
> 154 13
> 155 22
> 156 83
> 157 81
> 158 39
> ...
> 286 0
> 287 29
> 288 79
> 289 35
> 290 70
> 291 2
> 292 2
> 293 46
> 294 21
> 295 87
> 296 59
> 297 100
> 298 53
> 299 91
> 300 55
>
> @All:
> Ich will die Games besser verstehen, so dass wir eigenen 8/16Bit-Code
> in die GME-Dateien bekommen. Dazu habe ich nach der Random-Gerierung
> für den ARM gesucht und folgende Seiten gefunden.
>
> Hier der Random:
>
> http://hackipedia.org/Platform/3D0/html,%203DO%20SDK%20Documentation/Type%20A/tktfldr/acbfldr/2acbh.html
> und hier was zu einem ASM-Code, der audio-Dateien abspielen kann -
> hoffentlich kann einer von Euch mehr Assembler als ich
> (denn ich verstehe nicht ganz so viel davon [hatte nur 1/2-Abendschuljahr
> Assembler-Programmierung]).
> Und hier:
>
> http://stackoverflow.com/questions/3509141/generating-random-numbers-with-arm-assembly
>
> Allerdings scheint das nicht unser ASM-spezifisch zu sein (Z80)
>
> http://www.cpcwiki.eu/forum/programming/asm-source-code/105/?action=post;quote=60363;last_msg=93131;PHPSESSID=61asn9qugn805afthked7tmk82
>
> Hilft Euch das auch noch weiter:
> http://pdf.datasheetcatalog.net/datasheets/480/500019_DS.pdf
> sowie: http://www.atmel.com/Images/ARM_926EJS_TRM.pdf
>
> Im diesem Forum ist was zum Cross compile from linux to ARM-ELF
> (ARM926EJ-S/MT7108):
>
> http://stackoverflow.com/questions/17336236/cross-compile-from-linux-to-arm-elf-arm926ej-s-mt7108
>
> Lieben Gruß, Ingo
>
>
> --
> tiptoi mailing list
> tiptoi at lists.nomeata.de
> https://lists.nomeata.de/mailman/listinfo/tiptoi
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.nomeata.de/pipermail/tiptoi/attachments/20150417/9e44fcdd/attachment.htm>
Mehr Informationen über die Mailingliste tiptoi