Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 09.03.2008, 13:22   #11
alexx777
Форумчанин
 
Регистрация: 20.02.2008
Сообщений: 75
Репутация: 37
По умолчанию

Функция srand() записывает передаваемое ей значение в какую-то переменную, которую потом использует функция rand() для генерирования псевдослучайного чиса. Эта переменная по умолчанию имеет значение. И если убрать обращение к функции srand(), последовательность чисел будет генерироваться на основе этого значения. Но в таком случае при каждом запуске программы ты получишь одну и ту же последовательность псевдослучайных чисел.

Если ты инициализируешь генератор только в функции main(), лучше использовать функцию time() или комбинацию time() и clock() (например time(NULL)|clock()). Функцию clock() рационально использовать, если генератор нужно переинициализировать с частотой, меньшей чем одна секунда (например между нажатием пользователя на клавиши). Да и в этом случае желательно использовать конструкции типа time(NULL)|clock(). При использовании только clock() Часто бывает так, что при нескольких запусках программы, генерируется одинаковая последовательность чисел.
alexx777 вне форума  
Старый 09.03.2008, 13:52   #12
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Адрес: Киев, Украиниа
Сообщений: 47
Репутация: 10

icq: 393431984
По умолчанию

Спасибо! Стало понятнее! Дело в том, что не несколько, а 10 раз запускал с вариантом clock - была одинаковая последовательность чисел. Поменял на time - все класс.
Ceprey вне форума  
Старый 15.03.2008, 09:45   #13
ANTI
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 13
Репутация: 10
По умолчанию

Я пользуюсь Dev C++,функция read() у меня почему то не срабатывает
билиотеку <stdlib> прописываю.
ANTI вне форума  
Старый 15.03.2008, 09:51   #14
ANTI
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 13
Репутация: 10
По умолчанию

Мне бы знать как генерируются числа без использования
функции read().
ANTI вне форума  
Старый 15.03.2008, 13:27   #15
alexx777
Форумчанин
 
Регистрация: 20.02.2008
Сообщений: 75
Репутация: 37
По умолчанию

1) При чём эдесь функция read()?

2) Функция rand() присутствует в библиотеке Dev-C++.

3) Если нужно написать свой генератор, то придумай свой алгоритм, используя функцию time() или структуру SYSTEMTIME.
alexx777 вне форума  
Старый 15.03.2008, 17:36   #16
ANTI
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 13
Репутация: 10
Радость

Цитата:
Сообщение от alexx777 Посмотреть сообщение
1) При чём эдесь функция read()?

2) Функция rand() присутствует в библиотеке Dev-C++.

3) Если нужно написать свой генератор, то придумай свой алгоритм, используя функцию time() или структуру SYSTEMTIME.

У меня опыту то с гулькин ... , третью неделю всего вгрызаюсь в С++,
логического мышления пока не хватает.
ANTI вне форума  
Старый 15.03.2008, 17:47   #17
alexx777
Форумчанин
 
Регистрация: 20.02.2008
Сообщений: 75
Репутация: 37
По умолчанию

Код:

#include <cstdlib>
using std::srand;
using std::rand;
#include <time.h>

int main(){
 srand(time(0)); // Инициализируем генератор текущим временем.
 int rand_1 = rand(); // Случайное число.
 int rand_2 = rand()%10; // Случайное число в пределах от 0 включительно до 10 исключительно.
}

alexx777 вне форума  
Старый 15.03.2008, 18:18   #18
ANTI
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 13
Репутация: 10
Хорошо

Цитата:
Сообщение от alexx777 Посмотреть сообщение
Код:

#include <cstdlib>
using std::srand;
using std::rand;
#include <time.h>

int main(){
 srand(time(0)); // Инициализируем генератор текущим временем.
 int rand_1 = rand(); // Случайное число.
 int rand_2 = rand()%10; // Случайное число в пределах от 0 включительно до 10 исключительно.
}

БОЛЬШОЕ CПОСИБО.
ANTI вне форума  
Старый 12.04.2009, 11:30   #19
op3334
Новичок
 
Регистрация: 12.04.2009
Сообщений: 2
Репутация: 10
По умолчанию

Как модифицировать rand, чтобы функция выдавала значение к примеру от -200 до 200?
op3334 вне форума  
Старый 12.04.2009, 12:33   #20
Sazary
В тени
Профессионал
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,784
Репутация: 999
По умолчанию

Цитата:
Сообщение от op3334
Как модифицировать rand, чтобы функция выдавала значение к примеру от -200 до 200?
Код:

rand()%401 - 200

Sazary вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


16:20.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru