Случайные числа - это распространенный вопрос в программировании.
Случайные числа можно получить программно, а можно получить аппаратно.
Пример программной реализации случайных чисел на языке C++ написанная в среде Visual Studio 2010:
Пример:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
using std::cin;
int _tmain(int argc, _TCHAR* argv[])
{
int n = 100;
unsigned int x1 = 9;
unsigned int x2 = 0;
for(int i = 0; i<n; i++)
{
if (i % 20 == 0) cout<<"\n";
x1 = (( ~x1<<2 ^ x2<<1*i )*( ~x1<<1 ^ x2<<2*i )+ ( ~x1<<4 ^ x2<<5*i )) % 37;
x2 = x1;
cout<<" "<<x1;
}
cout<<endl;
_getch();
return 0;
}
Описание программы:
Мы объявляем первое число x1, которому присваиваем значение 9. А переменная x2 нужна для сохранения предыдущего значения x1. Данная строка:
x1 = (( ~x1<<2 ^ x2<<1*i )*( ~x1<<1 ^ x2<<2*i )+ ( ~x1<<4 ^ x2<<5*i )) % 37;
На самом деле проста.
~ - это инверсия.
<< - это сдвиг числа.
^ - это исключающее ИЛИ, а по простому оно называется XOR.
% - это остаток от деления. То есть наши числа будут от 0 до 36.
Результат работы программы: