我的随机数生成器不起作用,我不明白。我是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;
}
感谢您查看此内容。
史蒂夫
答案 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。
您可以添加一些值或更改参数以满足您的需求。