Verify distribution uniformity/Naive: Difference between revisions

Added Easylang
m (→‎{{header|Wren}}: Minor tidy)
(Added Easylang)
 
Line 446:
4 200016
5 200424</pre>
 
=={{header|EasyLang}}==
<syntaxhighlight>
func dice5 .
return randint 5
.
func dice25 .
return (dice5 - 1) * 5 + dice5
.
func dice7a .
return dice25 mod1 7
.
func dice7b .
repeat
h = dice25
until h <= 21
.
return h mod1 7
.
numfmt 3 0
#
proc checkdist dicefunc n delta . .
len dist[] 7
for i to n
# no function pointers
if dicefunc = 1
h = dice7a
else
h = dice7b
.
dist[h] += 1
.
for i to len dist[]
h = dist[i] / n * 7
if abs (h - 1) > delta
bad = 1
.
dist[i] = 0
print h
.
if bad = 1
print "-> not uniform"
else
print "-> uniform"
.
print ""
.
#
checkdist 1 1000000 0.01
checkdist 2 1000000 0.01
</syntaxhighlight>
{{out}}
<pre>
1.122
1.121
1.117
1.120
0.844
0.838
0.837
-> not uniform
 
0.997
1.000
1.004
1.001
0.997
1.001
1.000
-> uniform
</pre>
 
=={{header|Elixir}}==
2,083

edits