dimanche 16 octobre 2016

C rand() dice issue

I'm new to C and I'm reading a book about it. I just came accross the rand() function. The book states that using rand() returns a random number from 0 to 32767. It also states that you can narrow the random numbers by using % (modulus operator) to do so. Here is an example: the following expression puts a random number from 1 to 6 in the variable dice

dice = (rand() % 5) + 1;

I'm unable to get a remainder of 5 as any number from 0 to 33767 % 5 is equal to 0 to 4, but never 5. Shouldn't it be % 6 in the above statement instead?

For example, if I choose randomly a number between 0 and 32767, let's say 75, then: 75 % 5 == 0 76 % 5 == 1 77 % 5 == 2 78 % 5 == 3 79 % 5 == 4 80 % 5 == 0 Etc.

So regardless of the random number between 0 and 32767, the remainder will never be 5, so it will not be possible to get a 6 number for the dice ( as per the above statement).

Not sure if you will understand what I mean but your help would be much appreciated. Thanks!




Aucun commentaire:

Enregistrer un commentaire