Random algorithm
Jacques Hausser
jacques.hausser at unil.ch
Sat Nov 15 06:40:57 EST 2008
Interesting demonstration ! If I'm not wrong, the probablity to get
twice the same sequence with the first method is about 6.25E-32 for
"really random" numbers (equiprobability for each number from 1 to
1000), what's a quite satisfying zero for dirty statisticians !
Jacques
Le 15 nov. 2008 à 09:55, Dave Cragg a écrit :
>
> On 13 Nov 2008, at 19:38, Richard Gaskin wrote:
>
>> So unless I'm missing something obvious (and it certainly wouldn't
>> be the first time), beginning with a fresh seed as Rev does and
>> then resetting it each time during the session seems a fair way to
>> avoid discernible reproducible patterns for most applications.
>
>
> Sorry for going back to this, but I'd just like to repeat my concern
> for resetting the seed using a "random" value. I may have
> misunderstood what "resetting it each time" means. In some posts
> people have talked about resetting it before "each run" and others
> have talked about resetting before each call to the random function.
> My concern was with a particular "each run" situation.
>
> Say the task is to produce 5000 sets of 5 random numbers from 1 to
> 1000. (perhaps for a gaming task) The straightforward way to do this
> is to use the default Rev seed and call random(1000) 25000 times,
> dividing the results into 5000 sets of 5.
>
> An alternative would be to reset the randomSeed before generating
> each set of five numbers. At first glance, this might seem like a
> reasonable thing to do. But depending on how the seed is set, it
> could produce unwanted results. In the second script below, the seed
> is reset using the random of an incremented number. (4570422
> incremented by 1 to avoid getting stuck with the same seed)
>
> The two scripts measure the number of repeated sequences that are
> generated by the two methods. The first method has yet to produce a
> repeated sequence here. But the second produces repeated sequences
> on almost every run. So by resetting the seed for "each run", the
> occurrence of a repeated sequence changes from a highly improbable
> event to a fairly safe bet.
>
>
> Cheers
> Dave
>
>
> METHOD 1 (no resetting)
> on mouseUp
>
> repeat 5000
> put empty into tVal
> repeat 5
> put random(1000) & "," after tVal
> end repeat
> add 1 to tValArray[tVal]
> end repeat
>
> put 0 into tCount
>
> repeat for each element tEl in tValArray
> if tEl > 1 then
> add 1 to tCount
> end if
> end repeat
> put tCount
> end mouseUp
>
> METHOD 2 (reset on every "set")
> on mouseUp
> -----------------------
> put 4570422 into tSeedBase
> repeat 5000
> put empty into tVal2
> add 1 to tSeedBase
> set the randomSeed to random(tSeedBase)
> repeat 5
> put random(1000) & "," after tVal2
> end repeat
> add 1 to tValArray2[tVal2]
> end repeat
> ---------------------------
>
> put 0 into tCount2
>
> repeat for each element tEl in tValArray2
> if tEl > 1 then
> add 1 to tCount2
> end if
> end repeat
>
> put tCount2
>
> end mouseUp
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
******************************************
Prof. Jacques Hausser
Department of Ecology and Evolution
Biophore / Sorge
University of Lausanne
CH 1015 Lausanne
please use my private address:
6 route de Burtigny
CH-1269 Bassins
tel/fax: ++ 41 22 366 19 40
mobile: ++ 41 79 757 05 24
E-Mail: jacques.hausser at unil.ch
*******************************************
More information about the use-livecode
mailing list