最近我开始学习Java并且遇到了很多问题。我试过在网站上搜索,但我似乎无法得到我需要的答案。抱歉,如果有答案,那就是我的错误。
请先查看我的代码:
import java.util.Random;
public class Test {
public static void main (String args[]) {
Random num = new Random();
int[][] multi = new int [3][];
int test = 1; // comments for stackoverflow questions
int test2 = 10; // how can i create something that will range from 1-9?
int test3 = test2-test; // trying this has always generated 0-9 instead
multi[0] = new int [] {num.nextInt(test3), num.nextInt(test3), num.nextInt(test3)};
multi[1] = new int [] {num.nextInt(test3), num.nextInt(10), num.nextInt(10)};
multi[2] = new int [] {test3, test3, num.nextInt(10)};
// PLEASE IGNORE THE 2D ARRAYS, it's just something I am testing on
int rows = 3;
int columns = 3;
for(int i=0; i<rows; i++) {
for (int j=0; j<columns; j++) {
System.out.print(multi[i][j] + "\t");
}
System.out.println();
}
}
}
我正在尝试模拟累积奖金,我希望在我创建的所有2D数组中生成1到9之间的数字。但是我不知道如何在 1到9 之间生成数字,我只创建范围 0-10 和 0-9
我的想法是,一旦我完成了这个范围 1-9 的2D数组,那么我就可以使用一定数量的 if-else 语句来使用户只要中心行或对角线行有3个相同的数字,就赢得累积奖金。
我也尝试过使用:
int test3 = num.nextInt(test2-test+1)-test;
这会在 1-9 之间生成数字,但是如果我要全部使用它,它将始终为我生成相同的数字,否则由于负数而给出异常。
答案 0 :(得分:1)
如果您只想要包含1和9之间的随机数,这应该会有所帮助:
Random r = new Random();
int num = r.nextInt(9) + 1;
答案 1 :(得分:0)
从1-9生成值:
Random random = new Random();
int n = random.nextInt(9) + 1;
要在您的情况下应用此功能:
multi[0] = new int []
{num.nextInt(9) + 1, num.nextInt(9) + 1, num.nextInt(9) + 1};
答案 2 :(得分:0)
您可以生成如下随机数:
Math.rand() * i // Generate number between 0 and i-1
或
Math.rand() * i + 1 // Generate number between 1 and i