Главная страница
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.023 c
14-1100801883
Drakon
2004-11-18 21:18
2004.12.05
Предпятничная задача


14-1100367534
Drakon
2004-11-13 20:38
2004.12.05
Послепятничная задача. Повторение - мать учения.


9-1091631489
VAmpiro$
2004-08-04 18:58
2004.12.05
Какнарисовать какойто любой 3D обект?


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


1-1101061585
tormoz
2004-11-21 21:26
2004.12.05
Microsoft Word