Jerry,

You’ve done a very nice job of describing what’s actually(?) happening in my 
code, but I think you missed the point of my question. 
You agree that if you simply sample random pixels then the ratio of a random 
pick inside the smaller circle will depend on the area of the circles.
And, if I pick a random x and y within the concentric circles of radius R and 
2R, ¼ of the time they will lie in the smaller circle and ¾ of the time in the 
bigger.
So, pick any random x and y and convert to radial coordinates. Everything 
should work! 
In my code I pick a random angle and a random radius (radial coordinates) 
within the limits of the larger circle, thus picking random points within the 
area of the larger circle, yet I get ½ (which you say is the right answer). 
My intent was to pick random points (using radial coordinates) for which the 
result should be ¼!

What’s wrong with my code?

Thanks,

Roger

> On Sep 2, 2020, at 8:27 PM, Jerry Jensen via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> 1/2 is the right answer.
> 
> Take your drawing of the circles. Cut a verrrryy thin radial slice from the 
> center to the outside circle. So thin that it is just a line. 
> 
> Now think of how likely a random point on that line will be in the part of 
> the line that was in the smaller circle. The part that was from the smaller 
> circle is HALF as long as the entire line.
> 
> Now add up all the possible positions of that line. Why would that change the 
> answer?
> 
> Congratulations, you understand integrals!
> .Jerry
> 
>> On Sep 2, 2020, at 7:38 PM, Roger Guay via use-livecode 
>> <use-livecode@lists.runrev.com> wrote:
>> 
>> Your chance to be Genius du Jour:
>> 
>> If I construct 2 concentric circles, one being half the radius of the 
>> larger, then simple math shows that the smaller circle has an area ¼ the 
>> area of the larger.
>> Now if I generate a random point within the radius of the larger circle, I 
>> should expect that the probability of it landing in the smaller circle to be 
>> ¼.
>> But, I must be doing something wrong because I get ½ !
>> 
>> Here is my script:
>> 
>> on mouseDown
>> 
>>      getStuff
>> 
>> end mouseDown
>> 
>> 
>> local tR, tTheta, tX0, tY0, tX1, tY1, tTotCount, tL, tLongCount
>> 
>> on getStuff
>> 
>>      put item 1 of the loc of grc OuterCircle into tx0
>> 
>>      put item 2 of the loc of grc OuterCircle into tY0
>> 
>>      put "" into tTotCount
>> 
>>      put "" into tLongCount
>> 
>>      emptyFlds
>> 
>> end getStuff
>> 
>> 
>> on mouseUp
>> 
>>      lock screen
>> 
>>      repeat 1000
>> 
>>              put random(200) into tR -- 200 is half the width of the larger 
>> circle
>> 
>>              if tR > 1 then
>> 
>>                      ## put random(2*pi) into tTheta1
>> 
>>                      get random(360)
>> 
>>                      put it*pi/180 into tTheta1
>> 
>>                      put tR*cos(tTheta1) into tX1
>>                      put tR*sin(tTheta1) into tY1
>> 
>>                      set the loc of grc Ptgrc to tX0 + tX1, tY0 - tY1 --- 
>> grc Ptgrc is a 2 pixle oval
>> 
>>                      if intersect(grc Ptgrc, grc InnerCircle, "opaque 
>> Pixels") then add 1 to tLongCount
>> 
>>                      add 1 to tTotCount
>> 
>>              end if
>> 
>>      end repeat
>>      put tTotCount into fld "totcountFld"
>> 
>>      put tLongCount into fld “LongCountFld"
>> 
>>      put tLongCount/tTotCount into fld "RatioFld"
>> 
>>      unlock screen
>> 
>> end mouseUp
>> 
>> 
>> Apparently, this does not generate a random point within the larger circle! 
>> Can someone please tell me what’s wrong here?
>> 
>> Thanks,
>> Roger
>> _______________________________________________
>> 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

Reply via email to