让JAVA程序记住生成的随机数

时间:2014-05-07 02:44:32

标签: java random

我有一个程序可以生成1到n之间的随机数。

让我们说n = 6。

我让程序生成7个数字并得到以下内容: 3,4,3,1,2,3,6

如何让程序存储 生成的数字生成每个数字的次数。答案是这样的:

3次出现了3次。

4次出现了。

1次出现了一次。

6次出现了2次。

4 个答案:

答案 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)

  

如何让程序存储生成的数字和数量   每个号码都已生成?

我不应该给你直接的程序。

考虑一下。

  • Java就是OOP
  • 您需要存储CounterValue,以便找到关于Collection Framework
  • 的内容
  • 您必须Iterate通过已存储的内容。
  • 找到If Number Exist Increment Counter,如果不是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);