|
Тема |
Re: Сравняване на реални числа [re: KCV] |
|
Автор |
Eмил () |
|
Публикувано | 19.08.03 11:36 |
|
|
To KCV
"...от разните алгоритми предполагам че нещо свързано с делене с остатък..."
То за получаване на псевдослучайна редица аз доколкото
знам няма друг метод. И Борланд разбира се ползват
същия. Въпроса е да се подбере такава редица, че да
има възможно по-голям период на повторение и
по-равномерно разпределение на стойностите.
Конкретно те интересува реализацията на Борланд,
ако правилно съм разбрал.
В Делфи функциите Randomize и Random са от така
наречените магически функции (magic). Такива са например
още cos,sin,round,trunc,read,write и много други.
Това означава, че компилатора си ги познава и им
"прави магии", те донякъде (доколко само борланд знае)
реализациите им са в компилатора.
(Потърси в system.pas фразата
"Procedures and functions that need compiler magic" - интересно е.)
Конкретно за рализацията на random потърси в
system.pas следните:
procedure _RandInt;
procedure _RandExt;
на асемблер са. Не съм се задълбавал в подробности,
но очевидно работят на принципа:
"...нещо свързано с делене с остатък..."
|
| |
|
|
|