一个概率问题

expter 2009-09-01 02:07:44
比如我要随机生成一个数
他满足下面的随机生成概率规则。


生成数在【50,100】区间内。。

70%的概率在 【50,70】
21%的概率在 【71,85】
6%的概率在 【86,95】
3%的概率在 【96,100】


问下大家关于生成次数满足上面的概率的比较好的算法。

我的比较低效。。。
谢谢
...全文
91 点赞 收藏 10
写回复
10 条回复
ttklboy 2009年09月01日
晕 干嘛给我分啊
回复 点赞
LeonTown 2009年09月01日
是不是就是,
设总数据量为N,
在【50,70】范围内,执行N*70%次rand(50,70);
其它类似。。。
回复 点赞
我看你有戏 2009年09月01日
[Quote=引用 6 楼 expter 的回复:]
但是我是一个范围的值,不是去某个特定的值。。
你那个方法如果去这个范围的值话,需要对数组进行构建。。
[/Quote]

七楼的不错
回复 点赞
rendao0563 2009年09月01日
70%的概率在 【50,70】
21%的概率在 【71,85】
6%的概率在 【86,95】
3%的概率在 【96,100】

n = rand() % 100 + 1;

if (n < 70) n = rand(50,70);
if (n > 70 && n < 91) n = rand(71,85);
if (n > 91 && n < 97) n = rand(86,95);
if (n > 97 && n < 100) n = rand(96,100);
回复 点赞
expter 2009年09月01日
但是我是一个范围的值,不是去某个特定的值。。
你那个方法如果去这个范围的值话,需要对数组进行构建。。
回复 点赞
expter 2009年09月01日
taodm的方法不错。。
回复 点赞
ttklboy 2009年09月01日
正态分布的公式是啥来?好多年没看数学了 ,想不起来了

回复 点赞
taodm 2009年09月01日
哦,先100的数组按概率填入1、2、3、4代表上面的4类。
在1~100间随机取值,查表得到是哪一类,再随机于其代码的区间内取值。
回复 点赞
xingzhe2001 2009年09月01日
感觉像是个正态分布,MARK.
回复 点赞
expter 2009年09月01日
UP
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告