请问如何用带参构造确定最大值的方法求随机数

请问如何用带参构造确定最大值的方法求随机数

例如,需求创建一个class,求两个随机数,一个求随机数1-5,一个求1-10,希望最大值5和10在带参构造中被指定,请问如何做到?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,Math.random()是返回一个Double类型的0到1的随机数,如:Math.random()*5就是把产生的数乘以5,如:0*5=0,1*5=5,也就是说变成了成0到5产生随机数。(int)(Math.random()*5+1)就是从1到6产生随机数,然后取整数,说白了就是从1,2,3,4,5中随机出现一个数。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


好帮手慕小尤 2020-04-06 12:00:27

同学你好,在苍星乱舞同学的代码中 int x; int y;代表生成随机数,int n,int m是调用Random()构造方法传递的参数,如下所示:

http://img1.sycdn.imooc.com//climg/5e8aa86c098eeb8d08220454.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕婉清1228867 #1
    public class Random { int x;//random1-5 int y;//random1-10 public Random(int n, int m) {//n,m is max value x = (int) (Math.random() * n + 1); y = (int) (Math.random() * m + 1); } public static void main(String[] args) { Random one = new Random(5,10); System.out.println("第一个随机数是:"+one.x+"\n第二个随机数是:"+one.y); } } 谢谢老师和这位同学,代码部分已经明白。我想继续提问一下。我知道一种随机数方法是(数据类型)(最小值+Math.random()*(最大值-最小值+1)),这个我能理解。 但是这位同学提供的是什么原理呢?可否解释一下。
    2020-04-06 18:31:10
苍星乱舞 2020-04-05 07:01:04
public class Random{
    int x;
    int y;
    public Random(int n,int m){
        x = (int)(Math.random()*n +1);
        y = (int)(Math.random()*m +1);
    }
}

你调用时传5和10过去就行。

  • 提问者 慕婉清1228867 #1
    不好意思我不太明白,x,y,n,m都代表什么?
    2020-04-05 19:07:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师