C++随机数生成器,不是随机的,但总是返回相同的数字
C++ Random number generator, isnt random but always returns the same number
Hi-im正在查找RandNum,以生成2-10之间的数字,然后将该数字从15中去掉。
现在,每次执行程序时,从15(PerseusHealth)中减去的数字都是7。我该如何修复它,并使其随机?
void desertpath()
{
int scorpianchoice; //the option the player chooses.
int Maxhit = 10; //Max hit the scorpian can do
int Minhit = 2; //Min hit the scorpian can do
int randNum = rand()%(Maxhit + Minhit) + Minhit;
int healthremaining = PerseusHealth - randNum; //health left in option1.
if(scorpianchoice == 1)
{
cout << "You run under the Scorpians Legs in hopes to escape " << endl;
cout << "You are hit by the scorpians Sting for " << randNum << " hp!";
cout << "You have " << healthremaining << "/15 HP Left!" << endl;
cout << "You escape the Scorpian but not without taking some damage" << endl;
}
使用srand进行初始化。
srand((unsigned)time(0));
此外,我认为你没有正确放置括号:
int randNum = (rand()%(Maxhit - Minhit)) + Minhit;
@ebad86回答顶部的澄清
-
rand()以质量差而闻名,尤其是在使用低位时。例如,最有可能的是,输出总是在低位设置为1的情况下生成。简单的解决方案可能是通过移位位(比如8)来使用序列中间的位
-
若rand()的最大生成输出不能被(Maxhit-Minhit)整除,则会得到(稍微)有偏差的结果。这对你来说可能没问题,但你最好知道它
相关文章:
- 函数如何使用引用返回所需的数字?
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- 返回 int 中可被 2 c++ 整除的所有数字的总和
- C++ python 中的函数返回数字而不是字符串
- 使用非托管导出将字符串从 C# 返回到C++将返回数字
- 我的代码应该接受一个数字,并返回字母等级或"Grade is not valid"但 else 语句不起作用
- 如何返回一串字母数字字符中的最大值(例如-1A003B3)?
- 将 MPFR 数字转换为字符串并返回
- C++ 递归:返回数字的最小偶数
- typeid.name 返回派生类类型之前的数字
- Fibbonaci 递归代码返回错误值,始终返回下一个数字
- 为什么我的阶乘数查找器返回以C++输入的数字?(已编辑)
- 将字符转换为ASCII返回数字太大
- 从排序的数字数组中返回数字范围的最快方法是什么?
- 使用关键字从文本文件返回数字
- 将元组传递给函数并让它返回数字列表的最佳方法
- placeNumbers应该返回数字的顺序,以便满足布尔值向量中编码的条件
- 带有Overload[]运算符的C++MyInteger类,因此索引在位置i返回数字
- c++程序返回数字而不是字符
- 返回数字所在的行