每当我用jetpackcompose在kotlin中运行代码时,随机数函数都会返回相同的数字



这是我的代码;

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
StackOverFlowQuestionExampleTheme {
val randomNumber =(0..10).random()
println(randomNumber)
}
}
}
}

结果(每次(;

I/System.out: 9

为什么是这样?每次我打电话时如何获得随机数?

编辑;我看到,当我们复制相同的代码时,不会得到相同的结果,所以我正在编辑这个问题。当我使用喷气背包组合时,我会得到这个结果,也许这就是问题所在。

edit2;我编辑了问题的标题,因为我意识到问题是由喷气背包组成引起的。

我希望我的答案会有用,试试这个代码,它对我来说很好:


val generatByRandom = Random(System.currentTimeMillis())
val randomNumber= randomGenerator.nextInt(0, 10)
println(randomNumber)

使用类似的更准确的

val myRandomValues = List(1) { Random.nextInt(0, 10) }
val myRandomValues = List(5) { Random.nextInt(0, 30) }

此处输出,例如:[8,21,16,29,16]

val random1 = (0..100).shuffled().last()

geeksforgeeks中,我找到了与您使用的代码相同的代码,但有一些更改如下。可能对你有帮助

对于Kotlin>1.3

val randomNumber = (0..10).random()
println(randomNumber) 

对于Kotlin<1.3

val randomNumber = Random().nextInt(10+1 - 0) + 0
println(randomNumber)

源链接:https://www.geeksforgeeks.org/how-to-generate-a-random-number-from-a-range-in-android/

最新更新