случайные числа в c



Автор Owen Gefest задал вопрос в разделе Другие языки и технологии

C++ случайные числа и получил лучший ответ

Ответ от ?????? Зелёный змий ??????[гуру]
Вкратце: все генераторы выдают некое количество (множество) значений, и эти значения попадают в некий интервал. стандартный генератор rand() имеет множество значений RAND_MAX + 1 из диапазона [0 - RAND_MAX] определен RAND_MAX так #define RAND_MAX 0x7fff И никакая арифметика над полученными значениями не может увеличить множество значений. Уменьшить - может. Изменить диапазон значений можно с помощью арифметики, равномерность распределения и статистические характеристики могут пострадать, если применять бездарное преобразование. Одним из таких бездарных преобразований (и при этом почему то очень популярное) является операция взятия остатка. int r = rand() % 100; // так не нужно делать! Если нужны числа в диапазоне от 0 до 100 (не включая 100), то грамотное преобразование делается так int r = (100.0 / (MAX_RAND + 1)) * rand(); (100.0 / (MAX_RAND + 1)) - это компилятором будет конвертировано в константу с плавающей точкой, а все преобразование будет состоять из одного умножения на эту константу. Для примера нужен диапазон от -1000 до 1000, включая границы диапазона (всего 2001 значение) int r = -1000 + (2001.0 / (MAX_RAND + 1)) * rand();

Ответ от Пользователь удален[гуру]
что значит без заданного диапазона? у вас числа в компьютерном представлении в любом случае ограничены каким то диапазоном вычитайте и делите если нужно

Ответ от Krab Вark[гуру]
Сложи два числа. При переполнении получится отрицательное.

Ответ от Ёергей Алексеев[гуру]
Запускать парно два генератора случайных чисел. Один - непосредственно на число, второй - в интервале 0-1 - на знак. int y = random(2); int x = random(num); if(y)x*=-1;

Ответ от Technoraptor[гуру]
int number = rand(); if(number%2) number *= -1;

Ответ от Голый Мужик[гуру]
напишите свой генератор. class Random { private: int _seed; public: Random(int seed) : _seed(seed) { } int Next() { _seed = _seed*1664525 + 1013904223;

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: C++ случайные числа

как в c++ генерировать случайное число?
вообще srand(time(NULL)); x = rand()
не инициализируете генератор все время одно и тоже будет
подробнее...

Какие бывают алгоритмы генерации случайных чисел?
Не бывает алгоритмов генерации случайных чисел! А алгоритмы генерации псевдослучайной
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Как сделать Random в C#
Есть три способа (основные в С#):

1ый) это System.Random - его описали выше.
подробнее...

C++ округление числа в большую сторону
Есть кстати противоположная функция floor (от слова пол) , округляет всегда в меньшую сторону, а
подробнее...

Подскажите нормальную функцию генерации случайных чисел на C++
srand(time(NULL));
int k = rand() % 101+ 50

Выдаст ПСЕВДОслучайное значение из
подробнее...
спросили в Stdio h
Visual C++ не вычисляется sin
Всё там вычисляется.
Попробуй для начала задать значение переменной x, а не использовать
подробнее...

Ч то такое ДИСКРЕНТНЫЕ СЛУЧАЙНЫЕ ВЕЛИЧИНЫ?
Дискретной случайной величиной называется такая переменная величина, которая может принимать
подробнее...

Как сгенерировать пуассоновский поток сообщений на C# или C++?
Примерно так (если наврал, то читай Кнут, Исскуство программирования, третье издание, том 2, глава
подробнее...
спросили в Fleetwood Mac
Генерация рандомного объекта в Unity 3D
"На публичные закинуть объекты и тадам! " - это что? Скинь свой скрипт, тогда скажу, чу не так.подробнее...
спросили в Randomness X/1999
Программа создания случайных чисел
сории.. . ты модуль переменуй!! ! c randomiz в любое другоее имя
и x сделай real, или double
подробнее...

люди кто знает пароль на деньги в игре Sims2 и 3???
Ctrl-shift-c (одновременно).. вводишь motherlode -прибавляет 50000$

Kachingподробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*