| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] random в C++ |
| Автор: Pavka 22.12.2009, 18:16 |
| Приветствую! требуется срочно ваша помощь: нужно написать программу в среде CodeBlocks на С++ с такой задачей: Int random (int a, int b)- возвращает псевдо случайное число от a до b буду очень рад если откликнитесь, поможите и раскажите ход работы! Заранее спасибо=) |
| Автор: GoldFinch 22.12.2009, 18:56 | ||
ну какбэ формула очевидна
|
| Автор: Pavka 22.12.2009, 19:32 |
| Если не сложно то полностью прогу для меня чайника от include до return заранее благодарю=) |
| Автор: bsa 22.12.2009, 21:06 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: MightyCat 22.12.2009, 21:16 | ||
|
| Автор: Pavka 23.12.2009, 06:15 |
| Спасиб, но а если радном должен быть в промежутке между А и Б которые мы вводим через scanf??? |
| Автор: cristaloleg 23.12.2009, 21:20 | ||
от a до b |
| Автор: djamshud 23.12.2009, 21:59 | ||
Из мана:
|
| Автор: savigm 24.12.2009, 03:27 |
А чем первый способ лучше второго? Скажите, а значения генерированные rand() меняются от запуска к запуску программы или сколько раз программу свою не запускай сценарий будет один и тот-же? |
| Автор: djamshud 24.12.2009, 13:58 | ||
>А чем первый способ лучше второго?
Я знаю лишь, что нужно так, а в теорию не окунался. Можно тыкнуть пальцем в небо и сказать, что старшие биты более кошерно распределяются, но это просто догадка). |
| Автор: Pavka 24.12.2009, 15:25 |
| Потыкав клавиши на угад у меня вот что получилось: #include <iostream> #include <ctime> int random(int, int); int main() { double a,b; scanf("%lf %lf",&a, &b); srand(static_cast<unsigned int>(time(NULL))); for (int i = 0; i != 1; ++i) std::cout << random(a, b) << " "; return 0; } int random(int min , int max ){ double a,b; return (min + rand()%(max-min+1)); // от min до max включительно } правда получается бред если вводить значение A больше чем значение B |
| Автор: Pavka 24.12.2009, 16:08 |
| Парни и ещё обьясните что именно происодит в этих строчках: srand(static_cast<unsigned int>(time(NULL))); std::cout << random(a, b) << " "; Спасибо, Luyan так рабит!!! |
| Автор: Luyan 24.12.2009, 16:26 |
здесь происходит вызов функции random в которую передаются два аргумента a и b. это псевдогенератор случайных чисел, http://www.cplusplus.com/reference/clibrary/cstdlib/srand/ и http://www.codenet.ru/progr/cpp/sprd/srand.php. |