diff --git a/randombyte128.c b/randombyte128.c new file mode 100644 index 0000000..44142ba --- /dev/null +++ b/randombyte128.c @@ -0,0 +1,39 @@ +#include +#include +#include + +long long millis(){ + struct timeval tv; + gettimeofday(&tv, NULL); + long long millisecs = (long long)tv.tv_sec * 1000 + tv.tv_usec / 1000; + return millisecs; +} +bool flip(){ + bool n = false; + long long then = millis() +1; + while (millis() <= then){ + n=!n; + } + return n; +} +bool get_fair_bit(){ + while (true) { + bool a = flip(); + if (a != flip()){ + return a; + } + } +} +char get_random_byte(){ + char n = 0; + for (int i = 0; i < 8; ++i){ + n <<=1; + n|= get_fair_bit(); + } + return n; +} +int main(){ + for (int i = 0; i < 128; ++i){ + printf("%hd\n", get_random_byte()); + } +}