[英]to map a range of numbers in an array to uniform random 1 to 100
我有 5 个骰子,每个骰子都掷一次:说结果是骰子 [] = { 1, 1, 1, 1, 1 }
这个骰子[]数组是一个函数的输入说
int random (dice) {
//do some thing with the dice values { 1, 1, 1, 1, 1 } ( as input from user )
//return a uniform random number between 1 to 100
}
规则:唯一的随机源是骰子数组中的值。 我如何将每个值转换为 1 到 100 之间的数字,以便生成的值几乎是统一的
请帮忙
您可以将骰子上的数字分别乘以 1、6、6^2、6^3、6^4。 然后将它们相加并取结果的最后两位数(即,在最后做一个 % 100)。
编辑(感谢 pjs)
最后一步,加 1,这样你就能得到介于 1 和 100 之间的答案,而不是介于 0 和 99 之间的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.