java 取范围内的随机数,比如取10000至99999

Python012

java 取范围内的随机数,比如取10000至99999,第1张

公式:Math.random()*(n-m)+m,生成大于等于m小于n的随机数

按公示取随机数10000至99999[10000,99999):

故:Math.random()*(99999-10000)+10000

Math.random() 方法能返回大于等于 0.0 且小于 1.0 double 型数值。\x0d\x0a即它的取值区间为[0,1),包括 0 不包括 1。\x0d\x0a你需要做的是把范围放大,怎么放大一个数?当然是用乘法啦。\x0d\x0a放大多少,就看你取值区间的范围多大,以第一个区间为例是[1,50],那么变化范围是 50-1=49\x0d\x0a那么就是 Math.random()*49,这样就能得到 [0,49] 范围里的数了。但是你要的是 [1,50] 怎么办?\x0d\x0a很简单嘛,每个得出来的数都加上取值区间的第一个数,在这里是加 1 ,就OK了。\x0d\x0a所以最后你要的表达式就是:Math.random()*49+1 ,就能得到 [1,50) 的取值了。\x0d\x0a有两点要注意的:\x0d\x0a第一,这里 50 这边是小括号,也就是不包含在内的。需要它的话,你要是用取整或者增大变化范围,比如到 51 的办法。\x0d\x0a第二,这里得到的数值类型是 double 型的,如果你需要其它类型,也要进一步处理。