Java - 生成随机数,限制生成的数量

时间:2017-03-16 00:49:41

标签: java random

我需要生成8个随机数:4个为“1”,另外4个为“2”,然后将它们分配给一个数组。我已经有了生成随机数的代码:

1 + (int)(Math.random() * ((2 - 1) + 1))

我需要做的是以随机顺序排列四个“1”和四个“2”。

2 个答案:

答案 0 :(得分:2)

您根本不需要随机数。你想要4个1和4个2,以随机顺序。所以用[1,1,1,1,2,2,2,2]和 shuffle 填充数组。 Google“Fisher-Yates”。

答案 1 :(得分:0)

我不打算给你一个完整的答案,因为那样你就不会从中学习。我将通过举一个你可以在你的情况下使用的随机播放的例子来回答你的问题。这是一个自动调整数组的方法:

wc -c

然后你可以对你的数组实现这个,假设你的数组是public void shuffle(int[] t){ int temp = 0; int j = 0; for(int i = 0; i < t.length; i++){ j = (int)(Math.random() * t.length); temp = t[j]; t[j] = t[i]; t[i] = temp; } } 。然后,您需要使用您的方法链接两者:

int[] t = {1,1,1,1,2,2,2,2};