用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))
希望大家看后批评指正
展开
 我来答
百度网友3a40e47
推荐于2020-03-08 · TA获得超过2187个赞
知道小有建树答主
回答量:1554
采纳率:0%
帮助的人:1105万
展开全部

1,2,3分别占20%,30%,50%的公式写法


=IF(RAND()>0.5,3,IF(RAND()>0.2,2,1))

这样就可以了。

可以理解为rand()函数生成0-1之间的数字的几率是均等的,那么大于0.5的几率就是50%,这时结果就3,剩下的情况里2占60%,可以这样写


=IF(RAND()>0.5,3,IF(RAND()>0.6,2,1))

用A和B两整列测试了一下,13w多个数据,结果还是可以接受的。见图

chennwau
2013-10-08 · TA获得超过738个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:458万
展开全部
随机函数生成的数据范围在(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))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戏珍楚k
2019-01-18 · TA获得超过6290个赞
知道大有可为答主
回答量:9483
采纳率:67%
帮助的人:516万
展开全部
RAND()产生0~1之间的随机数,如果需要产生x~y之间的随机数,那么公式是:
x+RAND()*(y-x)
0.1~1.0的随机数公式是:
=RAND()*0.9+0.1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
viviill
2013-10-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3409
采纳率:54%
帮助的人:1760万
展开全部
假设是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()取得的值是不同的,所以判断时就会出现错误,最后的比例也就会受影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式