我正在试图为我的游戏创建随机值以在屏幕上显示敌人.有时候它会显示2次有时会显示2次...我想问一下哪个是创建随机值的最佳公式..这是我到目前为止的随机值
random = 1 * (int) (Math.random() * 100);
Run Code Online (Sandbox Code Playgroud)
"有时候有点显示2次有时3次"
给出完全随机的数字...在从0到99的每100个随机值中,您将找到平均1.0的双倍数.每10,000个值平均会出现三次.给定1000万随机数,java.util.Random在我的机器上得到以下结果:
Doubles: 99873 Triples: 985 Double Rate: 1 in 100 Triple Rate: 1 in 10152
源代码:
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);
}
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6356 次 |
| 最近记录: |