Seven-sided dice from five-sided dice: Difference between revisions

Content added Content deleted
(Added Kotlin)
m (→‎{{header|REXX}}: added/changed comments and whitespace, changed indentations, elided a blank line in the output, added option to specify a seed (for RANDOM) for repeatability, change height of output window.)
Line 1,446: Line 1,446:


=={{header|REXX}}==
=={{header|REXX}}==
<lang rexx>/*REXX program simulate a seven─sided die based on a five─sided throw. */
<lang rexx>/*REXX program simulates a 7─sided die based on a 5─sided throw for a number of trials. */
parse arg trials sample . /*obtain optional arguments from the CL*/
parse arg trials sample seed . /*obtain optional arguments from the CL*/
if trials=='' then trials= 1 /*Not specified? Then use the default.*/
if trials=='' | trials="," then trials= 1 /*Not specified? Then use the default.*/
if sample=='' then sample=1000000 /* " " " " " " */
if sample=='' | sample="," then sample=1000000 /* " " " " " " */
if datatype(seed,'W') then call random ,,seed /*Numeric? Then use it as a RAND seed.*/

/* [↑] one million samples to be used.*/
do #=1 for trials; die.=0 /*performs the number of desired trials*/
do #=1 for trials; die.=0 /*performs the number of desired trials*/
k=0
k=0
do until k==sample; r=5 * random(1, 5) + random(1, 5) - 6
do until k==sample; r=5 * random(1, 5) + random(1, 5) - 6
if r>20 then iterate
if r>20 then iterate
k=k+1; r=r // 7 + 1; die.r=die.r + 1
k=k+1; r=r // 7 + 1; die.r=die.r + 1
end /*until*/
end /*until*/
say
say
expect=sample%7
expect=sample%7
say center('trial:'right(#, 4) " " sample 'samples, expect='expect, 79, "─")
say center('trial:'right(#, 4) " " sample 'samples, expect='expect, 80, "─")

say
do j=1 for 7
do j=1 for 7
say ' side' j "had " die.j ' occurrences',
say ' side' j "had " die.j ' occurrences',
' difference from expected:'right(die.j-expect, length(sample))
' difference from expected:'right(die.j-expect, length(sample))
end /*j*/
end /*j*/
end /*#*/ /*stick a fork in it, we're all done. */</lang>
end /*#*/ /*stick a fork in it, we're all done. */</lang>
{{out|output|text=&nbsp; when using the input of: &nbsp; <tt> 11 </tt>}}
{{out|output|text=&nbsp; when using the input of: &nbsp; &nbsp; <tt> 11 </tt>}}


<br>(Shown at five-sixth size.)
<br>(Shown at five-sixth size.)


<pre style="font-size:84%;height:75ex">
<pre style="font-size:84%;height:71ex">
─────────────────trial: 1 1000000 samples, expect=142857─────────────────
─────────────────trial: 1 1000000 samples, expect=142857──────────────────
side 1 had 142990 occurrences difference from expected: 133

side 1 had 142879 occurrences difference from expected: 22
side 2 had 142811 occurrences difference from expected: -46
side 2 had 142980 occurrences difference from expected: 123
side 3 had 143348 occurrences difference from expected: 491
side 3 had 142366 occurrences difference from expected: -491
side 4 had 143219 occurrences difference from expected: 362
side 4 had 143129 occurrences difference from expected: 272
side 5 had 142717 occurrences difference from expected: -140
side 5 had 143316 occurrences difference from expected: 459
side 6 had 141951 occurrences difference from expected: -906
side 6 had 142742 occurrences difference from expected: -115
side 7 had 142964 occurrences difference from expected: 107
side 7 had 142588 occurrences difference from expected: -269

─────────────────trial: 2 1000000 samples, expect=142857─────────────────

side 1 had 142583 occurrences difference from expected: -274
side 2 had 142797 occurrences difference from expected: -60
side 3 had 143093 occurrences difference from expected: 236
side 4 had 142168 occurrences difference from expected: -689
side 5 had 143203 occurrences difference from expected: 346
side 6 had 143260 occurrences difference from expected: 403
side 7 had 142896 occurrences difference from expected: 39

─────────────────trial: 3 1000000 samples, expect=142857─────────────────

side 1 had 143089 occurrences difference from expected: 232
side 2 had 142815 occurrences difference from expected: -42
side 3 had 142645 occurrences difference from expected: -212
side 4 had 142959 occurrences difference from expected: 102
side 5 had 142764 occurrences difference from expected: -93
side 6 had 143205 occurrences difference from expected: 348
side 7 had 142523 occurrences difference from expected: -334

─────────────────trial: 4 1000000 samples, expect=142857─────────────────

side 1 had 142535 occurrences difference from expected: -322
side 2 had 142316 occurrences difference from expected: -541
side 3 had 143101 occurrences difference from expected: 244
side 4 had 143159 occurrences difference from expected: 302
side 5 had 143130 occurrences difference from expected: 273
side 6 had 142551 occurrences difference from expected: -306
side 7 had 143208 occurrences difference from expected: 351

─────────────────trial: 5 1000000 samples, expect=142857─────────────────

side 1 had 143335 occurrences difference from expected: 478
side 2 had 142296 occurrences difference from expected: -561
side 3 had 142500 occurrences difference from expected: -357
side 4 had 142775 occurrences difference from expected: -82
side 5 had 142581 occurrences difference from expected: -276
side 6 had 143363 occurrences difference from expected: 506
side 7 had 143150 occurrences difference from expected: 293

─────────────────trial: 6 1000000 samples, expect=142857─────────────────

side 1 had 142593 occurrences difference from expected: -264
side 2 had 143012 occurrences difference from expected: 155
side 3 had 142703 occurrences difference from expected: -154
side 4 had 143702 occurrences difference from expected: 845
side 5 had 142867 occurrences difference from expected: 10
side 6 had 142158 occurrences difference from expected: -699
side 7 had 142965 occurrences difference from expected: 108


─────────────────trial: 7 1000000 samples, expect=142857─────────────────
─────────────────trial: 2 1000000 samples, expect=142857──────────────────
side 1 had 142707 occurrences difference from expected: -150
side 2 had 142512 occurrences difference from expected: -345
side 3 had 143038 occurrences difference from expected: 181
side 4 had 143268 occurrences difference from expected: 411
side 5 had 142629 occurrences difference from expected: -228
side 6 had 142902 occurrences difference from expected: 45
side 7 had 142944 occurrences difference from expected: 87


─────────────────trial: 3 1000000 samples, expect=142857──────────────────
side 1 had 143065 occurrences difference from expected: 208
side 2 had 142892 occurrences difference from expected: 35
side 1 had 142743 occurrences difference from expected: -114
side 3 had 142681 occurrences difference from expected: -176
side 2 had 142674 occurrences difference from expected: -183
side 4 had 142637 occurrences difference from expected: -220
side 3 had 142834 occurrences difference from expected: -23
side 5 had 142563 occurrences difference from expected: -294
side 4 had 142668 occurrences difference from expected: -189
side 6 had 142934 occurrences difference from expected: 77
side 5 had 143108 occurrences difference from expected: 251
side 7 had 143228 occurrences difference from expected: 371
side 6 had 142727 occurrences difference from expected: -130
side 7 had 143246 occurrences difference from expected: 389


─────────────────trial: 8 1000000 samples, expect=142857─────────────────
─────────────────trial: 4 1000000 samples, expect=142857──────────────────
side 1 had 142575 occurrences difference from expected: -282
side 2 had 143139 occurrences difference from expected: 282
side 3 had 142618 occurrences difference from expected: -239
side 4 had 142647 occurrences difference from expected: -210
side 5 had 142204 occurrences difference from expected: -653
side 6 had 143228 occurrences difference from expected: 371
side 7 had 143589 occurrences difference from expected: 732


─────────────────trial: 5 1000000 samples, expect=142857──────────────────
side 1 had 142745 occurrences difference from expected: -112
side 2 had 142906 occurrences difference from expected: 49
side 1 had 142539 occurrences difference from expected: -318
side 3 had 142894 occurrences difference from expected: 37
side 2 had 143490 occurrences difference from expected: 633
side 4 had 142976 occurrences difference from expected: 119
side 3 had 142261 occurrences difference from expected: -596
side 5 had 142265 occurrences difference from expected: -592
side 4 had 142755 occurrences difference from expected: -102
side 6 had 142909 occurrences difference from expected: 52
side 5 had 142976 occurrences difference from expected: 119
side 7 had 143305 occurrences difference from expected: 448
side 6 had 143188 occurrences difference from expected: 331
side 7 had 142791 occurrences difference from expected: -66


─────────────────trial: 9 1000000 samples, expect=142857─────────────────
─────────────────trial: 6 1000000 samples, expect=142857──────────────────
side 1 had 142706 occurrences difference from expected: -151
side 2 had 142344 occurrences difference from expected: -513
side 3 had 143243 occurrences difference from expected: 386
side 4 had 143626 occurrences difference from expected: 769
side 5 had 142555 occurrences difference from expected: -302
side 6 had 142530 occurrences difference from expected: -327
side 7 had 142996 occurrences difference from expected: 139


─────────────────trial: 7 1000000 samples, expect=142857──────────────────
side 1 had 142320 occurrences difference from expected: -537
side 2 had 142510 occurrences difference from expected: -347
side 1 had 142901 occurrences difference from expected: 44
side 3 had 142867 occurrences difference from expected: 10
side 2 had 142950 occurrences difference from expected: 93
side 4 had 143711 occurrences difference from expected: 854
side 3 had 143147 occurrences difference from expected: 290
side 5 had 142732 occurrences difference from expected: -125
side 4 had 142081 occurrences difference from expected: -776
side 6 had 143115 occurrences difference from expected: 258
side 5 had 143423 occurrences difference from expected: 566
side 7 had 142745 occurrences difference from expected: -112
side 6 had 141965 occurrences difference from expected: -892
side 7 had 143533 occurrences difference from expected: 676


─────────────────trial: 10 1000000 samples, expect=142857─────────────────
─────────────────trial: 8 1000000 samples, expect=142857──────────────────
side 1 had 142818 occurrences difference from expected: -39
side 2 had 142681 occurrences difference from expected: -176
side 3 had 142886 occurrences difference from expected: 29
side 4 had 142975 occurrences difference from expected: 118
side 5 had 142987 occurrences difference from expected: 130
side 6 had 142781 occurrences difference from expected: -76
side 7 had 142872 occurrences difference from expected: 15


─────────────────trial: 9 1000000 samples, expect=142857──────────────────
side 1 had 142725 occurrences difference from expected: -132
side 2 had 142865 occurrences difference from expected: 8
side 1 had 143501 occurrences difference from expected: 644
side 3 had 143076 occurrences difference from expected: 219
side 2 had 142404 occurrences difference from expected: -453
side 4 had 142759 occurrences difference from expected: -98
side 3 had 142882 occurrences difference from expected: 25
side 5 had 142593 occurrences difference from expected: -264
side 4 had 143051 occurrences difference from expected: 194
side 6 had 142750 occurrences difference from expected: -107
side 5 had 142479 occurrences difference from expected: -378
side 7 had 143232 occurrences difference from expected: 375
side 6 had 142664 occurrences difference from expected: -193
side 7 had 143019 occurrences difference from expected: 162


─────────────────trial: 11 1000000 samples, expect=142857─────────────────
─────────────────trial: 10 1000000 samples, expect=142857──────────────────
side 1 had 142945 occurrences difference from expected: 88
side 2 had 143142 occurrences difference from expected: 285
side 3 had 142843 occurrences difference from expected: -14
side 4 had 143043 occurrences difference from expected: 186
side 5 had 142558 occurrences difference from expected: -299
side 6 had 142834 occurrences difference from expected: -23
side 7 had 142635 occurrences difference from expected: -222


─────────────────trial: 11 1000000 samples, expect=142857──────────────────
side 1 had 142825 occurrences difference from expected: -32
side 2 had 142870 occurrences difference from expected: 13
side 1 had 143248 occurrences difference from expected: 391
side 3 had 142919 occurrences difference from expected: 62
side 2 had 142878 occurrences difference from expected: 21
side 4 had 143098 occurrences difference from expected: 241
side 3 had 142229 occurrences difference from expected: -628
side 5 had 142627 occurrences difference from expected: -230
side 4 had 142902 occurrences difference from expected: 45
side 6 had 143163 occurrences difference from expected: 306
side 5 had 142685 occurrences difference from expected: -172
side 7 had 142498 occurrences difference from expected: -359
side 6 had 143214 occurrences difference from expected: 357
side 7 had 142844 occurrences difference from expected: -13
</pre>
</pre>