Пацаны, помогите пожалуйста создать настоящий генератор случайных чисел!
дело в том, что функция random основана на математике, а потому числа которые она возвращает не хаотичны, много повторов подряд
перевернул форумы и понял, что единственный способ получить настоящее случайное число описан здесь
http://habrahabr.ru/post/62237/
за исключением получения их из квантового вакуума
http://www.lenta.ru/news/2012/04/16/randomiser/ 
а именно "запись помех электропитания" звуковой карты в буфер, считывание оттуда значения
грубо говоря мне нужен "более рандомный рандом"
в общем импортировал из MMSystem.pas функции и структуры данных, и перевернул форумы по записи с микофона и вообще записи, но сложновато
прошу помочь по возможности!
код:
читать дальше »
Код:

[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program
[ Code]
const
WAVE_FORMAT_PCM = 1;
type
tWAVEFORMATEX = record
wFormatTag: Word; { format type }
nChannels: Word; { number of channels (i.e. mono, stereo, etc.) }
nSamplesPerSec: DWORD; { sample rate }
nAvgBytesPerSec: DWORD; { for buffer estimation }
nBlockAlign: Word; { block size of data }
wBitsPerSample: Word; { number of bits per sample of mono data }
cbSize: Word; { the count in bytes of the size of }
end;
wavehdr_tag = record
lpData: PAnsiChar; { pointer to locked data buffer }
dwBufferLength: DWORD; { length of data buffer }
dwBytesRecorded: DWORD; { used for input only }
dwUser: DWORD; { for client's use }
dwFlags: DWORD; { assorted flags (see defines) }
dwLoops: DWORD; { loop control counter }
lpNext: Integer; { reserved for driver }
reserved: DWORD; { reserved for driver }
end;
function waveInOpen(lphWaveIn: Integer; uDeviceID: UINT; lpFormatEx: tWAVEFORMATEX; dwCallback, dwInstance, dwFlags: DWORD): UINT; external 'waveInOpen@winmm.dll stdcall';
function waveInPrepareHeader(hWaveIn: Integer; lpWaveInHdr: wavehdr_tag; uSize: UINT): UINT; external 'waveInPrepareHeader@winmm.dll stdcall';
function waveInAddBuffer(hWaveIn: Integer; lpWaveInHdr: wavehdr_tag; uSize: UINT): UINT; external 'waveInAddBuffer@winmm.dll stdcall';
function waveInUnprepareHeader(hWaveIn: Integer; lpWaveInHdr: wavehdr_tag; uSize: UINT): UINT; external 'waveInUnprepareHeader@winmm.dll stdcall';
function waveInClose(hWaveIn: Integer): UINT; external 'waveInClose@winmm.dll stdcall';
function waveInStart(hWaveIn: Integer): UINT; external 'waveInStart@winmm.dll stdcall';
function waveInReset(hWaveIn: Integer): UINT; external 'waveInReset@winmm.dll stdcall';
function waveInStop(hWaveIn: Integer): UINT; external 'waveInStop@winmm.dll stdcall';
procedure InitializeWizard;
var
Noise : tWAVEFORMATEX;
begin
Noise.wFormatTag := WAVE_FORMAT_PCM;
Noise.nChannels := 1;
Noise.wBitsPerSample := 16;
Noise.nSamplesPerSec := 11025;//
Noise.cbSize:=Noise.wBitsPerSample div 8 * Noise.nChannels;
Noise.nAvgBytesPerSec:=Noise.nSamplesPerSec * Noise.nBlockAlign;
Noise.cbSize:=0;
end;
PS: извините, что выношу вам мозг своими злостными потребностями
