姐夫的画馆
发表于 2022-2-14 14:05:24
每个数的概率依次累加(可扩大倍数成整数)即可得到区间
{0.1;0.9;3;16;10;15;25;20;7;3}*10={1;9;30;160;100;150;250;200;70;30},从第一个依次累加到元素索引位即可得到{1;10;40;200;300;450;700;900;970;1000}分段
很高兴认识你
发表于 2022-2-18 15:57:27
首先算每个区间的起始概率(上一个区间的结束概率),用VLOOKUP(rand(), 区间起始概率:数字, 2)就可以实现了。
如果用@Risk插件,就可以用RiskDiscrete()很方便实现。
喜欢小鸭子的小羊子
发表于 2022-2-21 04:25:05
如图,公式=LOOKUP(RAND(),SUMIF(OFFSET(A4,,,,COLUMN(A:J)),">0")%,B3:K3)
你上面列举的概率和不是100%!难道有时候还会不出现数字?
小小寰球
发表于 2022-2-25 19:34:06
附件供参考
魁北克的一休哥
发表于 2022-2-26 00:42:37
不好意思,大佬,是我表达得不是很清楚,我重新做了个表,麻烦大佬给填个公式。
李文卓
发表于 2022-2-27 11:33:26
谢谢大佬,我的表格是这样,麻烦大佬重新给看看。
如幻似梦
发表于 2022-2-28 10:56:53
B2=LOOKUP(RAND(),{0,1,10,40,200,300,450,700,900,970}%/10,COLUMN(A:J)-1)下拉
晴天白云
发表于 2022-3-1 10:33:09
假定概率不变,将样本扩大10倍,{0.1;0.9;3;16;10;15;25;20;7;3}*10可得到每个数字出现的区间为{1;10;40;200;300;450;700;900;970;1000},故
=MATCH(RANDBETWEEN(1,1000),{1;10;40;200;300;450;700;900;970;1000})-1
白章甄
发表于 2022-3-5 15:01:50
谢谢大佬,如果概率精确到小数点后两位,是不是就要乘以100倍?
这个区间数值不知道什么意思,麻烦大佬跟我说一下。另外,如果我要生成数值是0-27,28个数字,这个区间要怎么改呢?麻烦大佬了。
附件是最终表格,麻烦大佬指教。本来想根据大佬说的,自己修改公式,但是大佬说的取值范围理解不了,所以不知道怎么修改,只改了生成范围,麻烦大佬订正,谢谢。
祝您平安
发表于 2022-3-6 19:44:30
首先算每个区间的起始概率(上一个区间的结束概率),用VLOOKUP(rand(), 区间起始概率:数字, 2)就可以实现了。
如果用@Risk插件,就可以用RiskDiscrete()很方便实现。