我正在尝试添加或减去1到5个数字。
到目前为止,我有:
var number:int = Math.random() * 5;
现在我想把它作为正面或负面随机。
我可以使用以下内容:
// use math random to pick 1 or 0 and if 0 then negative
number = Math.random() * 1 ? number : number * -1;
但我不喜欢它。根据我对数学随机的经验,数字将始终为0 ???。还有更好的方法吗?
答案 0 :(得分:6)
var plusOrMinusVal = Math.random() < 0.5 ? -1 : 1;
答案 1 :(得分:1)
Math.round(Math.random()) > 0 ? 1 : -1;
Math.random()
- 从0到1随机, 0.54398938 Math.round()
- 整数到理性值, 0.54398938现在为1 x > 0 ? 1 : -1
- 检查x是否大于0,分配1,否则为-1, 1大于0 - 分配1
function random(){
document.querySelector('#number').innerHTML = Math.round(Math.random()) > 0 ? 1 : -1;
}
&#13;
<h3>You randomed: <span id="number">x</span></h3>
<button onclick="random()">Try again</button>
&#13;
答案 2 :(得分:1)
Math.floor(Math.random() * 11) - 5;
floor
会给出正常的值分布,而round
则不会给出最小值和最大值。但是你应该记得在参数中添加1。此外,Math.random()
永远不会返回1,这意味着在这种情况下我们永远不会从Math.floor
获得11。最大可能值为10。