Re: Balancing randomness

This WebDNA talk-list message is from

2000


It keeps the original formatting.
numero = 27944
interpreted = N
texte = Rob -Thank you for your thorough analysis of the [random] tag; I've been meaning to do this for some time. I have long suspected that the sdir=ra is having problems with the internal classification scheme which was interfering with the random selection process. However, unless I am mistaken, a truly random distribution should be flat not gaussian (bell curved). However, by using the random distribution to create a table which is then used to select the records, you were able to get a flat response rate.Which O/S was this testing done on? I will try it under NT and Linux for giggles sake and see whether it looks at all different. I suspect it might, because different O/S's provide different random functions.John Peacock ____________________Reply Separator____________________ Subject: Balancing randomness Author: (WebCatalog Talk) Date: 2/22/00 6:12 PMThere was a recent thread on the randomness (or lack thereof) of sdir=ra. I had to put something together today to ensure that five randomly selected items got equal play (to get more of a shuffle sort) and I thought the code may be of use to some : )When I just used a [random] tag to generate numbers from 1 to 5 (creating 1000 numbers total for these examples), I got a typical bell curve most strongly weighted on the 3:[math show=f]total1=0,total2=0,total3=0,total4=0,total5=0[/math] [loop start=1&end=1000] [math]pick=[format .0f][math]pick=(([random]/100)*4)+1[/math][/format][/math] [math show=f]total[pick]=[interpret][total[pick]][/interpret]+1[/math] [/loop]

[loop start=1&end=5] [index] = [interpret][total[index]][/interpret] ([math][interpret][total[index]][/interpret]/10[/math]%)
[/loop]1 = 153 (15.3%) 2 = 227 (22.7%) 3 = 254 (25.4%) 4 = 233 (23.3%) 5 = 133 (13.3%)-----------------------------So I set up a separate database to serve as a lookup for the numbers ...prizeShuffle.db: ref num count 1 1 3 2 1 3 4 4 5 5 2.. and then stepped through each number in turn. Each time after using them all, they're given another pass through, this time randomly swapping their positions and resetting the count to 1.[math show=f]total1=0,total2=0,total3=0,total4=0,total5=0[/math] [loop start=1&end=1000] [math show=f]theCount=[lookup db=prizeShuffle.db&value=count&lookInField=ref&returnField=num¬Found=1][ /math] [math]pickNum=[lookup db=prizeShuffle.db&value=[theCount]&lookInField=ref&returnField=num¬Foun d=1][/math] [math show=f]total[pickNum]=[interpret][total[pickNum]][/interpret]+1[/math][showif [math]theCount=[theCount]+1[/math]=6] [replace db=prizeShuffle.db&eqRefData=count]num=1[/replace] [loop start=1&end=5] [math show=f]swap=[format .0f][math]pick=(([random]/100)*4)+1[/math][/format][/math] [math show=f]temp=[lookup db=prizeShuffle.db&value=[index]&lookInField=ref&returnField=num¬Found=1 ][/math] [replace db=prizeShuffle.db&eqRefData=[index]]num=[lookup db=prizeShuffle.db&value=[swap]&lookInField=ref&returnField=num¬Found=1] [/replace] [replace db=prizeShuffle.db&eqRefData=[swap]]num=[temp][/replace] [/loop] [/showif][showif [theCount]!6] [replace db=prizeShuffle.db&eqRefData=count]num=[theCount][/replace] [/showif][/loop]

[loop start=1&end=5] [index] = [interpret][total[index]][/interpret] ([math][interpret][total[index]][/interpret]/10[/math]%)
[/loop]1 = 200 (20%) 2 = 200 (20%) 3 = 200 (20%) 4 = 200 (20%) 5 = 200 (20%)Whazoo! : ) Rob Marquardt Designer/Resident Wirehead Toast Design800 Washington Avenue North Minneapolis MN 55401 612.330.9863 v 612.321.9424 f www.toastdesign.com ------------------------------------------------------------- Brought to you by CommuniGate Pro - The Buzz Word Compliant Messaging Server. To end your Mail problems go to .This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Associated Messages, from the most recent to the oldest:

    
  1. Re[2]: Balancing randomness (jpeacock@univpress.com 2000)
  2. Re[2]: Balancing randomness (jpeacock@univpress.com 2000)
  3. Re: Balancing randomness (Rob Marquardt 2000)
  4. Re: Balancing randomness (jpeacock@univpress.com 2000)
Rob -Thank you for your thorough analysis of the [random] tag; I've been meaning to do this for some time. I have long suspected that the sdir=ra is having problems with the internal classification scheme which was interfering with the random selection process. However, unless I am mistaken, a truly random distribution should be flat not gaussian (bell curved). However, by using the random distribution to create a table which is then used to select the records, you were able to get a flat response rate.Which O/S was this testing done on? I will try it under NT and Linux for giggles sake and see whether it looks at all different. I suspect it might, because different O/S's provide different random functions.John Peacock ____________________Reply Separator____________________ Subject: Balancing randomness Author: (WebCatalog Talk) Date: 2/22/00 6:12 PMThere was a recent thread on the randomness (or lack thereof) of sdir=ra. I had to put something together today to ensure that five randomly selected items got equal play (to get more of a shuffle sort) and I thought the code may be of use to some : )When I just used a [random] tag to generate numbers from 1 to 5 (creating 1000 numbers total for these examples), I got a typical bell curve most strongly weighted on the 3:[math show=f]total1=0,total2=0,total3=0,total4=0,total5=0[/math] [loop start=1&end=1000] [math]pick=[format .0f][math]pick=(([random]/100)*4)+1[/math][/format][/math] [math show=f]total[pick]=[interpret][total[pick]][/interpret]+1[/math] [/loop]

[loop start=1&end=5] [index] = [interpret][total[index]][/interpret] ([math][interpret][total[index]][/interpret]/10[/math]%)
[/loop]1 = 153 (15.3%) 2 = 227 (22.7%) 3 = 254 (25.4%) 4 = 233 (23.3%) 5 = 133 (13.3%)-----------------------------So I set up a separate database to serve as a lookup for the numbers ...prizeShuffle.db: ref num count 1 1 3 2 1 3 4 4 5 5 2.. and then stepped through each number in turn. Each time after using them all, they're given another pass through, this time randomly swapping their positions and resetting the count to 1.[math show=f]total1=0,total2=0,total3=0,total4=0,total5=0[/math] [loop start=1&end=1000] [math show=f]theCount=[lookup db=prizeShuffle.db&value=count&lookInField=ref&returnField=num¬Found=1][ /math] [math]pickNum=[lookup db=prizeShuffle.db&value=[theCount]&lookInField=ref&returnField=num¬Foun d=1][/math] [math show=f]total[pickNum]=[interpret][total[pickNum]][/interpret]+1[/math][showif [math]theCount=[theCount]+1[/math]=6] [replace db=prizeShuffle.db&eqRefData=count]num=1[/replace] [loop start=1&end=5] [math show=f]swap=[format .0f][math]pick=(([random]/100)*4)+1[/math][/format][/math] [math show=f]temp=[lookup db=prizeShuffle.db&value=[index]&lookInField=ref&returnField=num¬Found=1 ][/math] [replace db=prizeShuffle.db&eqRefData=[index]]num=[lookup db=prizeShuffle.db&value=[swap]&lookInField=ref&returnField=num¬Found=1] [/replace] [replace db=prizeShuffle.db&eqRefData=[swap]]num=[temp][/replace] [/loop] [/showif][showif [theCount]!6] [replace db=prizeShuffle.db&eqRefData=count]num=[theCount][/replace] [/showif][/loop]

[loop start=1&end=5] [index] = [interpret][total[index]][/interpret] ([math][interpret][total[index]][/interpret]/10[/math]%)
[/loop]1 = 200 (20%) 2 = 200 (20%) 3 = 200 (20%) 4 = 200 (20%) 5 = 200 (20%)Whazoo! : ) Rob Marquardt Designer/Resident Wirehead Toast Design800 Washington Avenue North Minneapolis MN 55401 612.330.9863 v 612.321.9424 f www.toastdesign.com ------------------------------------------------------------- Brought to you by CommuniGate Pro - The Buzz Word Compliant Messaging Server. To end your Mail problems go to .This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to jpeacock@univpress.com

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

For those of you not on the WebCatalog Beta... (1997) WebCatalog on G3 Macs? (1997) [searh] or [shownext]problem (1998) Problems with [Search] param - Mac Plugin b15 (1997) Some Questions (1997) webcat running as www, should that be webstar for use with (2002) Lookup Notfound (1998) Firesite cache vs webcat cache (1997) WebCatb15 Mac CGI -- [purchase] (1997) Verifying both name and password (was: THANKS) (1997) Tax on shipping (1998) Fileinfo... (2000) webdelivery.html and webna (1997) Warning: 50 [MATH] Variable Limit per page (1998) encrypting templates.... (2000) WebCat2 - [format thousands] (1997) Num Sort Descending (2004) BUG in [showif] using ^ (contains) (1997) [addlineitems] (1997) There's a bug in the math context ... (1997)