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

Вниз

Нужна инфа: ассемблер, генератор случайных чисел.   Найти похожие ветки 

 
Hmm ©   (2004-11-15 21:57) [0]

Здраствуйте.
Собственно, не знаю к кому еще обратиться, посему обращаюсь к вам.
Нужны ресурсы, на которых можно разжиться информацией о темах представленных в заголовке. Меня интересуют алгоритмы, по которым выбирается случайное число, и конкретно реализация их на ассемблере (хотя можно и на C++, Паскале ну или на худой конец в "устной форме").

Заранее, спасибо.


 
Burmistroff   (2004-11-15 22:22) [1]

Где-то в http://delphimaster.net/view/14-1100334597/

Приведен квадратичный конгруентный метод. Обычный, можно найти на algolist.manuals.ru

Фишка в том, что я не далее как позавчера писал это дело на асме (правда 16битном, под dos), так что могу предоставить прогу:
http://mc.webm.ru/5/rand.zip
Результаты
http://mc.webm.ru/5/rand1.gif

и вид собственно процедур


;function Random(@prev_rnd) - обычный конгруентный генератор СЧ
;в ax"е - адрес предыдущего рандома (byte)
Random proc
 push ax
 push dx
 push cx
 push si
 
 mov si, ax
 
 mov ax, word ptr [si]; ax:=prev_rnd
 mov dx, 106
 mul dx    ; ax:=ax*106
 add ax, 1283  ; ax:=ax+1283
 mov cx, 5ffh
   
 div cx; dx:=ax mod cx
 
 mov word ptr [si], dx; prev_rnd:=dx

 pop si
 pop cx
 pop dx
 pop ax
 ret
endp

;procedure Randomize();
;в ax"е - адрес рандома (byte)
Randomize proc
 push ax
 push cx
 push dx
 push si
   
 mov si, ax
 
 xor ax, ax
 mov ah, 2Ch
 int 21h
 
 mov ah, ch
 add cl, 12
 xor ax, cx
 shl ax, 3
 add ah, dh
 dec al
 add al, dl
 add ah, dl
 sub ax, 5
 
 mov bx, word ptr[si]
 shl bx, 1
 xor bx, ax
 jz @skip
  sub bx, 23
 @skip:
 mov ax, bx
 mov word ptr[si], ax
 
 pop si  
 pop dx
 pop cx
 pop ax
 ret
endp



 
Burmistroff   (2004-11-15 22:24) [2]

BTW: там вранье - не byte, а word используется для хранения рандома,и также, моя реализация метода (писалась от балды) иногда дает очень плохие результаты.


 
Hmm ©   (2004-11-15 22:32) [3]

спасибо.



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

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

Наверх




Память: 0.45 MB
Время: 0.034 c
1-1101200069
main
2004-11-23 11:54
2004.12.05
файловая система и TREEVIEW


14-1100756936
gn
2004-11-18 08:48
2004.12.05
Билл Гейтс: пароль мертв


14-1100587964
Rouse_
2004-11-16 09:52
2004.12.05
С Днем Рождения 16 ноября


14-1100786190
Ilya___
2004-11-18 16:56
2004.12.05
Подскажите пожалуйста! У меня есть таблица в которой указано,


1-1100703753
Yanis
2004-11-17 18:02
2004.12.05
Переносы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский