Главная страница
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
1-1101137379
hgd
2004-11-22 18:29
2004.12.05
Как отследить


1-1100702009
AlexxGold
2004-11-17 17:33
2004.12.05
Перевод ресурсов делфи


1-1101114923
markers
2004-11-22 12:15
2004.12.05
Работа с константами и текстом.


14-1100661404
Думкин
2004-11-17 06:16
2004.12.05
С днем рождения! 17 ноября!


14-1099726170
DillerXX
2004-11-06 10:29
2004.12.05
Не поможите ли с олимпиадной задачей?