1

我做了代码,将一个介于 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);
        }

    }

}
4

2 回答 2

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 和方法仅供参考。

于 2013-02-03T18:31:57.313 回答
0

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

public int generateRandomNumberBetween0And100()

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

public int generateRandomNumberBetween0And(int topValue)

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

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.

于 2013-02-03T18:34:46.610 回答