Java x=(int)(Math.random()*1)0或1的概率是多少?
这就是确切的代码,然后我有一个案例0:和案例1:的开关,似乎案例1:每次都会出现,我希望有50/50的机会出现0或1这是正确的方式还是我应该使用1.5,或者这到底是如何工作的Java x=(int)(Math.random()*1)0或1的概率是多少?,java,math,random,Java,Math,Random,这就是确切的代码,然后我有一个案例0:和案例1:的开关,似乎案例1:每次都会出现,我希望有50/50的机会出现0或1这是正确的方式还是我应该使用1.5,或者这到底是如何工作的 talka = (int)(Math.random() * 1); switch(talka) { case 0: { talk.setAnimationListener(this); talk.playtim
talka = (int)(Math.random() * 1);
switch(talka)
{
case 0:
{
talk.setAnimationListener(this);
talk.playtimes(1,24);
startService(new Intent(this, love1.class));
break;
}
case 1:
{
talk.setAnimationListener(this);
talk.playtimes(1,12);
startService(new Intent(this, love2.class));
break;
}
}
只需使用
java.util.Random
对象并简单地调用nextBoolean()
,它将以50:50的比例返回true或false。就像数学一样简单。PI这个问题与演员的工作方式有关
在五月份的测试中,Java基本上是“修剪”十进制结果,并简单地去掉“整数”组件。但是,如果我将结果四舍五入,结果会在0和1之间翻转
有戏
int ones = 0;
int zeros = 0;
for (int index = 0; index < 100; index++) {
double rand = Math.random() * 1;
if (Math.round(rand) == 1) {
ones++;
} else {
zeros++;
}
System.out.println(rand + " - " + (int)Math.round(rand) + " - " + (int)Math.random() * 1);
}
System.out.println("Ones = " + ((float)ones / 100f));
System.out.println("Zeros = " + ((float)zeros / 100f));
int-one=0;
整数零=0;
对于(int-index=0;index<100;index++){
double rand=Math.random()*1;
如果(数学四舍五入(兰德)==1){
1++;
}否则{
零++;
}
System.out.println(rand+“-”+(int)Math.round(rand)+“-”+(int)Math.random()*1);
}
System.out.println(“one=”+((float)one/100f));
System.out.println(“Zeros=“+((float)Zeros/100f));
这是我的简单测试,我在50/50分左右(+/-)
正如气垫船所指出的,在这种情况下最好使用
java.util.Random
。-使用java.util.Random
会更好更容易
-使用its的nextBoolean()
方法
例如:
public class Rand {
public static void main(String[] args){
Random r = new Random();
System.out.println(r.nextBoolean()); // See there is a equal
// true-false division
}
}
变量
talka
将始终为零;Math.random返回一个值,其中0总是向下舍入
talka = (int)(Math.random() * 1); // between 0 and 0
你的意图也许是
talka = (int)(Math.random() * 2); // between 0 and 1
但是,使用Math.random()获取一位的效率非常低
如果你用随机数
talka = random.nextInt(2);
甚至更好
talk.setAnimationListener(this);
if (random.nextBoolean()) {
talk.playtimes(1,24);
startService(new Intent(this, love1.class));
} else {
talk.playtimes(1,12);
startService(new Intent(this, love2.class));
}
请注意,Math.random()返回0.0和1.0half/half之间的双倍值,因为random()返回均匀分布的值。他将值转换为
int
,因此如果我使用Math.round(Math.random()*1),则更可能是50/50?