将rand5映射到范围内的数字

maz*_*maz 1 random algorithm

我有一个名为Rand5的函数,它提供1到5之间的随机数.
我连续三次打电话给Rand5,所以我在1-5之间有三个数字.例如:(1,1,1),(1,2,5),等.

有125种可能的选项,我想将125个选项映射到1到125之间的数字.

所以:
(1,1,1)映射到1.
(1,1,5)映射到5.
(1,2,2)映射到7.
(5,5,5)映射到125.

你能用伪代码帮我吗?

谢谢!

sha*_*cov 5

鉴于你有三个数字(a,b,c),你可以使用这个等式:

result = (a-1) * 5^2 + (b-1) * 5 + c
       = 25*a + 5*b + c - 30
Run Code Online (Sandbox Code Playgroud)

这是基于Rand5返回数字[1,..,5],而不是[0,..4]像一些随机函数那样...

要添加一些背景说明,此等式将三个随机数视为基数5中的三位数:

abc(base 5) = (5^2 * a) + (5 * b) + c
Run Code Online (Sandbox Code Playgroud)