[Tiptoi] Instruktions Code "FF00" erzeugt Zufallszahlen.

Jürg Wullschleger wullschleger at gmail.com
So Jan 10 17:10:13 CET 2016


Was ich geschrieben habe ist falsch. Die Abstaende werden groesser
wenn man wartet, aber nur langsam. Vermutlich ist es also ein Timer,
aber er laeuft einfach viel langsamer wenn der Stift wartet, weil der
Stift in einem low-power mode ist.

Juerg

2016-01-10 15:17 GMT+01:00 Jürg Wullschleger <wullschleger at gmail.com>:
>> Wenn das Ding zuverlässig hochzählt (evtl. im Hintergrund?! - Hast du mal getestet, ob annähernd das gleiche Ergebnis kommt, wenn man mit gleichen Zeitabständen auf die buttons drückt??!
> Die beiden Testreihen
> 0507 0842 1163 1583 2003 und 0541 0882 1207 1668 2138
> sind so entstanden. Wenn man kleine Pausen einlegt werden die
> Abstaende nicht wirklich groesser, deshalb vermute ich dass es nicht
> einfach ein Timer ist.
>
> Juerg
>
>
>
>
>> Evtl. kann man darüber einen im Hintergrund laufenden timer aktivieren und ihm sogar ansteuern, dass etwas abgespielt wird, wenn wert >X erreicht wird?!
>>
>> Echter Zufall ohne eine Referenz im Hintergrund wie Uhrzeit o.Ä. ist doch ohnehin schwierig, oder?
>>
>> Das könnte doch bedeuten, dass der "Zufall" befehl lediglich eine Art timer aktiviert. Auf dessen Basis wird dann u.U. durch eine andere Funktion eine Zufallszahl generiert.
>>
>> Von meinem iPhone gesendet
>>
>>> Am 10.01.2016 um 14:53 schrieb Jürg Wullschleger <wullschleger at gmail.com>:
>>>
>>> Update:
>>>
>>> Es ist nicht so zufaelling wie ich dachte. Die Instruktion
>>> ?($a,<value>) (00 FF)
>>> gibt einen internen Wert N modulo <value> aus, und der Wert N wird
>>> intern hochgezaehlt. Wie N genau hochgezaehlt wird weiss ich nicht. Es
>>> scheint nicht einfach ein interner Timer zu sein. Das Ausfuehren der
>>> Instruktion in der selben Zeile:
>>>
>>> ?($a,65535) (00 FF) P(blob) ?($register,65535) (00 FF) $register-=$a
>>>
>>> gibt immer den selben Wert, d.h. $register wird hier am Ende immer 0 sein.
>>>
>>> Hier ist mein Testprogram:
>>>
>>> product-id: 42
>>> media-path: Audio/digits/%s
>>> welcome: blob, blob
>>> init: $mod:=11
>>> scripts:
>>>  10204:
>>>    - ?($register,1024) (00 FF)
>>>  10205:
>>>    - ?($register,2048) (00 FF)
>>>  10206:
>>>    - ?($register,65535) (00 FF)
>>>  10207:
>>>    - ?($a,65535) (00 FF) P(blob) ?($register,65535) (00 FF) $register-=$a
>>>  10208:
>>>    - $mod==11? ?($a,65535) (00 FF) P(blob) $mod:=0 J(10208)
>>>    - $mod==0? $mod:=11 ?($register,65535) (00 FF) $register-=$a
>>>  10239:
>>>    - $register==0? $mod==11? P(english_0) $mod:=11
>>>    - $register>0? $mod==11? $mod:=$register $mod%=10 $register/=10 J(10239)
>>>    - $mod==0? P(english_0) $mod:=11 J(10239)
>>>    - $mod==1? P(english_1) $mod:=11 J(10239)
>>>    - $mod==2? P(english_2) $mod:=11 J(10239)
>>>    - $mod==3? P(english_3) $mod:=11 J(10239)
>>>    - $mod==4? P(english_4) $mod:=11 J(10239)
>>>    - $mod==5? P(english_5) $mod:=11 J(10239)
>>>    - $mod==6? P(english_6) $mod:=11 J(10239)
>>>    - $mod==7? P(english_7) $mod:=11 J(10239)
>>>    - $mod==8? P(english_8) $mod:=11 J(10239)
>>>    - $mod==9? P(english_9) $mod:=11 J(10239)
>>>
>>> Wenn ich abwechselnd 10206 und 10239 antippe, kriege ich folgende Zahlenreihe:
>>> 0507 0842 1163 1583 2003
>>> wie man sieht wird die Zahl immer groesser, und die Abstaende sind
>>> mehr oder weniger gleich gross. Wenn ich dann abschalte und wieder
>>> einschalte, kriege ich:
>>> 0541 0882 1207 1668 2138
>>>
>>> Das heisst Output scheint wenige Bits (vielleicht 4?) an Zufaelligkeit
>>> zu generieren, aber mehr nicht.
>>>
>>> Wenn ich abwechselnd 10208 und 10239 antippe, kriege ich folgende Zahlenreihe:
>>> 031 029 031 026 031 032 031 032 032
>>> D.h. nach einem jump wird N neu gesetzt. Aber hier wird nur sehr
>>> wening Zufaelligkeit generiert, vielliecht 1 Bit.
>>> Wenn ich das P(blob) aus dem Script des Codes 10206 herausnehme, dann
>>> bekomme ich die Reihe
>>> 0 0 1 2 2 1 1 2 2 2 2 1 1 6 0 2 5 11 0 2 2 2 1 0
>>>
>>> Juerg
>>>
>>>
>>>
>>> 2016-01-10 8:33 GMT+01:00 Ulrich Sibiller <ulrich.sibiller at gmail.com>:
>>>> Klasse! Das ist IMHO ein sehr wichtiger Baustein. Zufallszahlen waren bisher
>>>> nur sehr aufwendig zu erzeugen.
>>>>
>>>> Uli
>>>>
>>>> Vom Smartphone gesendet.
>>>> ________________________________
>>>> Von: Jürg Wullschleger
>>>> Gesendet: ‎10.‎01.‎2016 01:24
>>>> An: tiptoi at lists.nomeata.de
>>>> Betreff: [Tiptoi] Instruktions Code "FF00" erzeugt Zufallszahlen.
>>>>
>>>> Hallo zusammen,
>>>>
>>>> Ich habe seit 2 Wochen ein tiptoi stift, und habe nun begonnen ein
>>>> bisschen mit dem tttool herum zu spielen.
>>>>
>>>> Ich hab auch was neues herausgefunden: die Instruktion
>>>>
>>>> ?($register,<value>) (00 FF)
>>>>
>>>> generiert eine Zufallszahl zwischen 0 und <value> (inklusive 0 und
>>>> <value>) und speichert es in $register.
>>>>
>>>> Diese Interpretation macht auch einigermassen Sinn in "Puzzle
>>>> Kinderarzt", wo diese Instruktion gebraucht wird: (aus dem
>>>> mailing-listen archiv, 14 Jan 2015)
>>>>
>>>>  12845:
>>>>  - $0==0? $6==0? ?($6,1) (00 FF) $6+=1 J(12845)
>>>>  - $0==0? $6==1? ?($6,1) (00 FF) $6+=1 ?($0,2) (E0 FF)
>>>>  - $0==0? $6==2? ?($6,1) (00 FF) $6+=1 P(99)
>>>>  - $0==1?
>>>>  12922:
>>>>  - $0==0? $10==0? ?($10,1) (00 FF) $10+=1 J(12922)
>>>>  - $0==0? $10==1? ?($10,1) (00 FF) $10+=1 ?($0,2) (E0 FF)
>>>>  - $0==0? $10==2? ?($10,1) (00 FF) $10+=1 ?($0,65535) (E1 FF)
>>>>
>>>> Die Abfolge "?($6,1) (00 FF) $6+=1" generiert eine Zufallszahl
>>>> zwischen 1 und 2, welche dann benutzt wird, um eine von zwei
>>>> instruktionen auszufuehren.
>>>>
>>>> Hier ist ein test fuer die Instruktion:
>>>>
>>>> product-id: 42
>>>> media-path: Audio/digits/%s
>>>> welcome: blob
>>>> scripts:
>>>>  10208:
>>>>    - ?($register,9) (00 FF) P(blob)
>>>>  10239:
>>>>    - $register==0? P(blob) P(english_0)
>>>>    - $register==1? P(blob) P(english_1)
>>>>    - $register==2? P(blob) P(english_2)
>>>>    - $register==3? P(blob) P(english_3)
>>>>    - $register==4? P(blob) P(english_4)
>>>>    - $register==5? P(blob) P(english_5)
>>>>    - $register==6? P(blob) P(english_6)
>>>>    - $register==7? P(blob) P(english_7)
>>>>    - $register==8? P(blob) P(english_8)
>>>>    - $register==9? P(blob) P(english_9)
>>>>    - $register>10? P(blob) P(blob)
>>>>
>>>> Die generierten Zufallszahlen sind:
>>>> 1 9 7 7 7 7 2 7 7 2 7 7 2 7 6 7 1 7 2 7 7 6 6 2 7 7 2
>>>> 3 7 7 2 3 2 2 2 7 7 7 2 7 7 1 7 2 7 2 6 7 2 7 2 6 6 7
>>>> 3 1 6 6 2 6 7 2 7 7 7 7 7 7 2 2 7 7 2 7 2 2 7 2 7 2 2
>>>> 7 0 1 7 1 7 7 2 1 7 9 7 7 7 2 7 7 7 7 1 7 7 2 7 1 7 7
>>>>
>>>> Wie man sieht ist die Zufaelligkeit nicht wirklich uniform: viel zu
>>>> viele 7, gar keine 4, 5 oder 8.
>>>>
>>>> Wenn man etwas uniformeres braucht, muss man also wohl:
>>>>
>>>>  10208:
>>>>    - ?($register,14999) (00 FF) $register%=10 P(blob)
>>>>
>>>> oder, falls das auch nicht wirklich uniform ist, gar:
>>>>
>>>>  10208:
>>>>    - $count==0? P(blob) $register:=0 $count+=1 J(10208)
>>>>    - $count<50? ?($rand,6) (00 FF) $register+=$rand $count+=1 J(10208)
>>>>    - $count>=50? $register%=10 $count:=0 P(blob)
>>>>
>>>> ausfuehlren. leider ist dies 2. Variante ziemlich langsam. Hier muss
>>>> man wohl nicht ein bisschen ausprobieren, was am besten ist.
>>>>
>>>> Fuer einigermassen uniforme Zufallszahlen (z.b. fuer ein Wuerfelspiel)
>>>> ist es wohl
>>>> am besten, diese Funktion nur zu Beginn des Programms aufzurufen, um einen
>>>> Seed mit genuegend Entropie zu generieren. Und benutzt dann einen einfachen
>>>> Pseudozufallsgenerator.
>>>>
>>>> Viele Gruesse
>>>>
>>>> Juerg
>>>>
>>>> --
>>>> tiptoi mailing list
>>>> tiptoi at lists.nomeata.de
>>>> https://lists.nomeata.de/mailman/listinfo/tiptoi
>>>
>>> --
>>> tiptoi mailing list
>>> tiptoi at lists.nomeata.de
>>> https://lists.nomeata.de/mailman/listinfo/tiptoi




Mehr Informationen über die Mailingliste tiptoi