我做了代码,在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);
}
}
}
答案 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
。