java - 创建随机值的最佳方法是什么?

标签 java random

我正在尝试为我的游戏创建随机值以在屏幕上显示敌人。但有时会显示 2 有时会显示 3 ...我想问哪个是创建随机值的最佳公式..这是我迄今为止的随机值

 random = 1 * (int) (Math.random() * 100);

最佳答案

“但是有时会显示 2,有时会显示 3”

给定完全随机的数字...在从 0 到 99 的每 100 个随机值中,您会发现平均有 1.0 个 double 。每 10,000 个值平均会出现一次三元组。给定 1000 万个随机数,java.util.Random 在我的机器上产生以下结果:

Doubles: 99873
Triples: 985

Double Rate: 1 in 100
Triple Rate: 1 in 10152

Source code:

import static java.lang.System.*;

import java.util.Random;

public class Sandbox {
    public static final int NUM_ITERATIONS = 10000000;
    public static void main(String[] args) {
        Random rand = new Random();

        int cur;
        int last = -1;
        int secondLast = -2;
        int nDoubles = 0;
        int nTriples = 0;

        for (int i = 0; i < NUM_ITERATIONS; i++) {
            cur = rand.nextInt(100);
            if (cur == last) {
                nDoubles++;
                if (cur == secondLast) nTriples++;
            }
            secondLast = last;
            last = cur;
        }

        out.println("Doubles: " + nDoubles);
        out.println("Triples: " + nTriples);
        out.println();
        out.println("Double Rate: 1 in " + Math.round(1.0 * NUM_ITERATIONS / nDoubles));
        out.println("Triple Rate: 1 in " + Math.round(1.0 * NUM_ITERATIONS / nTriples));

        exit(0);
    }
}

关于java - 创建随机值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484572/

相关文章:

java - maven升级源码版本

java - 从我的 Android 应用程序 zxing 向我的在线 MySQL 数据库发送数据

JavaScript 颜色数组

excel - 下一个随机数等于当前随机数的概率是多少?

java - 如何将 gif 转换为动态壁纸以在 Android 应用程序中使用

Queue dequeue()示例代码中的Java垃圾回收

java - 如何不重复自己或如何更改方法中的简单条件?

algorithm - 随机逻辑引擎实现思路

java - Jython 随机字符串生成

java - 如何从彼此不关注的数字池中生成一个随机数