在方法中生成随机数

时间:2013-02-03 18:11:04

标签: java random dice

我做了代码,在1到100之间做一个随机数作为任务A),然后我如何理解如果超过50的第一个值产生1到50之间的第二个随机数,如所述(我认为)任务B )

请任何人都可以解释C和D的任务是什么,而不是理解如何去完成它。(((请帮助建议或解释任务C和D。

...谢谢

任务:

编写一个生成随机数的程序:

a)+编写一个返回1到100范围内随机整数的方法。

b)然后添加另一个方法,该方法采用指定顶部数字的参数 - 即如果你传递它50,则返回1到50之间的随机数。测试你的随机方法并确保它有效。

c)编写另一种方法,以便传递两个值 - 您希望得到最高值的范围的顶部和底部 - 即如果您将其传递给10和20,则返回10到20之间的随机数。

d)然后写另一个方法,如果反复调用它不会返回两个相同的数字?因此,一旦生成并返回了随机数,该方法就不会再次返回该数字。为此,您必须存储生成的每个数字。

import java.util.Random;

public class ranGen {

    public Integer random (Integer integer){
        Random rand = new Random();;
        int min=0, max=100;
        int randomNum = rand.nextInt(max - min + 1) + min;

        System.out.println(randomNum);
        return randomNum;
        }


    public void random50 (Integer integer){


        Random rand = new Random();;
        int min=0, max=50;
        int randomNum = rand.nextInt(max - min +1) + min;

        System.out.println(randomNum);
        }


    public static void main(String[] args) {
        ranGen process = new ranGen();

        if(process.random(null) > 50){
            process.random50(null);
        }

    }

}

2 个答案:

答案 0 :(得分:0)

C:

public Integer randomC(Integer min, Integer max) {
    //int min = 0, max = 0;
    ...
}

d

public class ranGen {
    ArrayList<Integer> nums;
    ...

    public Integer randomD() {
        ...
        randomNum = rand.nextInt(max - min + 1) + min;
        while(nums.Exists(randomNum)) {
            randomNum = rand.nextInt(max - min + 1) + min;
        }
        nums.Add(randomNum);
        return randomNum;
    }
}

注意:此处显示的arraylist和方法用于信息目的。

答案 1 :(得分:0)

看来,作业的目标是让你了解哪些方法参数。第一步是编写一个方法,返回1到100范围内的随机整数。所以这个方法没有任何参数。它的签名应该是

public int generateRandomNumberBetween0And100()

第二步是编写一个方法,该方法采用指定顶部数字的参数。因此它的签名应该是:

public int generateRandomNumberBetween0And(int topValue)

第三步是编写一个方法,将两个值作为参数:bottom和top值。因此它的签名应该是:

public int generateRandomNumberBetween(int bottomValue, int topValue)

最后一步有点棘手。它要求您记住方法已生成的值,并避免再次生成它们。没有参数。它的签名应该是

public int generateUniqueRandomNumber()

它的实现基本上应该做到以下几点:

1. generate random number
2. if random number is in the set of already generated numbers, go to 1
3. store the generated number in the set of already generated numbers
4. return the generated number.

当然,已经生成的数字集合在开头就是空的。

请注意,您应使用int而不是Integer。没有理由接受null作为参数,并且方法永远不应该返回null。因此原始int类型应该是首选。

另请注意,这些方法不应打印生成的数字,而应return。因此,他们应该int作为返回类型,而不是void

按照惯例,课程以大写字母开头,不要隐瞒单词。因此,您的课程应命名为RandomGenerator

相关问题