randomly order a list
Jacques Hausser
jacques.hausser at unil.ch
Wed May 22 20:16:26 EDT 2013
Dar,
I'm afraid you are wrong…
they would not be 27 possibilities (3^3) but only 6 (3! - factorial), because each line (first, second and third) can only be present once.
And I tested random (3) and random (9999) corrected to give a number between 1 and 3 with the following scripts:
on mouseUp
put "" into fld "FR"
repeat 100
put random(3) & comma after fld "FR"
end repeat
end mouseUp
result: 1,3,2,3,1,1,1,3,3,3,3,2,1,2,2,2,1,2,2,3,1,3,2,3,2,2,3,2,2,3,3,2,2,3,1,3,1,3,2,2,1,3,2,1,3,3,2,3…
mean value: 1.992
on mouseUp
put "" into fld "FR"
put 0 into tt
repeat 1000
put random(9999) into tx
switch
case tx <= 3333
put 1 into t
break
case tx <= 6666
put 2 into t
break
default
put 3 into t
end switch
add t to tt
end repeat
put tt/1000 into fld "Moyenne"
end mouseUp
result: 1,2,3,3,1,3,2,3,3,2,3,2,3,3,2,2,1,1,3,3,2,2,2,1,3,1,3,3,3,3,1,1,3,2,3,1,2,1,1,1,2,1,3,2,3,2,2…
mean value: 1.992
so, it seems to be no statistical difference in the results ! No reason to use large numbers when not needed. (Ideally, the means should be 2, not 1.992, but well…)
Jacques
Le 23 mai 2013 à 01:23, Dar Scott <dsc at swcp.com> a écrit :
> Here is (I think) the situation for random(3).
>
> Lines will be (virtually) assigned numbers randomly; there are 27 possibilities.
>
> There are 9 cases in which the first line is assigned a 1. It is first in the sort.
> There are 4 cases in which the first line is assigned a 2 and the other lines get 2 or 3. It is first in the sort
> There is one case in which all get a 3. Again, the first line comes in first.
>
> So, assuming my math is good, that means the first line comes in first 14 out of 27 times. That is 52% and should match what people are getting empirically.
>
> This doesn't address broken random(), though. It just emphasizes the importance of the big number for random().
>
> Dar
>
>
> On May 22, 2013, at 11:59 AM, Chris Sheffield wrote:
>
>> I have a list of three words that I need to be randomly sorted. To start with, the first word is the correct answer to a question. I want to re-order the list so that the correct answer may be the second or third word, and not necessarily the first. How can I do this successfully every time? The docs give an example like this:
>>
>> sort lines of myVar by random(the number of lines of myVar)
>>
>> But this only seems to work successfully one time. After that, the list is always set so the first word is the correct answer. So then I tried randomly setting the randomSeed value, since this value is supposed to affect the random() function and the any keyword, but this didn't seem to make much difference except to change it so either the second or third word is *always* the right answer. I need it to be more mixed up than that.
>>
>> So does anyone have a good way to do this?
>>
>> Thanks,
>> Chris
>>
>>
>> --
>> Chris Sheffield
>> Read Naturally, Inc.
>> www.readnaturally.com
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list