一个概率问题

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


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

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


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

我的比较低效。。。
谢谢
...全文
151 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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