我有一个程序可以生成1到n之间的随机数。
让我们说n = 6。
我让程序生成7个数字并得到以下内容: 3,4,3,1,2,3,6
如何让程序存储 生成的数字和生成每个数字的次数。答案是这样的:
3次出现了3次。
4次出现了。
1次出现了一次。
6次出现了2次。
答案 0 :(得分:1)
int one=0;
int two=0;
int three=0;
int four=0;
int five=0;
int six=0;
int myRandomNumber = yourRandomizerMethod();
switch (myRandomNumber) {
case 1: one++;
break;
case 2: two++;
break;
case 3: three++;
break;
case 4: four++;
break;
case 5: five++;
break;
case 6: six++;
break;
}
答案 1 :(得分:1)
如何让程序存储生成的数字和数量 每个号码都已生成?
我不应该给你直接的程序。
考虑一下。
Counter
和Value
,以便找到关于Collection Framework
Iterate
通过已存储的内容。Counter=1
新增<。li>
现在用于此目的。
您可能会发现CollectionFrameWork教程很有趣。
答案 2 :(得分:0)
将每个号码存储在地图中:
Map<Integer, Integer> numberCounts = new HashMap<>();
int n = 7;
int limit = 100;
Map<Integer, Integer> numberCounts = new HashMap<>();
Random random = new Random();
for (int i = 0 ; i < n; i++) {
int randNum = random.nextInt(limit);
Integer count = numberCounts.get(randNum);
if (count == null) {
count = Integer.valueOf(1);
} else {
count = count.intValue() + 1;
}
numberCounts.put(randNum, count);
}
for (Map.Entry<Integer, Integer> entry : numberCounts.entrySet()) {
System.out.println(entry.getKey() + " came up "
+ entry.getValue() + ((entry.getValue() > 1) ? " times" : " time"));
}
答案 3 :(得分:0)
您可以使用哈希映射。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
当您生成随机数时,您可以检查它是否在您之前的数字地图中,如果它不是,那么您添加它并将其关联到1.如果它在您的地图中然后您增加伯爵。
Integer n = map.get(generatedRandomNumber);
if(n == null) {
n = new Integer(1);
} else {
n = n.add(1);
}
map.put(generatedRandom, n);