I want to implement a method that returns true
with probability of n/m
Probability returns false
.
For example, I want to get true
with a probability of 7/10000.
To achieve this, I first obtain a random integer
here my implementation: my question is: is it okay for me only judge whether 1) achieve expected perfect probability? on one hand, numbers 1 7 are discrete enough in range 10000: there seems be bias makes returning likely. other since can get purely random number probabilities affected by which choose value. it [1,2,3,4,5,6,7], [21,22,23,24,25,26,27], [23,55,3,66,762,92,123] or anything number. so, view correct? < div>
n< code> that is less than 10000 from the function
getrandomintundern< code>. i then determine if
n< (7 1), and so, return
true< code>, otherwise
false< < p>
n<>
0 included while n not const getrandomintundern="(n)" => { rn="Math.random()" * math.trunc(rn) } opportunity of a truthy value m goatchance="(n," m)=">" getrandomintundern(m) an 7‰ to true console.log(goatchance(7, 10000))< pre>
This is not how you implement it. Your code checks if n is less than 7, which is the correct way.
Where does this statement come from? You could definitely test this premise...and see how possible it is.
This is real.
How to test
You can easily test the distribution of your implementation. You can call this function repeatedly and record the result you get and see how it changes over time. In statistics, the larger the sample size, the more reliable the results.
This is a code snippet that continuously executes the
goAtChance
function and records the total number of calls and the number oftrue
results. Every 10 milliseconds, the results are updated on the page, including the ratio of the number oftrue
to the total. If all goes well, this ratio should approach 0.0007 over time.