【发布时间】:2016-02-28 22:32:34
【问题描述】:
在这段代码中,我从一个数组中找到了重复项,我想删除它们。然后输出将是唯一生成的数字。我需要使用 math.random 和 modulo。有人有任何线索吗?我试图将它们存储在一个数组中,但是原始数组有 0,而 0 是我的随机数生成域的一部分(从 0 到 52)。
public class Decks {
public static void main(String[] args) {
generate();
}
public static void generate() {
int deckOfCard[] = new int[52];
for (int counts = 0; counts < 52; counts++) {
deckOfCard[counts] = (int) (Math.random() * 51);
}
for (int i = 0; i < deckOfCard.length - 1; i++) {
for (int j = i + 1; j < deckOfCard.length; j++) {
if ((deckOfCard[i] == (deckOfCard[j])) && (i != j)) {
System.out.println("DUPLICATE " + deckOfCard[i]);
}
}
}
for (int count = 0; count < deckOfCard.length; count++) {
System.out.print("\t" + deckOfCard[count]);
}
}
【问题讨论】:
-
您可以使用列表,使用负数来表示“已移除”的卡片,或者将值保存在新数组中。
-
你的目标是:先生成52个数字,然后删除重复的?或者,正好生成 52 个
unique数字? -
我的目标是准确生成 52 个唯一数字,但我必须使用 math.random 和模数来创建它们并将它们存储在数组中。