Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Random глючит...   Найти похожие ветки 

 
han_malign ©   (2003-01-29 15:17) [40]

>RANDOM никогда не выдаст циклическую последовательность, неважно какой у него там регистр !

У Random - 32 битный регистр и если раз в милисекунду брать его значение - то через 49.7... дней мы выйдем на второй круг циклической последовательности...

system.pas
procedure _RandInt;
asm
{ ->EAX Range }
{ <-EAX Result }
IMUL EDX,RandSeed,08088405H
INC EDX
MOV RandSeed,EDX
MUL EDX
MOV EAX,EDX
end;



 
uw ©   (2003-01-29 15:19) [41]

>Dms

Выдаст!
Генераторы устроены примерно так. Есть внутренний регистр, например, 4-байтный. Randomize некоторым образом его инициализирует. Потом при каждом обращении к Random над этим регистром проделываются некоторые определенные манипуляции типа сдвига и XOR"а над определенными битами. Этот регистр однозначно отображается на заданный отрезок Range, и Random возвращает результат. Регистр, очевидно, имеет цикл, а вместе с ним и результирующая последовательность.
Когда я говорил, что "присутствует ровно 1 раз", то подразумевал последовательность значений регистра. Но статистические характеристики обеих последовательностей по сути одинаковы.


 
han_malign ©   (2003-01-29 15:20) [42]

если один раз было "после 75 - 12345" то это будет всегда...


 
Dms   (2003-01-29 15:24) [43]

вот это не так !!! я имел ввиду это утверждение, цикл длиной 2^32 пусть будет (это недостаток искусственных генераторов), но внутри этого цикла после 75 может идти что угодно, а не только 12345.


 
uw ©   (2003-01-29 15:54) [44]

>внутри этого цикла после 75 может идти что угодно, а не только 12345

Dms, я все понял - у тебя глючит комп!


 
Dms   (2003-01-29 16:06) [45]

Да ты что ? Неужели по твоему 75 можно получить только одним путем ? Таким, что если продолжить, то получится 12345 ... Если это так то почитай учебник 5го класса.
Если совсем времени не жалко - напиши простенькую программу и увидишь, что если a[i] = a[j], то из этого не следует, что ОБЯЗАТЕЛЬНО a[i+1] = a[j+1]


 
uw ©   (2003-01-29 16:09) [46]

Караул.


 
han_malign ©   (2003-01-29 16:24) [47]

Понял я ваши непонятки - при обрубании регистра по диапазону {Random(Max)} выходное 75 может получиться из разных значений регистра и повторение последовательности 75-12345 гарантированно произойдет только после выборки 2^32 Random-ов(хотя может и раньше, зависит от Max)...


 
Dms   (2003-01-29 16:34) [48]

Вот-вот, не всегда же после 75 идет 12345 :)


 
uw ©   (2003-01-29 17:36) [49]

А "Заменя пробелов" нас победила...



Страницы: 1 2 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.024 c
1-15655
Yakudza
2003-01-29 15:07
2003.02.06
Формат ячеек в Excel


1-15671
x02x
2003-01-29 20:01
2003.02.06
Люди, подскажите как можно сделать кнопку, другой формы(например.


1-15683
Alexander
2003-01-27 09:17
2003.02.06
При печати создаются spool файлы. Если я задал печать в формате


14-15868
Marusya
2003-01-19 22:32
2003.02.06
Не могу запустить Delphi5 под Win2k


1-15571
harismatik
2003-01-28 16:59
2003.02.06
TreeView с чекбоксами на нодах