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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемма с логическим оператором if http://www.cyberforum.ru/cpp-beginners/thread334159.html
Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в последствии отображаются, а елси пользователь вводит символ...
C++ Непонятная ошибка Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому виду - В: 4 0 0 0 1 6 5 2 5 В матрице А числа идут как бы... http://www.cyberforum.ru/cpp-beginners/thread334155.html
C++ Как поместить в массив строк строку
Есть такой вот массив char s; ну или char** s; я никак не могу разобраться в этих указателях(( 1.Как поместить в него строку 2.Как извлечь из него строку
Вывод строки в текстовый файл C++
Вместо строки появляется нечто вроде 25d3fe4 Подскажите пожалуйста, в чем ошибка? ofstream fout; String str = Now(); fout << str.c_str();
C++ ofstream & ifstream :: binary read-write struct http://www.cyberforum.ru/cpp-beginners/thread334133.html
Не пойму в чем дело... но я не могу считать всю структуру FNTBINARY из файла, файл - это она и есть в бинарном виде, одна структура FNTBINARY. Размер структуры 72412, файл на диске весит 72440...
C++ Непонятная ошибка Нужно считать в вектор пар все числа, отличные от нуля. В паре - первое число - всегда типа int, второе - double. Написал небольшую ф-цию. Но не получается считать. Проблема - в одной строчке.. не... подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
18.07.2011, 18:46
Цитата Сообщение от sandye51 Посмотреть сообщение
мне кажется это бред)
А мне нет!



Я думаю так:

Рассмотрим такой подход:
C++
1
int a=rand()%100;//получаем число от 0 до 99
при таком подходе очень высокая вероятность повторения получаемого числа, даже если rand() будет каждай раз возвращать неповторяющиеся числа. Т.е. при rand()=150 и rand()=250 (350, 450 и т.д.) мы получим число 50 (а в диапазоне от 0 до RAND_MAX у нас очень большая вероятность получить одинаковые числа), что, естественно, нам не нужно.
А так, как показанно по ссылке:
C++
1
2
3
4
5
6
7
8
int randomNumber(int hi)  // Правильный генератор случайных чисел для области значений [0,hi]
    {
       // Получение области значений [0,1)
       const float scale = rand()/float(RAND_MAX);
 
       // Возврат значения в области значений [0,hi]
       return int(scale*hi + 0.5); // неявное приведение типа и отброс дробной части числа
    }
повторяющееся число мы имеем шанс получить только, если rand() вернула число, которое уже было. При всех других значениях числа повторяться не будут (это исключено логикой получения числа).
Поэтому, при желании получить много случайных чисел в нужном диапазоне, вариант 2 конечно предпочтительней.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.