1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include <stdio.h> static unsigned int mirand = 1; float sfrand( void ) { unsigned int a; mirand *= 16807; a = (mirand&0x007fffff) | 0x40000000; return( *((float*)&a) - 3.0f ); } int main ( void ) { printf("%g\n", sfrand()); return 0; }
1
-0.995993