收录日期:2021/01/28 07:13:19 时间:2016/08/07 16:44:38 标签:C++ 语言

小人不才 刚学程序
请教下
在某个概率下做某个事件
这个逻辑该怎么写啊

比如:
do a -- 10%
do b -- 20%
do c -- 40%
do d -- 30%

int iRate = Rand() % 100;
把随机产生的数映射到相应的区间就行了,其实你都写出来了。

0--9 do a

10 -- 29 do b

30 -- 69 do c
70 -- 99 do d
int iRate = Rand() % 100;

最少是0还是1啊?
如果是这样的呢:
do a -- 10%
do b -- 10%
do c -- 40%
do d -- 40%

一样的
switch(rand() % 100)
{
case 0:
...
case 9:
do a; break;
case 10:
...
case 19:
do b; break;
case 20:
...
case 59:
do c; break;
default:
do d;
}
引用 2 楼 nicky0930 的回复:
int iRate = Rand() % 100;

最少是0还是1啊?


最少是0;

switch((rand() % 100)/10)
{
case 0:
    do a; break;// 10%
case 1:
case 2:
    do b; break; // 20%
case 3:
case 4:
case 5:
case 6:
    do c; break;  //40%
default:
    do d;        //30%
}

再问个问题
为什么rand() % 100总是随机出10以下的数字
很多次了
引用 7 楼 nicky0930 的回复:
再问个问题
为什么rand() % 100总是随机出10以下的数字
很多次了


不可能,你把我写的代码复制到你的编译器上运行几次看看:



int main() {
srand(static_cast<unsigned>(time(0)));
int n = std::rand()%100;
std::cout<<n;
system("pause");
    return 0;
}


CSDN是不是被人黑了 想用ActiveX把webBrowser包装一下,一些不懂地方。 不能看只能发贴吗? 床上脱光的美女,你们却太监了。床上脱光的美女,你们却太监了。床上脱光的美女,你们却太监了。 404,你懂的。。 我从不骂人,今天有点想骂人了,404,*** 不要现在闹得欢,看你明天还能当众招摇过市否? 【恢复】【patrickkong 】【装IE5···老费劲了··刚装完···正在刷新。】 很简单的SQL语句,但是为什么和值算不出来 串口uart输入小写转换成大写 CSDN404 【广州菲音】2011实习招聘 从后台返回一条JSON数据,如何转换成ext的record 404 額不懂 懂你妹啊懂 CSDN打开论坛技术贴总报404,是不是被黑啦?? windows 2003 svchost.exe 484 CMWantSpecialKey 为什么会执行 两次 呢? 怪怪~~~~~~~~~~~~~~~ 怎么啦?为什么帖子都打不开呀? 易想多用户商城仿淘宝网版会有什么问题吗? 宏展开,自动声明变量 【偷拍】长沙街头的美女,黑丝诱惑! 太牛了,为什么不在首页公布一下,这么弄会死人的 如何让主键重新从1开始计数 成功插入后显示"1行被上次查询影响" 論壇首頁出通知了。大家去看看。 树结构的二维表,递归读取某一节点下的所有子节点 菜鸟请教 如何以另外一个用户启动exe文件? Server2008(64位)系统上注册DLL引用报错问题 如何获取客户端访问机器的Mac地址