将rand5映射到范围内的数字



我有一个名为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。
CCD_ 6映射到125。

你能帮我处理伪代码吗。

谢谢!

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

result = (a-1) * 5^2 + (b-1) * 5 + c
       = 25*a + 5*b + c - 30

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

为了增加一点背景解释,这个等式将三个随机数视为以5为基数的三位数:

abc(base 5) = (5^2 * a) + (5 * b) + c

最新更新