
用excel如何随机产生0和1两个数?又如何使产生1和0的概率分别为70%和30%?谢谢
说明:我在网上看到了“=--(RAND()>0.3)”这个答案,这个答案确实很巧妙,但是这利用了1和0分别代表真假的性质,那我如果随便换两个数又应该如何办呢?我在exce...
说明:我在网上看到了“=--(RAND()>0.3)”这个答案,这个答案确实很巧妙,但是这利用了1和0分别代表真假的性质,那我如果随便换两个数又应该如何办呢?
我在excel中用公式=IF(RAND()>0.5,3,IF(RAND()>0.2,2,1))生成了大量的随机数,最终这些数的均值是2.40,而如果答案正确,应该是2.3(数学期望,1*0.2+2*0.3+3*0.5),所以我个人认为这个公式有些不正确哈
至于这个公式为什么平均值是2.40,我的分析如下,欢迎大家讨论批评
两个RAND生成的数字确实不一样,所以生成3的概率确实是0.5没错,但是下一个RAND已经换了一个数,所以这时在1和2中生成2的概率已经变成了0.8,1的概率为0.2,总体来讲,生成3,2,1的概率就分别变成了0.5,0.4,0.1,这时的期望就变成了2.4(1*0.1+2*0.2+3*0.5)
所以我认为,如果想满足我设的那个概率,公式可以这样写:
=IF(RAND()>0.5,3,IF(RAND()>0.4,2,1))
希望大家看后批评指正 展开
我在excel中用公式=IF(RAND()>0.5,3,IF(RAND()>0.2,2,1))生成了大量的随机数,最终这些数的均值是2.40,而如果答案正确,应该是2.3(数学期望,1*0.2+2*0.3+3*0.5),所以我个人认为这个公式有些不正确哈
至于这个公式为什么平均值是2.40,我的分析如下,欢迎大家讨论批评
两个RAND生成的数字确实不一样,所以生成3的概率确实是0.5没错,但是下一个RAND已经换了一个数,所以这时在1和2中生成2的概率已经变成了0.8,1的概率为0.2,总体来讲,生成3,2,1的概率就分别变成了0.5,0.4,0.1,这时的期望就变成了2.4(1*0.1+2*0.2+3*0.5)
所以我认为,如果想满足我设的那个概率,公式可以这样写:
=IF(RAND()>0.5,3,IF(RAND()>0.4,2,1))
希望大家看后批评指正 展开
4个回答
展开全部
随机函数生成的数据范围在(0,1)之间,而且是均匀分布的,如果=if(rand()>0.3,1,2),那>0.3的机率就是70%,也就是生成1的机率就是70%。而生成2的机率就是30%。如果要生成多个数,则只面调整条件就可以了。比如
=if(rand()<0.2,1,if(rand()<50,2,3))
=if(rand()<0.2,1,if(rand()<50,2,3))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
RAND()产生0~1之间的随机数,如果需要产生x~y之间的随机数,那么公式是:
x+RAND()*(y-x)
0.1~1.0的随机数公式是:
=RAND()*0.9+0.1
x+RAND()*(y-x)
0.1~1.0的随机数公式是:
=RAND()*0.9+0.1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设是5和6,公式是这样:
=IF((RAND()>0.3),5,6)
=IF((RAND()>0.3),5,6)
追问
非常感谢,能具体解释一下吗?还有请问如果有多个值(比如1,2,3分别占20%,30%,50%)又该如何写呢?辛苦您了
追答
因为RAND()>0.3的概率是0.7,所以条件为真的概率就是0.7,即取得5的概率为0.7
1,2,3分别占20%,30%,50%的公式:
=MID(1122233333,INT(RAND()*10)+1,1)
公式中INT(RAND()*10)+1能产生1到10的整数,整个公式就是随机取文本“1122233333”的第1到10位。
为什么不能用=if(rand()<0.2,1,if(rand()<0.5,2,3))这个公式呢?
因为这个公式中两个rand()取得的值是不同的,所以判断时就会出现错误,最后的比例也就会受影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询