Главная страница
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.47 MB
Время: 0.024 c
3-1099658985
Mamed
2004-11-05 15:49
2004.12.05
Acces OLE Object and delphi image


1-1101111571
Alex@work
2004-11-22 11:19
2004.12.05
Диаграммы Ганта


4-1098466459
Dot
2004-10-22 21:34
2004.12.05
изменить байт


1-1101214540
Fatal
2004-11-23 15:55
2004.12.05
Проблемы выгрузки в Excel


14-1100525614
YurikGL
2004-11-15 16:33
2004.12.05
Internal Server Error