java - 在 Java 中均匀地生成一个范围内的安全随机数

标签 java security random

如何生成一个范围内的安全统一随机数?范围可以在 0 到 100 之间。(上限不是 2 的幂)。

java.security.SecureRandom似乎提供范围 0..2^n

最佳答案

你可以做到

Random rand = new SecureRandom()
// 0 to 100 inclusive.
int number = rand.nextInt(101);

// 0 inclusive to 100 exclusive.
int number = rand.nextInt(100);

注意:这比说 (int) (rand.nexDouble() * 100) 更有效,因为 nextDouble() 需要创建至少 53 位的随机性,而 nextInt(100) 创建少于 7 位。

关于java - 在 Java 中均匀地生成一个范围内的安全随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28742702/

相关文章:

java - 序列化一个静态类

java - 在 Notes 客户端中运行时 Domino 代理程序问题 - 在服务器上运行良好

linux - seccomp-bpf 如何过滤系统调用?

python - Python/Django 中的个性化/随机 URL

java - 在 Java 中使用随机运算符创建最小值

c++ - 随机生成的排序数组 : search performances comparison

java - 在通过方法调用创建的数组中打印位置 0

java - 如何处理selenium中的自动建议

java - 返回任何字符串中的第一个单词 (Java)

security - cgi-bin 目录内容 : What else can be stored there, 除了 CGI 脚本/可执行文件?