Android:Kotlin Collections.random()在应用程序会话之间重复随机字符序列



我希望为Android应用程序生成一个随机的字母数字值,以附加到字符串中。我们使用Kotlins kotlin.collections.arandom 添加了10位随机数字

我们在相当小的数据集(<10(中看到了这种随机性的间歇性冲突,而且它们似乎只发生在应用程序会话之间(例如,你可以在不重启应用程序的情况下继续生成它们(。

我们附加随机性的扩展方法:

private val values = ('A'..'Z') + ('0'..'9')
internal fun String.appendRandomCharacters(charactersToAdd: Int): String {
val randomness = (1..charactersToAdd).map { values.random() }.joinToString("")
return this + randomness
}

在测试中运行它,我可以生成一百万个随机字符串,而不会出现问题或冲突。

然而,我可以看到,如果应用程序被终止并重新运行,相同的随机字符串会以高频率生成。

我在谷歌上做了一些搜索,但没有取得多大成功,所以我希望StackOverflow能够提供一些线索。

我也遇到了同样的问题,但神奇的是,它与java.util.Random类和Kotlin一起工作,我不断获得相同的重复"随机"值。

最新更新