Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.03.2008, 14:59   #1
ANTI
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 13
По умолчанию генератор случайных чисел на С++

Нужен генератор случайных чисел черканите пожалуйста кто нибудь
кодик.
ANTI вне форума
Старый 06.03.2008, 16:08   #2
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

http://programmersforum.ru/showthrea...7219#post77219
alexx777 вне форума
Старый 07.03.2008, 21:05   #3
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

Функция rand() допустим записат ьможно так
int x;
x=rand()%10; будет генерировать число от 0 до 9
#include <мозг.h>
Руслантус вне форума
Старый 07.03.2008, 21:13   #4
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Кстати, если в программе нужно очень часто переинициализировать генератор функцией srand() лучше записать

srand(clock());

чем

srand(time(NULL));

Первый вариант будет инициализировать генератор текущими миллисекундами, а не секундами как функция time().
alexx777 вне форума
Старый 08.03.2008, 12:02   #5
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

Я вот написал код, но по нему все врямя выводит восьмерки. По идее, поскольку функция зависит от часов, то каждый раз должны быть разные числа от 0 до 14? Что здесь не так?

Код:
#include <iostream>
#include "time.h"
using namespace std;


int main()
{
int x;
srand (clock());
x=rand()%15;
for (int i=0; i<21; i++)
{cout<<x<<endl;}
return 1;
}
Ceprey вне форума
Старый 08.03.2008, 12:49   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

randomize()
Carbon вне форума
Старый 08.03.2008, 13:22   #7
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

Спасибо! Но randomize в упор не видит, хоть и подключал stdlib.h в среде Visual St2005. Еще раз сделал все, как уже описано в теме rand() и random() в разных средах , но главная моя ошибка была в том, что функцию rand надо было вызывать каждый раз в теле самого цикла... Только сейчас дошло. У меня два вопроса: 1) Строчки 10 и 11, в принципе, дублируют функцию randomize? 2) иногда в вызове srand пишут srand(static_cast<unsigned>(time(NU LL))); для чего нужен static_cast<unsigned>?
Ceprey вне форума
Старый 08.03.2008, 13:32   #8
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Цитата:
2) иногда в вызове srand пишут srand(static_cast<unsigned>(time(NU LL))); для чего нужен static_cast<unsigned>?
Вообще оно ни на что не влияет. Преобразование типов выполняются автоматически. Просто функция srand объявлена как

void srand(unsigned int n);
alexx777 вне форума
Старый 08.03.2008, 13:45   #9
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от Ceprey Посмотреть сообщение
1) Строчки 10 и 11, в принципе, дублируют функцию randomize?
Скорее, только строчка 10.
Carbon вне форума
Старый 09.03.2008, 10:33   #10
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

И все-таки извините за настойчивость. 1) Не могу понять, как работает srand. Если это функция void, значит она ничего не возвращает. В таком случае она будет иметь какой-то смысл только в том случае, если будет какой-то переменной что-то присваивать? Поскольку функция написана не мной, а является стандартной, не знаю, кому она что-то присваивает, да и делает ли что-то, потому что когда убираю строчку "srand (clock()); ", программа работает точно так же. 2) Все-таки, какую библиотеку нужно подключить, кроме указанных, чтобы заработал randomize?

Код:
#include <iostream>   
#include "time.h"   
using namespace std;   
  
  
int main()   
{  
int x;  
srand (clock());  
 
for (int i=0; i<21; i++)  
{x=rand()%15; cout<<x<<endl;}  
return 1;   
}
Модератор: теги code не для красоты!

Последний раз редактировалось Carbon; 09.03.2008 в 12:43.
Ceprey вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы и генератор случайных чисел Psyka Помощь студентам 6 31.07.2008 05:53
выборка случайных чисел furstenberg Общие вопросы Delphi 2 13.01.2008 21:07
генератор случайных чісел Baron Помощь студентам 7 17.11.2007 00:55
Генератор случайных чисел в СМО Shoker Помощь студентам 1 13.10.2007 08:40
Свой генератор случайных чисел max4d Помощь студентам 15 03.04.2007 18:27