randomly order a list

Michael Mays michael_livecode at nayyan.com
Thu May 23 07:36:48 EDT 2013


No it is 3 factorial. Jacques and Craig and I are right. 

This is picking without replacement, not picking with replacement. The first answer position has three choices. Once you pick it the second answer position has 2 and the final position 1 option left. To get 27 options means you have answer sheets where the first answer is option 3, you return option 3 to the list and the second answer is option 3 and you return option 3 to the list and the third question is option three and other such. Sort by defaults to an ordering which makes sense in these cases making it look like you have a right answer ordering. 

Michael

On May 23, 2013, at 12:20 PM, Dar Scott <dsc at swcp.com> 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:
> 





More information about the use-livecode mailing list