C 什么';我的伪随机数发生器出了什么问题?

C 什么';我的伪随机数发生器出了什么问题?,c,random,C,Random,我的随机数发生器有点问题。我的程序的工作原理是给玩家一组忍者,每个人都有一个隐形分数。要想进步,忍者需要通过“隐形检查”。他们如何通过是一个RNG将拉任何整数之间的0和忍者的隐身得分。如果RNG取0,则检查失败。问题是,一些忍者的隐身得分是1。这导致他们总是无法通过检查。在我分别隔离和测试RNG之后,情况仍然如此。我还注意到,它似乎无法从隐身得分本身中拔出。例如,一个隐身得分为3的忍者从不拉3分,只拉0分、1分和2分。那么,我如何修复这个RNG int stealth_check(struct

我的随机数发生器有点问题。我的程序的工作原理是给玩家一组忍者,每个人都有一个隐形分数。要想进步,忍者需要通过“隐形检查”。他们如何通过是一个RNG将拉任何整数之间的0和忍者的隐身得分。如果RNG取0,则检查失败。问题是,一些忍者的隐身得分是1。这导致他们总是无法通过检查。在我分别隔离和测试RNG之后,情况仍然如此。我还注意到,它似乎无法从隐身得分本身中拔出。例如,一个隐身得分为3的忍者从不拉3分,只拉0分、1分和2分。那么,我如何修复这个RNG

int stealth_check(struct ninja student[4]){
    int stealth_pass;
    int i;
    for(i = 0; i < 4; i++){
        stealth_pass = rand() % student[i].stealth;
        printf("%d\n\n", stealth_pass);
    }
return 0;
}
int隐身检查(结构忍者学生[4]){
内华道;;
int i;
对于(i=0;i<4;i++){
秘密行动=兰德()%student[i]。秘密行动;
printf(“%d\n\n”,隐形通行证);
}
返回0;
}

在学生[i]中添加1。在模数中使用它之前先潜行。

在学生[i]中添加1。在模数中使用它之前先潜行。

我尝试过,但忍者3号仍然总是0。我试了很多次,忍者1和忍者3都有1的隐形,但是虽然这解决了忍者1的问题,忍者3仍然拉0并且只有0。你每次都将随机数生成器初始化为不同的种子吗?rand()是一个伪随机数生成器。除非你改变种子,否则每次跑步都会产生相同的数字序列。我试过了,但是忍者3号仍然总是0。我试了很多次,忍者1和忍者3都有1的隐形,但是虽然这解决了忍者1的问题,忍者3仍然拉0并且只有0。你每次都将随机数生成器初始化为不同的种子吗?rand()是一个伪随机数生成器。除非您更改种子,否则每次运行它都会生成相同的数字序列。请提供一个。任何整数除以1的余数为0,除以2最多为1,除以3最多为2,我不明白您的疑问是什么。
rand()%student[I]。隐身-->
rand()%(学生[i]。隐形+1u)。注意
()
u
。请提供一个。任何整数除以1的余数是0,除以2最多是1,除以3最多是2,我不明白你的疑问是什么。
rand()%student[I]。隐身-->
rand()%(学生[i]。隐形+1u)。注意
()
u