Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 65, средняя оценка - 4.68
SIvan
3 / 3 / 1
Регистрация: 10.05.2011
Сообщений: 19
#1

Генерация случайных чисел в заданном диапазоне. - C++

18.07.2011, 18:11. Просмотров 8691. Ответов 21
Метки нет (Все метки)

Здесь сказано
Не используйте % (получение остатка от деления) для ограничения получаемых случайных чисел. Это не самый лучший метод получения случайных чисел определенного диапазона значений
Почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2011, 18:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация случайных чисел в заданном диапазоне. (C++):

Генерация случайных чисел на заданном диапазоне - C++
Здравствуйте, прошу прощения, если такая тема уже проскакивала. Есть простой генератор чисел (алгоритм Леммера): #include...

Генерация случайных чисел в диапазоне 0 - 1 - C++
Привет. Прошу помочь с рандомными числами. Нужны числа от 0 или 1

Генерация случайных вещественных чисел в диапазоне 0..1 - C++
Какнить можно заставить rand() работать по аналогии в Паскале, т.е. выдавать числа от 0 до 1 (0,000000054, 0,743325235, 0,0052411 и...

Генерация псевдослучайных чисел в заданном диапазоне - C++
Датчики случайных чисел можно привлекать при подборе проверочных исходных данных для программ. Получить с помощью датчика случайных...

Генерация случайных чисел типа double во всем диапазоне - C++
Нужна помощь в написании программы, генерирующей псевдослучайные числа типа double на всем диапазоне, используя функцию rand(). Я пытался...

Сформировать массив случайных целых чисел в заданном диапазоне - C++
Такая вот задачка не получается решить(написать) её. (хочу понять-разобраться что и как) Сформировать массив А из 20 случайных целых...

21
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
18.07.2011, 23:01 #16
Цитата Сообщение от grizlik78 Посмотреть сообщение
Правда гарантированно определить, что генератор является плохим нельзя, это можно утверждать лишь с некоторой заданной вероятностью.
Ну я бы немного по-другому сказал: не важно, какой из способов плохой, а какой ещё хуже. Если сложный способ добиться чего-либо не имеет явных преймуществ перед простым способом добиться того же самого, какой смысл использовать сложный способ?
А тестов случайной последовательности на случайность действительно много...
0
Bers
Заблокирован
18.07.2011, 23:23 #17
Цитата Сообщение от grizlik78 Посмотреть сообщение
Правда гарантированно определить, что генератор является плохим нельзя, это можно утверждать лишь с некоторой заданной вероятностью.
Кнут, том второй.
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
18.07.2011, 23:25 #18
Цитата Сообщение от Bers Посмотреть сообщение
Кнут, том второй.
А ничё, что я на него в том сообщении сослался?
0
Bers
Заблокирован
18.07.2011, 23:37 #19
Цитата Сообщение от grizlik78 Посмотреть сообщение
А ничё, что я на него в том сообщении сослался
Да нет, ничего. Правда, что-то ссылки невидать. Да и не писал Кнут ничего подобного:
Цитата Сообщение от grizlik78 Посмотреть сообщение
Правда гарантированно определить, что генератор является плохим нельзя, это можно утверждать лишь с некоторой заданной вероятностью.
Он лишь предложил разные методики определения "качества" рандома.

Если кому то захочется состряпать что нибудь этакое - могут почитать, проникнуться, и выбрать для себя подходящие.

Добавлено через 2 минуты
а.... извиняюсь, не увидил просто ссылки
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
18.07.2011, 23:39 #20
Bers, стоит яснее выражать свою мысль, а не просто "Кнут, том второй." Я вот до сих пор так и не понял, к чему это было.
Процитированные мои слова, это мои слова, Кнуту я их не приписывал. А ссылка до сих пор есть. Вернее не ссылка, а отсылка к той книге.
0
Bers
Заблокирован
18.07.2011, 23:50 #21
Цитата Сообщение от grizlik78 Посмотреть сообщение
Bers, стоит яснее выражать свою мысль, а не просто "Кнут, том второй." Я вот до сих пор так и не понял, к чему это было.
Не бывает "плохих" или "хороших" рандомов.
Ни "гарантированно", ни даже просто с некоторой "вероятностью".

Бывают рандомы "качественные", и не "качественные". Степень "качественности" определяется конкретными задачами, для которых они нужны.

Есть ещё один критерий качества - то, насколько сильно рандом по своему поведению приближен к реальной случайности.

Для того, что бы определить эту степень близости, у Кнута есть:

Цитата Сообщение от Bers Посмотреть сообщение
Он лишь предложил разные методики определения "качества" рандома.
Если кому то захочется состряпать что нибудь этакое - могут почитать, проникнуться, и выбрать для себя подходящие.
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
19.07.2011, 00:04 #22
Цитата Сообщение от Bers Посмотреть сообщение
Не бывает "плохих" или "хороших" рандомов.
Чем разделение на "плохие"/"хорошие" принципиально отличается от разделения на "качественные"/"не качественные"? Вопрос риторический.
Цитата Сообщение от Bers Посмотреть сообщение
Степень "качественности" определяется конкретными задачами, для которых они нужны.
Степень качественности невозможно определить точно. К сожалению под рукой второго тома сейчас нет, но там наверняка есть слова о том, что запросто можно забраковать "качественный" генератор.
Если что, тесты не обязательно предназначены для проверки псевдослучайных генераторов, которые по определению не могут быть случайными. Первое их назначение — проверка аппаратных датчиков. Эх, если бы был бы такой метод, который однозначно бы говорил: генератор качественный! Фига. Не может быть таких тестов. Зато можно напридумывать кучу тестов, которые забракуют некачественные. Вот только есть вероятность и качественные забраковать. Да в общем что это я тут? Было это всё у Кнута, если читать слова а не буквы Надоело мне тут философствовать на сегодня
0
19.07.2011, 00:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2011, 00:04
Привет! Вот еще темы с ответами:

Генерация массива случайных чисел равномерно распределенных в заданном интервале и упорядочение массива - C++
Помогите создать ПО (на любом языке программирования) позволяющее, генерирующее массив заданной длины со случайными числами, равномерно...

генерация рандомных чисел в диапазоне - C++
Добрый день подскажите (или дайте кусочек кода) как реализовать генерацию рандомных чисел

Генерация случайных чисел - C++
#include <stdio.h> #include <conio.h> #include <clocale> #include <time.h> #include <stdlib.h> using namespace std; int main ()...

Генерация случайных чисел - C++
Подскажите пожалуйста правильно ли я осуществил перевод строк из С в С++, сомневаюсь С - randomize(); С++ - srand(NULL); С ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.