Javascript 如何使变量有50%的几率成为一个值,50%的几率成为另一个值?

Javascript 如何使变量有50%的几率成为一个值,50%的几率成为另一个值?,javascript,html,variables,Javascript,Html,Variables,这是我上面的代码,我正试图使它成为一个50/50的机会是否损害将=数学。地板(数学。随机()*25)或=0。我试着把一个数学数乘以1,然后再乘以数学数。随机25次,但没有成功。如何使它在50%的时间内等于0,而在另50%的时间内等于math.random*25?这里有一种方法: a = document.getElementById("find").value if (a == 'Spark' || a == 'Fire') { var monster = x

这是我上面的代码,我正试图使它成为一个50/50的机会是否损害将=数学。地板(数学。随机()*25)或=0。我试着把一个数学数乘以1,然后再乘以数学数。随机25次,但没有成功。如何使它在50%的时间内等于0,而在另50%的时间内等于math.random*25?

这里有一种方法:

 a = document.getElementById("find").value
    if (a == 'Spark' || a == 'Fire') {
        var monster = x
        var player = y
        var damage = Math.floor(Math.random() * 25)
        var damageplayer = Math.floor(Math.random() * 30)
        alert('Your squad succeeded the enemy has ' + (x = x - damage) + ' original territories!');
    alert ('You have' + (y = y - damageplayer) + 'original territories!'); }
var coin=function(){
返回值(Math.random()<0.5?0:1);
}
风险损失=25*coin();
这里有一种方法:

 a = document.getElementById("find").value
    if (a == 'Spark' || a == 'Fire') {
        var monster = x
        var player = y
        var damage = Math.floor(Math.random() * 25)
        var damageplayer = Math.floor(Math.random() * 30)
        alert('Your squad succeeded the enemy has ' + (x = x - damage) + ' original territories!');
    alert ('You have' + (y = y - damageplayer) + 'original territories!'); }
var coin=function(){
返回值(Math.random()<0.5?0:1);
}
风险损失=25*coin();
不要使用
floor()
,因为它总是四舍五入。使用
round()

或者,如果您是“将尽可能多的代码塞进一行”的人之一:

不要使用
floor()
,因为它总是向下取整。使用
round()

或者,如果您是“将尽可能多的代码塞进一行”的人之一:

damage=(Math.random()<0.5)?0:(Math.random()*25);
损坏=(数学随机()<0.5)?0:(Math.random()*25);
尝试使用

damage = (Math.random() < 0.5) ? 0 : (Math.random() * 25);
var aux=Math.random()
如果(aux<0,5){
aux=0
}否则{
aux=损坏
}
然后,您可以使用var aux来代替损坏

damage = (Math.random() < 0.5) ? 0 : (Math.random() * 25);
var aux=Math.random()
如果(aux<0,5){
aux=0
}否则{
aux=损坏
}

然后你可以用var aux代替伤害,有时候我想知道random Math.random到底有多随机

另一种选择:


返回(新日期().GetMillimess()%2)

有时我想知道随机数学。随机真的是

另一种选择:

返回(新日期().GetMillimess()%2)

我找到了一种方法:

var aux = Math.random()

if (aux < 0,5){

    aux = 0

}else{

   aux = damage
}
由于
Math.random
将随机选择一个数字
0
1
我将检查设置为一半,在
0.5

我找到了一种方法:

var aux = Math.random()

if (aux < 0,5){

    aux = 0

}else{

   aux = damage
}

由于
Math.random
将随机选择一个数字
0
1
我将检查设置为一半,在
0.5
处,您可以使用此选项:
Math.round(Math.random()*2)
返回0或1,这不是50%的概率,但非常接近。您可以使用此选项:
Math.round(Math.random()*2)
这将返回0或1,这不完全是50%的概率,但已经很接近了。也许他们想要四舍五入。这不起作用。括号缺少数学知识。random@AshBurlaczenko我想他们想要
floor()
Math.floor(Math.random*25)
部分,但你永远不能使用
floor()
来确定50/50部分。好吧,我想如果你做了
Math.floor(Math.random()*2)
,你会的,但我想那会很奇怪。也许他们想要取整。这不起作用。括号缺少数学知识。random@AshBurlaczenko我想他们想要
floor()
Math.floor(Math.random*25)
部分,但你永远不能使用
floor()
来确定50/50部分。嗯,我想如果你做了
Math.floor(Math.random()*2)
的话,你可能会这样做,但我认为这会很奇怪。使用硬测试很容易测试。与Donald Knuth开发的任何发电机一样好。有证据证明你的方式是随机的吗?重复的周期是多少?不,从计算的角度来看,没有什么特别“随机”的。但当它基于用户生成的事件时,它确实充分满足了“50/50机会”的要求。我认为它需要是随机的。易于使用硬测试进行测试。与Donald Knuth开发的任何发电机一样好。有证据证明你的方式是随机的吗?重复的周期是多少?不,从计算的角度来看,没有什么特别“随机”的。但当它基于用户生成的事件时,它确实充分满足了“50/50机会”的要求。我认为它需要是随机的。
Math.random();
if(Math.random() >= 0.5){ \\set variable to value A }
else { \\set variable to value B }