Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.01 c
14-15831
VID
2003-01-18 19:32
2003.02.06
CD-ROM, CD-Rewriter, HDD - Проблемы...


14-15896
Shadow
2003-01-20 15:51
2003.02.06
Депресняк %((((


6-15792
dkDimon
2002-12-14 23:28
2003.02.06
Pager


1-15747
Brain
2003-01-27 11:24
2003.02.06
Items - Очень надо.


7-15973
BALU1111
2002-11-25 12:41
2003.02.06
TaskManger





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский