概率选取的实现
浏览:3149次 出处信息
常常有这样的功能需求: 每次从一批候选项中随机选取其中一项, 要求每一项的出现都有一定的概率. 比如说, 有如下候选项和对应的概率: 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 (阅读:6582)
- 概率语言模型及其变形系列-PLSA及EM算法 (阅读:4741)
- 趣题:公司应该雇用多少员工? (阅读:4562)
- PHP概率算法(适用于抽奖、随机广告) (阅读:4003)
- 从抛硬币试验看概率论的基本内容及统计方法 (阅读:3535)
- 生成特定分布随机数的方法 (阅读:3542)
- 生日悖论外传:任取两个人生日相同的概率是50% (阅读:3186)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:浅谈MySQL索引背后的数据结构及算法
后一篇:能否在等边三角形点阵中画一个正方形? >>
文章信息
- 作者:ideawu 来源: idea's blog
- 标签: 概率
- 发布时间:2011-08-03 13:29:52
建议继续学习
近3天十大热文
-
[917] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[54] 整理了一份招PHP高级工程师的面试题 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] Innodb分表太多或者表分区太多,会导致内 -
[52] 海量小文件存储 -
[51] 全站换域名时利用nginx和javascri -
[51] 用 Jquery 模拟 select -
[50] CloudSMS:免费匿名的云短信 -
[48] jQuery性能优化指南
