IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Заполнение матрицы случайными числами
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Объясните пожалуйста, как можно инициализировать матрицу случайными числами??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Нет. В IBM PC нет встроенного датчиа случайных чисел, поэтому пытаться извлечь их откуда-то - задача не из простых.
Обычно вместо случайных чисел используют псевдослучайные - т.е. вполне конкретную циклическую последовательность чисел, формируемых по определенному алгоритму, которая по статистическим характеристикам близка к последовательности случайных чисел.
Но т.к. числа формируются алгоритмически, последовательность их жестко предопределена. Чтобы избавиться от этой предопределенности вводят дополнительную процедуру инициализации алгоритма, при которой та же самая циклическая последовательность уже будет начинаться не с первого члена, а с какого-то другого. Т.е. при разных запусках программы последовательность не будет повторяться, а будет каждый раз другая. Для инициализации обычно берут текущее время.
Т.е. порядок работы такой (примеры, извини, в Паскаль - оболочке):
пишем сам генератор ПСЧ (простой и быстрый, но не уверен, что пройдет все статистические тесты):
var iax,ibx:word;

function random:word;{ »poµeñπpa óδñaτ¿ äBôX 16-í¿Γ¡δx »ceóño-c½πτa¡δx τ¿ce½:}
var q:word;
begin
asm
mov ax,iax
mov bx,ibx
xor ax,bx
shl ax,1
adc bx,0
xor bx,ax
xchg bl,bh
mov iax,ax
mov ibx,bx
end;
random := ibx;
end;
где в переменных хранится текущее состояние ДПСЧ.
Эти переменные надо инициализировать. Вот это можно сделать при помощи таймера:
procedure randomize;
begin
asm
Mov AL,00000000b
Out 43h,AL
In AL,40h
Mov AH,AL
In AL,40h
XChg AL,AH
mov iax,ax
end;
ibx := 9821;
end;

Теперь перед первым использованием мы вызываем randomize, а затем используем random
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Заполнение матрицы случайными числами   13.05.2008 20:43
18192123   вот что у меня получилось...только матрица инициал…   13.05.2008 22:11
andriano   1. Я уже навскидку не помню, 40/43 - это порты тай…   13.05.2008 22:42
18192123   1. Я уже навскидку не помню, 40/43 - это порты та…   13.05.2008 23:10
viagra versus levitra versus cia   Urologia Priligy   8.11.2021 3:20
andriano   1. Тогда у тебя последовательность явно не случайн…   13.05.2008 23:20
18192123   1. Тогда у тебя последовательность явно не случай…   14.05.2008 0:01
andriano   Нет. В IBM PC нет встроенного датчиа случайных чис…   14.05.2008 15:18
18192123   Вот к чему я пришла..генерацию вставила, но програ…   16.05.2008 2:34
andriano   Ты пытаешься использовать регистр bx сразу для дву…   16.05.2008 11:20
18192123   Я вынесла генерацию ПСЧ в отдельную процедуру (зна…   17.05.2008 21:17
andriano   1. Вместо "не работает" хотелось бы узна…   17.05.2008 21:30
18192123   1. Вместо "не работает" хотелось бы узн…   17.05.2008 22:07
andriano   Программы целиком на ассемблере писал лет 10-15 на…   18.05.2008 0:07
18192123   У тебя программа начинатся с begin? Как она знает…   18.05.2008 0:39
andriano   Ты располагаешь какими-либо средствами трассировки…   18.05.2008 2:30
18192123   если "нет", то замени перевод курсора в…   18.05.2008 20:29
18192123   Появился ещё один вариант генерации..но снова неуд…   23.05.2008 0:55


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.05.2024 6:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name