Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Немного о генерации псевдослучайных чисел





Для заполнения матрицы случайными (точнее, псевдослучайными) числами можно создать функцию, генерирующую числа из заданного диапазона. Все-таки, хорошо знакомая нам функция rand() генерирует числа из диапазона от 0 до 32767. Кроме того, при использовании этой функции без дополнительных манипуляций псевдослучайная последовательность будет всегда одной и той же. Для устранения этого недостатка мы напишем аналог функции randomize(), которая используется, например, в Паскале.

Итак, для простоты мы не будем увеличивать диапазон возможных значений, поскольку для наших целей этого вполне достаточно, но введём возможность смещения этого диапазона в сторону отрицательных чисел. Вспомним, что ограничить диапазон можно с помощью взятия остатка от деления:

 

int r = rand()%100;

 

Число r будет псевдослучайным числом из диапазона от 0 до 99. Сместить диапазон можно посредством прибавления минимально желаемого значения. Например,

 

int r = rand()%100 - 20;

 

Теперь число r будет псевдослучайным числом из диапазона от -20 до 7 9. Реализуем описанные действия в виде функции:

 

int rnd(int min, int max) {

return rand()%(max-min) + min;

}

 

Наконец, реализовать функцию randomize() можно так:

 

void randomize() {

srand(time(0));

}

 

Не забудьте подключить библиотеку time.h.

Заполнение матрицы случайными числами

С использованием созданных функций rnd() и randomize() заполнение матрицы псевдослучайными числами будет выглядеть так:

 

randomize();

for (int i=0; i<size; i++) {

for (int j=0; j<size; j++) {

matrix[i][j] = rnd(-99, 100);

}

}

 

 

Date: 2015-09-02; view: 254; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию