Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,32 +0,0 @@
|
|||
with Ada.Numerics.Discrete_Random;
|
||||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
|
||||
procedure Sleeping_Beauty is
|
||||
type Coin is (Heads, Tails);
|
||||
package Random_Coin is new Ada.Numerics.Discrete_Random (Coin); use Random_Coin;
|
||||
package FIO is new Float_IO (Float);
|
||||
Tosser : Generator;
|
||||
Probability : Float;
|
||||
|
||||
function Experiment (Tosses : Integer) return Float is
|
||||
Awakenings, Heads_Count : Integer := 0;
|
||||
begin
|
||||
for Iteration in 1 .. Tosses loop
|
||||
case Random (Tosser) is
|
||||
when Heads =>
|
||||
Awakenings := Awakenings + 1;
|
||||
Heads_Count := Heads_Count + 1;
|
||||
when Tails =>
|
||||
Awakenings := Awakenings + 2;
|
||||
end case;
|
||||
end loop;
|
||||
Put_Line ("Awakenings over" & Tosses'Image & " iterations:" & Awakenings'Image);
|
||||
return Float (Heads_Count) / Float (Awakenings) * 100.0;
|
||||
end Experiment;
|
||||
|
||||
begin
|
||||
Reset (Tosser);
|
||||
Probability := Experiment (1_000_000);
|
||||
Put ("Percentage probability of heads on waking:");
|
||||
FIO.Put (Probability, 3, 5, 0);
|
||||
end Sleeping_Beauty;
|
||||
|
|
@ -4,8 +4,8 @@ sleepingBeauty: function [reps][
|
|||
do.times: reps [
|
||||
coin: random 0 1
|
||||
wakings: wakings + 1
|
||||
if? coin = 0 -> heads: heads + 1
|
||||
else -> wakings: wakings + 1
|
||||
switch coin = 0 -> heads: heads + 1
|
||||
-> wakings: wakings + 1
|
||||
]
|
||||
print ["Wakings over" reps "repetitions =" wakings]
|
||||
return 100.0 * heads//wakings
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">iterations</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1_000_000</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #000000;">fmt</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
|
||||
Wakings over %,d repetitions = %,d
|
||||
Percentage probability of heads on waking = %f%%
|
||||
"""</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">heads</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">wakings</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">iterations</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">flip</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">rand</span><span style="color: #0000FF;">(</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- 1==heads, 2==tails</span>
|
||||
<span style="color: #000000;">wakings</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span> <span style="color: #0000FF;">+</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">flip</span><span style="color: #0000FF;">==</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">heads</span> <span style="color: #0000FF;">+=</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">flip</span><span style="color: #0000FF;">==</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">fmt</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">iterations</span><span style="color: #0000FF;">,</span><span style="color: #000000;">wakings</span><span style="color: #0000FF;">,</span><span style="color: #000000;">heads</span><span style="color: #0000FF;">/</span><span style="color: #000000;">wakings</span><span style="color: #0000FF;">*</span><span style="color: #000000;">100</span><span style="color: #0000FF;">})</span>
|
||||
<!--
|
||||
constant iterations = 1_000_000,
|
||||
fmt = """
|
||||
Wakings over %,d repetitions = %,d
|
||||
Percentage probability of heads on waking = %f%%
|
||||
"""
|
||||
integer heads = 0, wakings = 0
|
||||
for i=1 to iterations do
|
||||
integer flip = rand(2) -- 1==heads, 2==tails
|
||||
wakings += 1 + (flip==2)
|
||||
heads += (flip==1)
|
||||
end for
|
||||
-- or (same output, <1% of the time):
|
||||
--integer heads = sum(sq_eq(sq_rand(repeat(2,iterations)),1)),
|
||||
-- wakings = 2*iterations-heads
|
||||
printf(1,fmt,{iterations,wakings,heads/wakings*100})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue