Java 创建没有重复数字的宾果卡
我需要帮助创建一个宾果卡,没有重复的号码。我还是Java编程的新手。到目前为止,这是我唯一的想法。我真的很感谢你们的帮助Java 创建没有重复数字的宾果卡,java,Java,我需要帮助创建一个宾果卡,没有重复的号码。我还是Java编程的新手。到目前为止,这是我唯一的想法。我真的很感谢你们的帮助 import java.util.Arrays; import java.util.Random;` import static java.lang.System.out; public class Exercise { /** * @param args */ public static void main(String[] args) { Random r
import java.util.Arrays;
import java.util.Random;`
import static java.lang.System.out;
public class Exercise {
/**
* @param args
*/
public static void main(String[] args) {
Random rd = new Random();
int[][] bingo = new int[5][5];
String title = "B\tI\tN\tG\tO";
out.print(title);
for (int i = 0; i < bingo.length; i++) {
out.println();
int num = 1;
for (int idx = 0; idx < bingo[i].length; idx++) {
if (i == 2 && idx == 2) {
out.print("X\t");
continue;
}
out.print(rd.nextInt(15)+ num + "\t");
num += 15;
}
}
}
导入java.util.array;
导入java.util.Random`
导入静态java.lang.System.out;
公开课练习{
/**
*@param args
*/
公共静态void main(字符串[]args){
随机rd=新随机();
int[][]宾果=新int[5][5];
字符串title=“B\tI\tN\tG\tO”;
打印(标题);
for(int i=0;i
}将尚未提取的号码存储在列表中,然后随机添加到卡中。当您添加一个数字时,您会将其从列表中删除,这样它就不会再次被选中 像这样:
List<Integer> numbers = new ArrayList<Integer>() {{
add(1);
add(2);
add(3);
...
add(70);
}};
for (int x = 0; x < 5; x++) {
for (int y = 0; y < 5; y++) {
bingo[x][y] = numbers.get(numbers.remove(new Random().nextInt(numbers.size()));
}
}
List number=new ArrayList(){{
增加(1);
增加(2);
增加(3);
...
增加(70);
}};
对于(int x=0;x<5;x++){
对于(int y=0;y<5;y++){
bingo[x][y]=numbers.get(numbers.remove(new Random().nextInt(numbers.size());
}
}
希望对您有所帮助。将尚未记录的号码存储在列表中,然后将其随机添加到卡中。添加号码时,您会将其从列表中删除,这样就不会再次被选中 像这样:
List<Integer> numbers = new ArrayList<Integer>() {{
add(1);
add(2);
add(3);
...
add(70);
}};
for (int x = 0; x < 5; x++) {
for (int y = 0; y < 5; y++) {
bingo[x][y] = numbers.get(numbers.remove(new Random().nextInt(numbers.size()));
}
}
List number=new ArrayList(){{
增加(1);
增加(2);
增加(3);
...
增加(70);
}};
对于(int x=0;x<5;x++){
对于(int y=0;y<5;y++){
bingo[x][y]=numbers.get(numbers.remove(new Random().nextInt(numbers.size());
}
}
希望这会有所帮助。通常的做法是在列表中填入所有您想要使用的数字,然后使用
集合。shuffle
将其洗牌
private static class Bingo {
final int[][] card;
public Bingo(int size) {
// Create it.
card = new int[size][size];
// Fill it with 1, 2, ... by
// First create my seed list of all numbers I want.
List<Integer> seed = new ArrayList<>(size * size);
for (int i = 0; i < size * size; i++) {
seed.add(i+1);
}
// Shuffle it.
Collections.shuffle(seed);
// Fold it into my card.
for (int i = 0; i < seed.size(); i++) {
card[i / size][i % size] = seed.get(i);
}
}
@Override
public String toString() {
return Arrays.deepToString(card);
}
}
public void test() {
Bingo bingo = new Bingo(5);
System.out.println(bingo);
}
私有静态类宾果{
最终int[][]卡;
公共宾果(整数大小){
//创造它。
卡片=新整数[大小][大小];
//用1,2,…填充它
//首先创建我想要的所有数字的种子列表。
列表种子=新的ArrayList(大小*大小);
对于(int i=0;i
执行此操作的常用方法是将要使用的所有数字填入列表,并使用集合。shuffle
将其洗牌
private static class Bingo {
final int[][] card;
public Bingo(int size) {
// Create it.
card = new int[size][size];
// Fill it with 1, 2, ... by
// First create my seed list of all numbers I want.
List<Integer> seed = new ArrayList<>(size * size);
for (int i = 0; i < size * size; i++) {
seed.add(i+1);
}
// Shuffle it.
Collections.shuffle(seed);
// Fold it into my card.
for (int i = 0; i < seed.size(); i++) {
card[i / size][i % size] = seed.get(i);
}
}
@Override
public String toString() {
return Arrays.deepToString(card);
}
}
public void test() {
Bingo bingo = new Bingo(5);
System.out.println(bingo);
}
私有静态类宾果{
最终int[][]卡;
公共宾果(整数大小){
//创造它。
卡片=新整数[大小][大小];
//用1,2,…填充它
//首先创建我想要的所有数字的种子列表。
列表种子=新的ArrayList(大小*大小);
对于(int i=0;i
您需要什么帮助?上面的代码中是否有任何错误/异常?没有错误。只是它会显示重复的数字。当我尝试运行代码时,会出现这种情况。如下所示:B I N G O 5 26 32 50 61 1 17 42 55 67 13 17 X 37 47 3 22 37 52 69 12 18 45 60 61,正如您所看到的,17显示两次。您可以添加所有记录N对列表进行编号并检查新随机数是否在列表中,是否只是获取一个新随机数。您需要什么帮助?上述代码中是否有任何错误/异常?没有错误。只是它将显示重复的数字。当我尝试运行代码时,这将出现。如下所示:BIN G 5 26 32 50 61 1 17 42 55 67 13 X 37 47 3 2237 52 69 12 18 45 60 61如您所见,17显示两次。您可以将所有获取的数字添加到列表中,并检查新随机数是否在列表中,如果它只是获取一个新随机数。您不必同时调用get()
和remove()
,remove()
返回删除的元素。一个集合比一个列表更有意义,不是吗?同样,一个循环填充它比一百个手动调用add
更有意义。您不必同时调用get()
和remove()
,remove()
返回删除的元素。一个集合比一个列表更有意义,不是吗?同样,一个循环比一百次手动调用添加
更有意义。