随机数绝对1或-1

Kat*_*ore 3 random math flash mathematical-optimization actionscript-3

问题很简单.我需要一个行命令,比如

Math.round((-Math.random() * 2))
Run Code Online (Sandbox Code Playgroud)

,在输出中显示1-1.我试图解决它,但这似乎不是一件容易的事!我可以使用IF命令,

demo = (Math.random()>.5)?(1):(-1);
Run Code Online (Sandbox Code Playgroud)

但我需要更快的东西,比如数学公式.

Pat*_*ick 6

如果你想要一个更快的方法,你可以这样做:

var n:Number=(int(Math.random()>=0.5)<<1)-1.0
Run Code Online (Sandbox Code Playgroud)

它是如何工作的: Math.random()>=0.5将返回truefalse

int(true) = 1
int(false) = 0
Run Code Online (Sandbox Code Playgroud)

<<1将乘以2的值,让你有一个int20

现在.减去1.0和你有一个number1.0或-1.0

这里有一些现场测试速度:http://wonderfl.net/c/xdqv