具有变量的C++的RAND()

具有变量的C++的RAND(),c++,srand,random,C++,Srand,Random,好吧,由于某些原因,这似乎不起作用,我试图为敌人获得50-25马力 我也希望它是一个百分比。。。像 int userHP = 100; int enemyHP = rand() % ((userHP - 50) - (userHP - 75)) + 1; 但我喜欢用整数,而不是浮点数或双精度。。。有人能帮我吗 int enemyHP = rand() % ((userHP / 50%) - (userHP / 75%)) + 1; 编辑:Thanatos在下面的链接中指出,这种方法可以给出统

好吧,由于某些原因,这似乎不起作用,我试图为敌人获得50-25马力

我也希望它是一个百分比。。。像

int userHP = 100;
int enemyHP = rand() % ((userHP - 50) - (userHP - 75)) + 1;
但我喜欢用整数,而不是浮点数或双精度。。。有人能帮我吗

int enemyHP = rand() % ((userHP / 50%) - (userHP / 75%)) + 1;

编辑:Thanatos在下面的链接中指出,这种方法可以给出统计随机性较差的数字。出于游戏目的,它可以正常工作,但不要将其用于科学或加密应用程序!事实上,根本不用兰德,用一些像梅森龙卷风的东西。

在这上面做一些代数运算:

int randRange(int a, int b) {return a + rand() % (1+b-a);}

…你可以很快发现出了什么问题。为什么不使用双倍数?

获取[最小值,最大值]范围内的随机数:

使用此整数近似值:


确保最大-最小值为什么你不想弄乱浮点数或浮点数?不要忘记接受答案,以感谢回答你的人…因为我不知道如何使用浮点数和浮点数只会让事情变得复杂。我只想要整数。没有小数。我会的,我的madre偷了我的笔记本电脑,我在这里没有一个真实的帐户。看:为什么这可能不是最好的解决方案。对。但这是一个非常简单的解决方案,比在游戏中设置敌人的HP更有效,并且不按要求使用浮点。
rand() % ((userHP - 50) - (userHP - 75)) + 1;

rand() % (userHP - 50 - userHP + 75) + 1;

rand() % (userHP - userHP - 50 + 75) + 1;

rand() % (-50 + 75) + 1;
int RandomNumber = Minimum + rand() % (Maximum - Minimum + 1);
double RandomNumber = Minimum + rand() * (double)(Maximum - Minimum) / RAND_MAX;