Главная страница
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.045 c
1-1100892007
Алексей
2004-11-19 22:20
2004.12.05
Printer. Проблемы с размером файла при печати


1-1101052041
lamerokvdelphi
2004-11-21 18:47
2004.12.05
Для чего нужен Sleep?


1-1101284038
Alex_Bredin
2004-11-24 11:13
2004.12.05
Не могу записать значение в реестр


6-1096376062
Yerick
2004-09-28 16:54
2004.12.05
ЛВС


4-1098611442
TeNY
2004-10-24 13:50
2004.12.05
Подскажите пожалуста,как узнать ширину текущего шрифта в пикселях