int[][] array = new int[5][5];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.print(1);
}
System.out.println();
}
嗨,伙计们,我有这个阵列,可以打印5x5 1
11111
11111
11111
11111
11111
我想做的是随机地将这些1中的三(3)个设为0。实例
11101
11111
11011
10111
11111
我该怎么做?提前感谢您!
为了好玩,这里有一个稍微不同的解决方案。创建一个数字从0到24的列表,洗牌列表并从中选择3个第一个元素来更新2D数组。数字序列意味着数组中不相同的位置将不止一次设置为0。
List<Integer> sequence = IntStream.rangeClosed(0, 24)
.boxed()
.collect(Collectors.toList());
Collections.shuffle(sequence);
for (int i = 0; i < 3; i++) {
int value = sequence.get(i);
int row = value / 5;
int column = value % 5;
array[row][column] = 0;
}
生成序列的代码来自此答案
对于随机的东西,你可以使用Math.random()。它返回一个介于 0 包含和 1 排除之间的随机双精度。你可以这样做:
int w = 5, h = 5;
int[][] array = new int[w][h];
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
array[i][j] = 1;
}
}
for (int c = 0; c < 3; c++) {
int i, j;
do {
int index = (int)(Math.random() * w * h);
i = index / w;
j = index % w;
} while (array[i][j] == 0);
array[i][j] = 0;
}
仅当与数组的总大小相比,0的数量较低时,此解决方案才是可接受的。如果0的数量太大,这段代码将会非常低效,因为我们将随机搜索值1
您必须首先用1初始化数组:
int[][] array = new int[5][5];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
array[i][j] = 1;
}
}
然后在3个随机位置设置0:
Random random = new Random();
int a = 0;
while (a < 3) {
int i = random.nextInt(array.length);
int j = random.nextInt(array[0].length);
if(array[i][j] != 0) {
array[i][j] = 0;
a++;
}
}
使用此方法时,数组中的每个条目都有相同的几率变为 0。最后,您应该打印数组:
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
这个问题是Java-Math.random()的扩展:选择13×13三角形数组的元素。我随机选择两个数字(包括 0-12),我希望这些值相等。 但现在,由于这是一个乘法游戏,我希望有一种方法来偏置结果,以便某些组合出现得更频繁(比如,如果玩家在12x8时表现得更差,我希望它出现得更频密)。最终,我想偏向于91种组合中的任何一种,但一旦我把这一点写下来,那就不难了。 我的想法:添加一些到三角形数和以
问题内容: 当他每次运行程序时都不断获得相同的数字时,我试图向Java解释随机数生成器。我为同一件事创建了自己的简单版本,每次运行该程序时,我也得到了与他得到的确切数字相同的数字。 我究竟做错了什么? 100个数字中的最后五个数字是: 问题答案: 您已经为随机数生成器提供了恒定的值。它是确定性的,因此每次运行都会生成相同的值。 我不确定您为什么选择使用作为种子,但是种子值与生成的值范围无关(这是由
问题内容: 我正在尝试获取一个随机数列表,并将其放入队列中,而不会重复任何随机数。 通过上面的代码,我得到了一些随机数的重复 有人知道怎么做吗? 问题答案: 这个怎么样: 在某个范围内“添加唯一的随机数”等效于将范围内的所有数字相加,然后对结果进行混排。
问题内容: 我上面有一个方法,该方法应生成用户指定的随机元素数组。随机生成的整数应介于0到10之间(含0和10)。我能够生成随机整数,但是我遇到的问题是检查唯一性。我尝试检查唯一性是在上面的代码中,但是数组仍然包含整数的重复项。我做错了什么,有人可以给我提示吗? 问题答案: 您确实找到重复的值。但是,您将其替换为另一个可能重复的随机数。相反,请尝试以下操作: 但是,这种方法效率低下。我建议列出数字
问题内容: 我正在编写一个从整数n创建2D数组的程序。然后,我必须用从1到n n数组大小的 值填充数组, 并检查它是否是一个幻方。 我现在的方式是按照从1到n n数组大小的 顺序填充 数组。我该如何随机? 我的代码: 问题答案: 创建一个随机的数字列表以添加到您的数组中,如下所示:
问题:写一个读取实数列表的程序。程序结束后,它应该只打印出唯一的数字。也就是说,只在列表中出现一次的数字。如果列表上有超过50个唯一的数字,那么您应该只打印前50个。 input.txt文件= 结果-唯一数为