Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数组中的数字范围映射为均匀随机1到100_Java_C++_Random_Uniform - Fatal编程技术网

Java 将数组中的数字范围映射为均匀随机1到100

Java 将数组中的数字范围映射为均匀随机1到100,java,c++,random,uniform,Java,C++,Random,Uniform,我有5个骰子,每个骰子掷一次:假设结果是骰子[]={1,1,1,1} 这个dice[]数组是一个函数的输入 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

我有5个骰子,每个骰子掷一次:假设结果是骰子[]={1,1,1,1}

这个dice[]数组是一个函数的输入

 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之间。

听起来您试图在1到100之间的任意位置生成随机数。你可以检查C++ RAND()函数的工作原理,或者java数学。p> 没有。问题是“唯一的随机性来源是骰子数组中的值”。不要忘记添加一个,将范围从[0,99]移动到[1100]。有些垃圾箱比其他垃圾箱出现的频率稍高,但这是不可避免的,因为6**5不能被100整除。@pjs哦,关于+1的观点很好。我知道这并不是完全一致的,但这个问题指定了“几乎一致的一代”。是的,我也注意到了“几乎”。我仍然明确地检查了它,箱子计数要么是77要么是78,也就是说,它们只相差1。我看不出你还能做得更好。