Задание: Генерация настоящих случайных чисел

путем замера интервалов между нажатиями клавиш пользователем.

Изучить методы генерации не воспроизводимых несмещенных

(к нулю или к единице) последовательностей случайных чисел,

а также методы оценки качества получаемой последовательности.

Ограничение: генерировать на каждое нажатие не более одного

случайного бита.

Сохранять результат в виде в последовательности случайных

байтов в файл.

Hints:

Для переключения терминала UNIX в режим по-символьного ввода

и отключенного эха (и обратно) можно воспользоваться следующей функцией:

#include

#include

#include

void set_icanon(int icanon)

{

struct termios oldt, newt;

tcgetattr(STDIN_FILENO, &oldt);

newt = oldt;

if (icanon)

newt.c_lflag |= (ICANON | ECHO);

else

newt.c_lflag &= ~(ICANON | ECHO);

tcsetattr(STDIN_FILENO, TCSANOW, &newt);

}

Для получения системного времени UNIX с долями секунд:

#include

#include

double get_time(void)

{

struct timeval tv;

struct timezone tz;

gettimeofday(&tv, &tz);

return tv.tv_sec + tv.tv_usec / 1000000.0;

}

12 лет назад
Detsle
Илья 
34 года
15 лет в сервисе
Был
10 лет назад

Заявки фрилансеров

Нет заявок фрилансеров