Yes, that is why I myself lean towards a feature request. For example the 
following line could tell the engine to make a unique random number for each of 
the supplied lines, to not have the problem with lines that come first getting 
a higher probability:

sort theData by random(the number of lines in theData) of each

On 23.05.2013, at 21:57, Dar Scott wrote:

> I don't think anybody is claiming that random() does not work.  (Some random 
> number generators will break with a bad seed, but that is outside the scope 
> of discussion.)  When Chris thought random() was broken, most people 
> suggested he look at his code around the sort.  
> 
> The problem is that randomly assigning sort values will distort the sort 
> because of the handling when sort values are equal.  The sort value is 
> assigned independently for each line or item.  That means some will be the 
> same.  
> 
> In the same sense, if I sorted on length of the item, those items with the 
> same length will keep the same order.  In this random() case, some will have 
> the same randomly selected number.  
> 
> Large values to random() reduces the distortion.  For random(2) and a list of 
> 2, the first will be first again 75% of the time.  For random(3) and a list 
> of 3, it will be first 53% of the time.  For random(999999) it seems to be 
> first 50% of the time for either of those cases.
> 
> I think you do have a point about lists eventually becoming larger than the 
> large number.  If random does something reasonable with an super large number 
> than that might be better.  
> 
> Dar
> 
> 
> 
> 
> 
> On May 23, 2013, at 12:54 PM, Björnke von Gierke wrote:
> 
>> So much misinformation in this thread :(
>> 
>> The random function works! it uses the same code as many other programs to 
>> do random stuff. Of course it's using a semi random list, but the 
>> technicalities about when random is not random enough does not come into 
>> place for sorting lines.
>> 
>> sort the lines of theList by random(the number of lines in theList)
>> 
>> This too works. there's no need to make an arbitrary large number _BECAUSE 
>> IT MIGHT IN SOME CASES DECREASE RANDOMNESS_. Mostly when your variable grows 
>> bigger then anticipated, so usually you're fine. But still, don't use 
>> arbitrary magic numbers, it's just bad coding habits.
>> 
>> As for the original poster: DO NOT SET THE RANDOMSEED!!!! Then your code 
>> will start to work as expected, or as erroneous as you coded it ;-)
>> 
>> 
>> On 23.05.2013, at 03:16, Jacques Hausser wrote:
>> 
>>> Chris, I think Randy has put his finger on something: the * is before any 
>>> number or letter in the ASCII numeration. I do not know what the random 
>>> function uses when randomizing a "set" (I was not even aware of this 
>>> possibility) but that could well be the ASCII value(s) of the first 
>>> char(s). 
>>> 
>>> Jacques
>>> 
>>> Le 23 mai 2013 à 02:36, Randy Hengst <iowahen...@mac.com> a écrit :
>>> 
>>>> Well Chris, I'm sure you've already tried this, but when this kind of 
>>>> thing happens to me… in other words, when a script is correct, but the 
>>>> results are wrong… I've messed something up later in the script with 
>>>> another put statement that overrides it. Maybe the place in the script 
>>>> where you've removed the *
>>>> 
>>>> My debugging skills are not top notch… So, I'd brute force things and put 
>>>> an "answer tPossibleAnswers" after each line to see what is happening… and 
>>>> again at the end of the handler.
>>>> 
>>>> I'd be interested in what you discover.
>>>> 
>>>> be well,
>>>> randy
>>>> -----
>>>> On May 22, 2013, at 4:34 PM, Chris Sheffield wrote:
>>>> 
>>>>> Thanks for the suggestions everyone, but I'm still getting strange 
>>>>> results, and I'm beginning to think there's something I'm doing that's 
>>>>> affecting use of the random() function. Not really sure what it would be 
>>>>> though. Here's my code:
>>>>> 
>>>>> set the itemDel to tab
>>>>> put "*" & item 3 of sRecSet into tPossibleAnswers -- correct answer
>>>>> put cr & item 4 of sRecSet after tPossibleAnswers -- distractor 1
>>>>> put cr & item 5 of sRecSet after tPossibleAnswers -- distractor 2
>>>>> sort lines of tPossibleAnswers by random(999999) -- randomly re-order the 
>>>>> list
>>>>> 
>>>>> This app pulls words from a database and presents three possible answers 
>>>>> to choose from. The asterisk above is used to identify the correct answer 
>>>>> after the sort takes place. It's removed later on. The sort only works 
>>>>> randomly one time. After that, the same sort order is used every time, so 
>>>>> the correct answer *always* ends up listed first. It doesn't matter if I 
>>>>> use a very high number or if I use 'the number of lines of 
>>>>> tPossibleAnswers'. Something is very strange. Just as a quick test, I 
>>>>> added a button to the card with this inside:
>>>>> 
>>>>> put "one" & cr & "two" & cr & "three" into tLines
>>>>> sort lines of tLines by random(the number of lines of tLines)
>>>>> answer tLines
>>>>> 
>>>>> This seems to work just fine. Yes, it does mean getting the same order 
>>>>> sometimes twice or maybe even three times in a row, but not usually more 
>>>>> than that, which would be fine in this case. So I'm not sure what's going 
>>>>> on with my actual code. I'm no longer setting the randomSeed or anything 
>>>>> like that.
>>>>> 
>>>>> The other strange thing is no matter what I try, if I use the random() 
>>>>> function or the any keyword in anyway, I get similar results. Something 
>>>>> is affecting the "randomness". This is for an iOS app, btw, if that makes 
>>>>> any difference to anyone. This might be kind of a dumb thing to do, but 
>>>>> the only other thing I can think of would be to add several more lines of 
>>>>> data to the three actual possible answers, then sort the whole thing, 
>>>>> then somehow filter out everything I added before the sort. With more 
>>>>> lines, maybe I'd get better results?
>>>>> 
>>>>> Thanks again,
>>>>> Chris
>>>>> 
>>>>> On May 22, 2013, at 3:03 PM, Dar Scott <d...@swcp.com> wrote:
>>>>> 
>>>>>> I think you are going to get the first line of the original list 
>>>>>> (correct answer) about half the time.  Does that seem right to you from 
>>>>>> what you have seen?  The correct answer will be in the first two about 
>>>>>> 80% of the time.  
>>>>>> 
>>>>>> Using the larger argument for random should give you better proportions. 
>>>>>>  You should get it in the first line a third of the time.  
>>>>>> 
>>>>>> If you only interested in the first line, there might be some methods 
>>>>>> that are clearer and more fun.
>>>>>> 
>>>>>> 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-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
> 
> 
> _______________________________________________
> 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