Java随机数生成器无法正常工作

时间:2014-06-20 00:44:44

标签: java android random

我的随机数生成器不起作用,我不明白。我是android编程的新手,我无法弄清楚这个代码的和平。我已经尝试了几种方法,但它无法正常工作。请帮助我,我是新的请不要激怒我。

示例:实际代码生成

第一组树生成 1011010110

第二组树在同一游戏中产生 100001111110011

 import java.util.Random;
 import android.util.Log;

 public class Tree {
 public Tree(int addition) {

    spawn = (int)(Math.random() * 2);
 }

我也尝试过。

private Random random = new Random();
public Tree(int addition) {

    int randomNum = random.nextInt(2);
    spawn = randomNum;
}

感谢您查看此内容。

史蒂夫

2 个答案:

答案 0 :(得分:1)

我不确定您指的是哪些代码产生这些输出,但这行代码将返回0或1 ......

spawn = (int)(Math.random() * 2);

这样的东西会返回0到9之间的数字

spawn = (int)(Math.random() * 10);

这是因为Math.random()函数Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. - 每http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#random()

*编辑 - 看起来输出是你所期望的,虽然第二组有一些可疑的重复......如果你输出这两个

private Random random = new Random();
public Tree(int addition) {

    int randomNum = random.nextInt(2); // this will be 0 or 1
    spawn = randomNum;                 // this will NOT BE RANDOM
}

我认为这是你在第二棵树中看到重复的地方。要解决此问题,您只需删除spawn变量即可,因为在这种情况下,您所做的只是重新分配。

答案 1 :(得分:0)

nextInt(int n)

返回从此随机数生成器序列中提取的伪随机,均匀分布的int值,介于0(包括)和指定值(不包括)之间。

参考在这里:

http://docs.oracle.com/javase/7/docs/api/java/util/Random.html

所以当你调用random.nextint(2)时,你会得到0或1。

您可以添加一些值或更改参数以满足您的需求。