一个概率问题

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


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

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


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

我的比较低效。。。
谢谢
...全文
123 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxyokokok 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
先生成一个0-99之间的数n,

如果n <70,则随机生成一个50-70的数
如果70 <= n < 91,则随机生成一个71-85的数
如果91 <= n < 97,则随机生成一个86-95的数
随机生成一个96-100的数
[/Quote]

这个是对的,实际上是按照概率密度定义的。。。。
  • 打赏
  • 举报
回复
生成数在【50,100】区间内。。

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


[50,70]后面这些区间只是些符号,给你一个随机函数,你当然可以控制产生任意的概率,你需要做的只是把这些概率映射到不同的区间而已。
showjim 2009-09-01
  • 打赏
  • 举报
回复
x=random(1500);
if(x<1050) x=50+x/50;
else if(x<1365)x=21+x/21;
else x=(x-591)/9;
hhhcj 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
先生成一个0-99之间的数n,

如果n <70,则随机生成一个50-70的数
如果70 <= n < 91,则随机生成一个71-85的数
如果91 <= n < 97,则随机生成一个86-95的数
else 随机生成一个96-100的数
[/Quote]
Ding
okhysong 2009-09-01
  • 打赏
  • 举报
回复
赞同"蒙特卡罗算法"  
  • 打赏
  • 举报
回复
嗯,就是这样子的。蒙特卡罗算法。

[Quote=引用 2 楼 litaoye 的回复:]
先生成一个0-99之间的数n,

如果n <70,则随机生成一个50-70的数
如果70 <= n < 91,则随机生成一个71-85的数
如果91 <= n < 97,则随机生成一个86-95的数
随机生成一个96-100的数
[/Quote]
warrior30 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
先生成一个0-99之间的数n,

如果n <70,则随机生成一个50-70的数
如果70 <= n < 91,则随机生成一个71-85的数
如果91 <= n < 97,则随机生成一个86-95的数
随机生成一个96-100的数
[/Quote]
精彩
zhangjunying1987 2009-09-01
  • 打赏
  • 举报
回复
我是来接分的
donkey301 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
先生成一个0-99之间的数n,

如果n <70,则随机生成一个50-70的数

[/Quote]
直接用50+n*2.0/7取整来作为值好了
绿色夹克衫 2009-09-01
  • 打赏
  • 举报
回复
先生成一个0-99之间的数n,

如果n<70,则随机生成一个50-70的数
如果70<= n < 91,则随机生成一个71-85的数
如果91<= n < 97,则随机生成一个86-95的数
随机生成一个96-100的数
expter 2009-09-01
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧