srand 和 rand 是“伪随机数生成器”。srand 表示“随机种子”,通常与“时间(NULL);”一起使用
srand(time(NULL)); //Guarantees, that you won't get the exact same row of numbers twice.
rand()%100; //For example.
关于你的那个输入问题:这就像掷骰子。假设您假设数字从 0 到 99 (%100),您说结果 < 10 时为“ItemID 1”。在这种情况下,这意味着 10 % 的机会。
rand 不是最可靠的随机数生成器,不应该用于加密问题(因为行在数学上是可预测的),但对于游戏来说它应该可以正常工作。
这有帮助吗?
啊,是的,用代码说话。
srand(time(NULL)); //Initializes the random number generator. (Call once)
randID(1, 5, 0.1, 0.2); //Assuming some parameters here
void randID(int level, int diff, float wepChance, float armChance) {
int Rand = rand()%100;
wepChance *= 100; //Maximum dice roll for a weapon
armChance = wepChance + (armChance * 100); //Maximum dice roll for an arm.
if(Rand <= wepChance) //doWeapon
else if(Rand > WepChance && Rand < armChance) //doArm
}
这是未经测试且相当粗糙的代码,但我想你知道我在做什么。毕竟,我不太清楚你的意思。