如何获得两个数字之间的随机数,比如20到30?
我试过了:
<!--main.html-->
<head>
</head>
<body>
<form action="submit">
<input type="text" id="myVal">
<div id="react-info"></div>
</form>
<footer>
<button id="startButton">START</button>
</footer>
</body>
这只允许上限值,但值始终从0开始。有没有办法设置下限值(在示例中为20)?
谢谢!
答案 0 :(得分:25)
您可以在下方使用。开始和结束都将是包容性的。
val start = 20
val end = 30
val rnd = new scala.util.Random
start + rnd.nextInt( (end - start) + 1 )
在你的情况下
val r = new scala.util.Random
val r1 = 20 + r.nextInt(( 30 - 20) + 1)
答案 1 :(得分:16)
不确定。只是做
20 + r. nextInt(10)
答案 2 :(得分:6)
从Scala 2.13
,scala.util.Random
开始提供
def between(minInclusive: Int, maxExclusive: Int): Int
如下使用,它在20(包括)和30(排除)之间生成一个Int
:
import scala.util.Random
Random.between(20, 30) // in [20, 30[
答案 3 :(得分:3)
同时将math.random
值(0
和1
之间的范围缩放到感兴趣的区间,并将Double
转换为Int
,例如
(math.random * (30-20) + 20).toInt
答案 4 :(得分:2)
您可以使用java.util.concurrent.ThreadLocalRandom作为选项。在多线程环境中更可取。
val random: ThreadLocalRandom = ThreadLocalRandom.current()
val r = random.nextLong(20, 30 + 1) // returns value between 20 and 30 inclusively