我有一个二维数组,它有5行5列。我想在这个2D数组中的8个随机位置(选择一个随机行和列)放置字符'1'。
我的做法是调用Random类并生成0到4之间的数字(对于数组的5个位置),然后我有两个for循环运行8次(对于我想要的8个随机位置),一个循环遍历行,另一个循环遍历列。
这是我目前所拥有的代码:
我遇到的问题是“1”不是随机地分布在8个位置上,而是连续地出现在5个位置上。
如何纠正这个问题?
下面是输出的示例:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
“1”没有随机分布在8个位置上。
我做错了什么?
我的做法是调用Random类并生成0到4之间的数字(对于数组的5个位置),然后我有两个for循环运行8次(对于我想要的8个随机位置),一个循环遍历行,另一个循环遍历列。
这是我目前所拥有的代码:
char[][] battleship = new char[5][5];
//I didn't include this but I have a for loop that populates all the rows and columns with a char of '0'
Random random = new Random();
int randomNum = random.nextInt(4);
for (int i = 0; i < 8; i++)
{
for (int o = 0; o < 8; o++)
{
battleship[randomNum][randomNum] = '1';
}
}
我遇到的问题是“1”不是随机地分布在8个位置上,而是连续地出现在5个位置上。
如何纠正这个问题?
下面是输出的示例:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
“1”没有随机分布在8个位置上。
我做错了什么?