我需要一些帮助或提示。有一个代码:
public class RandomInArray {
public static void main(String[] args) {
Random random = new Random();
int[] array = random.ints(8, 0, 2).toArray();
System.out.println(Arrays.toString(array));
}
}
示例:[1,0,1,0,0,1,0,1]
数组中每4个数字的和必须至少为2。示例:[1,0,1,0,0,1,0,1]从第一个1+0+1+0是正确的,和是>=2。比:0,1,0,0,和为1。不正确。1,0,0,1,和是2。对的。0,1,0,1,和是2。对的。如何扩展该方法,以便每次打印出正确的数组中元素的随机混合?有8个元素的正确例子。如果例如20个元素,更少或更多,结果应该是相同的。正确示例:
[1,0,0,1,1,1,1,0]
[1,1,0,1,0,0,1,1]
[0,1,1,0,1,0,1,0]
[1,1,1,1,1,1,1,1]
1条答案
按热度按时间bjp0bcyl1#
如果你对随机数设置一个条件,那么它们就不再是随机数了。您可以随机生成前两个数字,然后使用一组更有限的选项来选择下两个。
(0,0)后面必须跟(1,1)
(0,1)或(1,0)后面可以跟(0,1)或(1,0)
(1,1)后面可以跟(0,0)、(0,1)、(1,0)或(1,1)
然后把你的帧移1,看最后三个已经选择的数字。这三者之和将限制下一个数字的可能性。