首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在方法中生成随机数

在方法中生成随机数
EN

Stack Overflow用户
提问于 2013-02-04 02:11:04
回答 2查看 6.6K关注 0票数 1

我做了代码,在1和100之间设置一个随机数作为任务A),然后我如何理解如果第一个值大于50就会产生第二个介于1和50之间的随机数(我是如何思考的)

请任何人解释一下任务C和D是什么,根本不知道怎么做。((请帮助解释任务C和D。

谢谢……

任务:

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

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

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

c)编写另一个方法,以便您向其传递两个值-您想要的最大值范围的顶部和底部-即,如果您传递给它10到20,它将返回一个介于10和20之间的随机数。

d)然后编写另一个方法,以便如果重复调用,它不会返回两个相同的数字?因此,一旦生成并返回一个随机数,该方法就不会再次返回该数。要做到这一点,你必须存储生成的每个数字。

代码语言:javascript
运行
复制
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);
        }

    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-04 02:34:47

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

代码语言:javascript
运行
复制
public int generateRandomNumberBetween0And100()

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

代码语言:javascript
运行
复制
public int generateRandomNumberBetween0And(int topValue)

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

代码语言:javascript
运行
复制
public int generateRandomNumberBetween(int bottomValue, int topValue)

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

代码语言:javascript
运行
复制
public int generateUniqueRandomNumber()

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

代码语言:javascript
运行
复制
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

票数 0
EN

Stack Overflow用户

发布于 2013-02-04 02:31:57

c:

代码语言:javascript
运行
复制
public Integer randomC(Integer min, Integer max) {
    //int min = 0, max = 0;
    ...
}

d:

代码语言:javascript
运行
复制
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和方法是为了提供信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14675568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档