Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
|||
_elements = 8
|
||||
|
||||
local fn ProbabilisticChoice
|
||||
double prob(_elements), cumulative(_elements)
|
||||
Str15 item(_elements)
|
||||
double r, p, sum = 0, checksum = 0
|
||||
long i, j, samples = 1000000
|
||||
|
||||
item(1) = "aleph" : item(2) = "beth" : item(3) = "gimel" : item(4) = "daleth"
|
||||
item(5) = "he" : item(6) = "waw" : item(7) = "zayin" : item(8) = "heth"
|
||||
|
||||
prob(1) = 1/5.0 : prob(2) = 1/6.0 : prob(3) = 1/7.0 : prob(4) = 1/8.0
|
||||
prob(5) = 1/9.0 : prob(6) = 1/10.0 : prob(7) = 1/11.0 : prob(8) = 1759/27720
|
||||
|
||||
for i = 1 to _elements
|
||||
sum += prob(i)
|
||||
next
|
||||
if abs(sum-1) > samples then print "Probabilities don't sum to 1." : exit fn
|
||||
|
||||
for i = 1 to samples
|
||||
cln r = (((double)arc4random()/0x100000000));
|
||||
p = 0
|
||||
for j = 1 to _elements
|
||||
p += prob(j)
|
||||
if (r < p) then cumulative(j) += 1 : exit for
|
||||
next
|
||||
next
|
||||
|
||||
print
|
||||
printf @"Item Actual Theoretical"
|
||||
printf @"---- ------ -----------"
|
||||
for i = 1 to _elements
|
||||
printf @"%-7s %10.6f %12.6f", item(i), cumulative(i)/samples, prob(i)
|
||||
checksum += cumulative(i)/samples
|
||||
next
|
||||
printf @" -------- -----------"
|
||||
printf @"%17.6f %12.6f", checksum, 1.000000
|
||||
end fn
|
||||
|
||||
fn ProbabilisticChoice
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue