百分比大小写语句
Percent case statements
我只是在写一个if语句来"刷出"地图中的对象,我正在玩百分比,但我不确定我是否做得对。这是我的文件:
int chance = rng_.nextInt(0, 100);
if(chance <= 20) // 20%
{
// Spawn a chest
}
else if((chance > 20) && (chance <= 50)) // 30%
{
// Spawn a monster
}
// Otherwise don't spawn nothing
这是正确的方法还是我错了?
编辑:好的,我已经修复了代码,现在我认为问题解决了。
不行,因为
30% + 70% + 30%
大于100%
在你的代码中,"生成怪物"的机会是40%
而不是70%
假设rng_。nextInt生成一个介于0到100之间的数字,它是一个线性分布(0到99之间的任何数字与其他数字的可能性一样),那么0-19将是一个箱子(20%的可能性),20-49将是一个怪物(30%的可能性),而50到99之间的任何数字(50%的可能性)都不会生成任何东西。所以代码看起来像:
int chance = rng_.nextInt(0,100);
if ( chance < 20 )
{
// spawn a chest
}
else if ( chance < 50 )
{
// spawn a monster
}
else
{
// Do other items if required.
}
所以20+30+50 = 100,等于0-99(100个整数值)在你的随机数生成
相关文章:
- 函数中的切换大小写语句不会切换C++
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 使用开关大小写语句抽取随机扑克牌等级和花色以显示用户
- 如何使用 clang 格式在交换机中获取单行对齐的大小写语句
- 开关大小写语句中函数中的字符串输入会导致无限循环和绕过输入
- 使用 map<string,int> 在开关大小写语句中使用字符串
- 当C/C++程序切换语句转到未定义的大小写并且缺少默认值时,它的正确行为是什么:
- C ++ if else 语句在开关大小写 - 解释
- 在 do{}while 语句中使用的开关大小写会导致 GoAgain 无法正常工作
- 初始化开关大小写语句中的数组
- 将OSX Clang配置为区分大小写以包含语句
- VS2010上不区分大小写的字符串比较-为每个版本的VS播放#if定义的语句
- 为什么开关大小写语句中不能有变量?
- 开关大小写语句不间断
- 百分比大小写语句
- 如何使用else if语句来比较字母并使其不区分大小写?
- c++ 如何避免大小写/切换语句
- 开关大小写语句中的分号
- 没有基本大小写的递归和递归函数之后的语句
- 错误:跳转到switch语句中的大小写标签