首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载模具算法

加载模具算法
EN

Stack Overflow用户
提问于 2011-11-30 08:29:42
回答 4查看 132关注 0票数 0

我想要一个算法来模拟这个加载的骰子:

概率为: 1: 1/18 2: 5/18 3: 1/18 4: 5/18 5: 1/18 6: 5/18

它偏爱偶数。

我的想法是用matlab计算上述情况的可能性。我可以用1/6 (普通骰子)来做,但我很难将其应用于加载的模具。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-30 08:33:46

一种方法:生成两个随机数:第一个是从0到5 (0:奇数,1- 5:偶数),用于确定偶数或奇数。然后生成介于0和2之间的第二个值,该值确定其类别内的确切数字。例如,如果第一个数字是3(表示偶数),第二个是2(表示第三个块,1-2是一个块,3-4是另一个块,5-6是最后一个块),则结果是6。

另一种方法:生成一个介于0和17之间的随机数,然后您可以简单地使用/6和%6,并使用这两个数字来决定。例如,如果/6为0,则选择介于1和2之间,如果%6 == 0,则选择为1,否则为2。

票数 3
EN

Stack Overflow用户

发布于 2011-11-30 08:48:00

在matlab中:

代码语言:javascript
复制
 ceil(rand*3)*2-(rand>(5/6))
票数 2
EN

Stack Overflow用户

发布于 2011-11-30 17:46:51

通用解决方案:

使用roulette wheel selection

代码语言:javascript
复制
n = generate number between 0 and sum( probabilities )
s = 0;
i = 0;
while s <= n do
  i = i + 1;
  s = s + probability of element i;
done

循环完成后,我将是所选元素的编号。这适用于任何一种不对称的概率分布,即使你有权重而不是概率,并且想要跳过正规化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8319671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档