tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
45
Task/Probabilistic-choice/Seed7/probabilistic-choice.seed7
Normal file
45
Task/Probabilistic-choice/Seed7/probabilistic-choice.seed7
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "float.s7i";
|
||||
|
||||
const type: letter is new enum
|
||||
aleph, beth, gimel, daleth, he, waw, zayin, heth
|
||||
end enum;
|
||||
|
||||
const func string: str (in letter: aLetter) is
|
||||
return [] ("aleph", "beth", "gimel", "daleth", "he", "waw", "zayin", "heth") [succ(ord(aLetter))];
|
||||
|
||||
enable_output(letter);
|
||||
|
||||
const array [letter] integer: table is [letter] (
|
||||
5544, 4620, 3960, 3465, 3080, 2772, 2520, 1759);
|
||||
|
||||
const func letter: randomLetter is func
|
||||
result
|
||||
var letter: resultLetter is aleph;
|
||||
local
|
||||
var integer: number is 0;
|
||||
begin
|
||||
number := rand(1, 27720);
|
||||
while number > table[resultLetter] do
|
||||
number -:= table[resultLetter];
|
||||
incr(resultLetter);
|
||||
end while;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var integer: count is 0;
|
||||
var letter: aLetter is aleph;
|
||||
var array [letter] integer: occurrence is letter times 0;
|
||||
begin
|
||||
for count range 1 to 1000000 do
|
||||
aLetter := randomLetter;
|
||||
incr(occurrence[aLetter]);
|
||||
end for;
|
||||
writeln("Name Count Ratio Expected");
|
||||
for aLetter range letter.first to letter.last do
|
||||
writeln(aLetter rpad 7 <& occurrence[aLetter] lpad 6 <&
|
||||
flt(occurrence[aLetter]) / 10000.9 digits 4 lpad 8 <& "%" <&
|
||||
100.0 * flt(table[aLetter]) / 27720.0 digits 4 lpad 8 <& "%");
|
||||
end for;
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue