27 lines
538 B
C
27 lines
538 B
C
|
#include <x86.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
static unsigned long long next = 1;
|
||
|
|
||
|
/* *
|
||
|
* rand - returns a pseudo-random integer
|
||
|
*
|
||
|
* The rand() function return a value in the range [0, RAND_MAX].
|
||
|
* */
|
||
|
int
|
||
|
rand(void) {
|
||
|
next = (next * 0x5DEECE66DLL + 0xBLL) & ((1LL << 48) - 1);
|
||
|
unsigned long long result = (next >> 12);
|
||
|
return (int)do_div(result, RAND_MAX + 1);
|
||
|
}
|
||
|
|
||
|
/* *
|
||
|
* srand - seed the random number generator with the given number
|
||
|
* @seed: the required seed number
|
||
|
* */
|
||
|
void
|
||
|
srand(unsigned int seed) {
|
||
|
next = seed;
|
||
|
}
|
||
|
|