java int随机数_Java随机数Random()

关于random说明:

random模块

提供了一个通过一些算法提供了一个快速的伪随机数生成器,

可制定一个随机数的范围,然后产生此范围中的数字,

随机算法的起源数字为种子数(seed)。

注:种子数与生成的随机数字区间无关。

random对象生成( java.util.Random  /  java.lang.Math.Random;):

1.调用构造方法:

Random random=new Random();

2.调用构造方法,并通过一个种子数创建:

Random random=new Random(10);

8b22ab26ef493287a87a82da4f4b89c6.png

常用方法:

public boolean nextBoolan();   //产生随机布尔值,概率是50%

public double nextDouble();  //随机生成double值,范围 [0,1.0)

public float nextFloat();  //随机生成float的值

public int  nextInt();  //随机生成int值

public int  nextInt(n);  //随机生成小于n的值

8b22ab26ef493287a87a82da4f4b89c6.png

指定区间值随机:

法1

(数据类型)(最小值+Math.random()*(最大值-最小值+1);

(int)(1+Math.random()*(10-1+1);  //产生 [1-10]的int

法2

调用构造方法:Random random=new Random();

接受区间值: (数据类型)  变量名=随机数名称.方法(个数)+区间最小值;

int        r=random.nextInt(80-67+1)+67;  //产生 [67,80]区间的数

产生一个随机负数的方法:

法1  Math类的 negateExact();

Math.negateExact(new Random().nextInt(100));

法2  随机数加入负号

int num=-(new Random().nextInt());

法3  生成随机数乘以-1

int num=(new Random().nextInt())*(-1);

a739ef1ba60c42f0cacc586144e75f71.png

例题:

//1.从键盘上输入3个数,第一个代表要生成的随机数的个数,

//第2个数是随机数区间的最小值,第3个数是随机数区间的最大值.

//根据输入的数据,打印出对应的随机数.

Scanner scanner=new Scanner(System.in);    //生成Scanner对象

System.out.println("请输入随机数的个数:");

int number=scanner.nextInt();                            //接收

System.out.println("请输入随机数区间的的两个值");

int num1=scanner.nextInt();

int num2=scanner.nextInt();

int max=num1>num2?num1:num2;     //计算最大值和最小值

int min=num1

Random random=new Random();     //Random对象

for (int i = 0 ; i < number; i++) {

int randomNumber=random.nextInt(max-min+1)+min;    //生成基于最大值,最小值区间的值

System.out.print(randomNumber+"\t");

}

System.out.println();

//2.从键盘上输入一个整数.再生成10个[10,80]之间的随机数,如果

//随机数中刚好有数字和你输入的数字相同,打印 恭喜你,中奖了.

//如果10个随机数都不与输入的数字相同, 打印,很遗憾,没有中奖.

System.out.println("请输入一个10到80的数:");

int number2 = scanner.nextInt();

Random random2 = new Random();

boolean liky=false;

for (int i = 0; i < 10; i++) {

int r=random2.nextInt(80-10+1)+10;

System.out.print(r+"\t");

if (number2==r) {

liky=true;

}

}

if (liky) {

System.out.println("\n 恭喜你中奖了");

}else {

System.out.println("\n 很遗憾,你没有中奖");

}

scanner.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值