概率选取的实现
浏览:2685次 出处信息
常常有这样的功能需求: 每次从一批候选项中随机选取其中一项, 要求每一项的出现都有一定的概率. 比如说, 有如下候选项和对应的概率: A:10%, B:5%, C:25%, D:60%.
现在, 把每一项的概率用一个正整数(概率值)来表示, 不使用百分率, 整数的总和不一定等于100, 可以是任意大小,
实际概率 = 概率值/总和 * 100%
概率选取的算法如下:
用伪码表示:
total_p = sum(p1 + p2 + p3 + ...) rand = random(1, total_p) // [1, total_p] foreach(items as item){ rand -= item.p if(rand <= 0){ // 选中了 } }
建议继续学习:
- 概率语言模型及其变形系列-LDA及Gibbs Sampling (阅读:5981)
- 趣题:公司应该雇用多少员工? (阅读:4055)
- 概率语言模型及其变形系列-PLSA及EM算法 (阅读:4065)
- PHP概率算法(适用于抽奖、随机广告) (阅读:3356)
- 从抛硬币试验看概率论的基本内容及统计方法 (阅读:3098)
- 生日悖论外传:任取两个人生日相同的概率是50% (阅读:2649)
- 生成特定分布随机数的方法 (阅读:2938)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:浅谈MySQL索引背后的数据结构及算法
后一篇:能否在等边三角形点阵中画一个正方形? >>
文章信息
- 作者:ideawu 来源: idea's blog
- 标签: 概率
- 发布时间:2011-08-03 13:29:52
建议继续学习
近3天十大热文
-
[72] memory prefetch浅析
-
[54] 转载:cassandra读写性能原理分析
-
[51] 深入浅出cassandra 4 数据一致性问
-
[45] 字符引用和空白字符
-
[42] JS中如何判断字符串类型的数字
-
[41] 基本排序算法的PHP实现
-
[40] 获取Dom元素的X/Y坐标
-
[39] Inline Form Labels
-
[39] MySQL半同步存在的问题
-
[39] javascript插入样式