问题很简单.我需要一个行命令,比如
Math.round((-Math.random() * 2))
,在输出中只显示1和-1.我试图解决它,但这似乎不是一件容易的事!我可以使用IF命令,
demo = (Math.random()>.5)?(1):(-1);
但我需要更快的东西,比如数学公式.
解决方法
我无法想象比这更快的事情:
var n:int = ((Math.random()*4)&2)-1;
没有条件,没有比较,除了random()之外没有其他功能:-)
这是另一个让你思考它是如何工作的:
var n:int = (((Math.random()*0xFFFFFFFF) & 0x80000000)>>30) | 1;