[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