2012-01-04 208 views
1

如果我在[0,1)中有一个均匀分布的随机变量,该如何修改它(仅使用算术表达式)s.t.它的概率是1/2,概率是1/2的概率是1?均匀分布[0,1)转换为{-1,1}

+0

为什么你约束自己不必要的,只用算术表达式? – 2012-01-04 19:22:07

+0

这是功课还是面试问题? – JJJ 2012-01-04 19:32:42

+0

因为我觉得我可以在3年前很容易地解决这个问题:-) – user695652 2012-01-04 19:32:45

回答

1

如果地板(或转换到低于X最接近的整数)是OK:

floor(x*2)*2-1 

由于四舍五入为最接近的整数:

round(x*2-0.5)*2-1 
+0

是的第一个很好:(int)(2 * Math.random())* 2-1 – user695652 2012-01-05 19:28:38

0

如果随机变量的值小于0.5,它映射到-1,否则映射到1

编辑:如果您允许使用绝对值,你可以做(​​X - 0.5)/ ABS(X - 0.5)。

+0

谢谢,但我的意思是只使用算术运算 – user695652 2012-01-04 19:00:57

+0

哦, +','-','*'和'/'? – BenH 2012-01-04 19:01:55

+0

你可以使用整数除法(例如1/3 = 0)吗? – BenH 2012-01-04 19:02:37