SeedGrower/randombyte128.c
2026-02-16 16:28:20 -05:00

39 lines
668 B
C

#include <stdio.h>
#include <sys/time.h>
#include <stdbool.h>
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());
}
}