diff options
-rw-r--r-- | games/random/random.c | 6 | ||||
-rw-r--r-- | games/random/randomize_fd.c | 2 | ||||
-rw-r--r-- | games/random/randomize_fd.h | 6 |
3 files changed, 10 insertions, 4 deletions
diff --git a/games/random/random.c b/games/random/random.c index 601036f..122ce45 100644 --- a/games/random/random.c +++ b/games/random/random.c @@ -162,7 +162,7 @@ main(int argc, char *argv[]) /* Compute a random exit status between 0 and denom - 1. */ if (random_exit) - return (int)(denom * random() / ((double)RAND_MAX + 1)); + return (int)(denom * random() / RANDOM_MAX); /* * Select whether to print the first line. (Prime the pump.) @@ -170,7 +170,7 @@ main(int argc, char *argv[]) * 0 (which has a 1 / denom chance of being true), we select the * line. */ - selected = (int)(denom * random() / ((double)RAND_MAX + 1)) == 0; + selected = (int)(denom * random() / RANDOM_MAX) == 0; while ((ch = getchar()) != EOF) { if (selected) (void)putchar(ch); @@ -180,7 +180,7 @@ main(int argc, char *argv[]) err(2, "stdout"); /* Now see if the next line is to be printed. */ - selected = (int)(denom * random() / ((double)RAND_MAX + 1)) == 0; + selected = (int)(denom * random() / RANDOM_MAX) == 0; } } if (ferror(stdin)) diff --git a/games/random/randomize_fd.c b/games/random/randomize_fd.c index b60c53c..e1011fb 100644 --- a/games/random/randomize_fd.c +++ b/games/random/randomize_fd.c @@ -202,7 +202,7 @@ randomize_fd(int fd, int type, int unique, double denom) } for (i = numnode; i > 0; i--) { - selected = ((int)denom * random())/(((double)RAND_MAX + 1) / numnode); + selected = ((int)denom * random())/(RANDOM_MAX / numnode); for (j = 0, prev = n = rand_root; n != NULL; j++, prev = n, n = n->next) { if (j == selected) { diff --git a/games/random/randomize_fd.h b/games/random/randomize_fd.h index 5b50e62..6f9fac2 100644 --- a/games/random/randomize_fd.h +++ b/games/random/randomize_fd.h @@ -29,6 +29,12 @@ #ifndef __RANDOMIZE_FD__ #define __RANDOMIZE_FD__ +/* + * The random() function is defined to return values between 0 and + * 2^31 - 1 inclusive in random(3). + */ +#define RANDOM_MAX 0x80000000UL + #define RANDOM_TYPE_UNSET 0 #define RANDOM_TYPE_LINES 1 #define RANDOM_TYPE_WORDS 2 |