Fuck me that's correct. :(

So we do need the sort to actually be "for each", instead of random. Would you 
guys say this is a bug, or that a feature request for making sort use a unique 
random value instead of an arbitrary one?


On 23.05.2013, at 06:20, Dar Scott wrote:

> Easy mistake to make, Jacques, but it is not 3!.
> 
> Random() emulates independent random numbers.  It cannot avoid numbers 
> returned before in the sort.  Each line will get a randomly assigned number 
> independent of the other lines.  
> 
> The number of ways 3 lines can be ordered does not apply.
> 
> Each line will be assigned a number by random().  So it is possible that the 
> first line will be assigned a 2 and the other lines assigned 2, also.  The 
> probability of that is one out of 3^3.  (Not three factorial)
> 
> You can create a function to log the assignments and use that as the 
> comparison metric function.  You can see the assignments, and different lines 
> can have the same value.  
> 
> Each sort will get a random pattern of 1, 2 and 3.  There are 27 of them.
> 
> Fourteen of them will cause a sort with the first line coming first again.  
> That is 52%, not 33%.  
> 
> You can write code to sort the same starting string a thousand times and the 
> same first line will show up 52% of the time, not 33%.  
> 
> Dar
> 
> On May 22, 2013, at 6:16 PM, Jacques Hausser wrote:
> 
>> 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 <d...@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@lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your 
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


-- 

Use an alternative Dictionary viewer:
http://bjoernke.com/bvgdocu/

Chat with other RunRev developers:
http://bjoernke.com/chatrev/



_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to