一个有关随机数生成的小问题

rand() % 10?2:4为什么表示生成数字2或4,生成概率为9:1?
已经善用搜索知道rand() % 10表示从【0,9】生成随机数
10?2:4的格式是三目运算符,表示的意思是

if(rand() % 10return 2;
else{
      return 4;
}

我想问的是生成的概率是由什么控制的?else指的是什么情况呢?

rand() % 10?2:4 表示的含义是:
如果rand() % 10 的结果大于0,那么返回2,否则返回4.
已知,rand() % 10表示从【0,9】,只有当rand()%10等于0的时候,结果才会等于4。其余当rand()%10等于【1,9】的时候,结果都是等于2.
所以,概率比是:9:1

答案满意请采纳一下!

rand() % 10?2:4为什么表示生成数字2或4,生成概率为9:1?

答案:因为,rand() % 10表示取余数,当等于0代表假,只有0,大于0的数代表真,有9个数【1-9】,所以生成概率为9:1

rand() % 10:生产0-9,把其看成一个整体A
A ?2:4 :如果A成立则为2,否则为4。0为假,1-9为真,故生成概率为9:1.

rand() % 10 等概率生成0-9之间的数字
rand() % 10? 判断是否为0,当等于0代表假,其他1-9都为真
所以为0 的概率是1/10,非0的概率为9/10

请采纳~