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