总结一个随机抽取算法(全部item出现概率和为100%)
来源:互联网 发布:淘宝商家登陆 编辑:程序博客网 时间:2024/06/10 14:56
//为避免每次重新回忆的麻烦整理一下
设出现概率A:30%,B:15%,C:45%,D:10%
想像在0到100米的长度中,A占从起点开始的前30米,B占后面的15米,C占再后面的45米,D占最后10米。
你随机选择一个0到100米的长度,该长度落在A区间内的概率就为30%,以此类推。
再想像你从起点开始走这个你刚才选择的长度,则你停在某区间的概率同上。
然后就是代码:
//伪代码,没考虑边界和特殊情况的处理,明白意思就行
#define DISTANCE 100
struct Item
{
char* name;
int chance;
};
Item itemArray = { A, B, C, D};
char* getRandomItem()
{
int chanceSum = 0;
int random = System::Rand() % DISTANCE ;
Item item;
for ( int i = 0; i < itemArray.size(); ++i)
{
chanceSum += itemArray[i].chance;
if (chanceSum > random )
{
item = itemArray[i];
}
}
return item.name;
}
0 0
- 总结一个随机抽取算法(全部item出现概率和为100%)
- 概率分析和随机算法
- 概率分析和随机算法
- 算法导论概率分析和随机算法
- 随机算法和概率分析的区别
- 6.10 概率分析和随机算法
- 第五章 概率分析和随机算法
- 第五章 概率分析和随机算法
- 一个无聊的小程序,随机尾数出现的概率
- 随机概率算法
- 算法导论读书笔记 第五章 概率分析和随机算法
- 算法导论习题5--概率分析和随机算法
- 算法导论第五章:概率分析和随机算法
- 算法导论之概率分析和随机算法
- 算法导论之概率分析和随机算法文档
- 随机事件和概率
- 第 5 章 概率分析和随机算法
- 等概率随机洗牌算法
- Mongodb亿级数据量的性能测试
- D3.js 以圆做点绘制力图(一)
- 10+ MySQL Reporting Tools
- EAI和SOA比较
- 数据结构-回文数
- 总结一个随机抽取算法(全部item出现概率和为100%)
- 十月末总结
- 【STL】【STL颓废笔记】【2014-10-29】
- SpringMVC Controller 介绍
- NSArray 排序sortedArrayUsingComparator
- openfire Android学习---android客户端聊天开发之登录 和 注销登录
- mysql运行转储的sql文件导入大批量数据时,报错:Lost connection to MySQL server during query
- /cdata/crs 产生大量的数字命名的文件 HPUX-ia64 Error: 28: No space left on device
- Android——Button的监听事件(自己动手 丰衣足食)