How to resolve the algorithm Seven-sided dice from five-sided dice step by step in the Ring programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Seven-sided dice from five-sided dice step by step in the Ring programming language
Table of Contents
Problem Statement
(Given an equal-probability generator of one of the integers 1 to 5 as dice5), create dice7 that generates a pseudo-random integer from 1 to 7 in equal probability using only dice5 as a source of random numbers, and check the distribution for at least one million calls using the function created in Simple Random Distribution Checker.
Implementation suggestion: dice7 might call dice5 twice, re-call if four of the 25 combinations are given, otherwise split the other 21 combinations into 7 groups of three, and return the group index from the rolls. (Task adapted from an answer here)
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Seven-sided dice from five-sided dice step by step in the Ring programming language
Source code in the ring programming language
# Project : Seven-sided dice from five-sided dice
for n = 1 to 20
d = dice7()
see "" + d + " "
next
see nl
func dice7()
x = dice5() * 5 + dice5() - 6
if x > 20
return dice7()
ok
dc = x % 7 + 1
return dc
func dice5()
rnd = random(4) + 1
return rnd
You may also check:How to resolve the algorithm Variable declaration reset step by step in the V (Vlang) programming language
You may also check:How to resolve the algorithm First class environments step by step in the EchoLisp programming language
You may also check:How to resolve the algorithm Sum of elements below main diagonal of matrix step by step in the Phix programming language
You may also check:How to resolve the algorithm Loops/Foreach step by step in the Lang5 programming language
You may also check:How to resolve the algorithm Zig-zag matrix step by step in the Pascal programming language