Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> генератор случайных чисел, помогите написать 
V
    Опции темы
natusik86
Дата 20.6.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 25.5.2009

Репутация: нет
Всего: нет



Всем привет! Подскажите, как сгенерировать случайное число в некотором диапазоне (например, от-5 до 3; от 4 до 10 и т.п.), диапазон задается пользователем.
PM MAIL   Вверх
azesmcar
Дата 20.6.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Код

int rand_range(int from, int to)
{
    return from + rand() % to;
}

PM   Вверх
Данкинг
Дата 20.6.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130





--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
natusik86
Дата 20.6.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 25.5.2009

Репутация: нет
Всего: нет



Цитата(azesmcar @ 20.6.2009,  15:03)
Код

int rand_range(int from, int to)
{
    return from + rand() % to;
}

Задаю диапазон от -5 до 3. В итоге генерируются только числа -5, -4 и -3 и никаких других не появляется.
PM MAIL   Вверх
natusik86
Дата 20.6.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 25.5.2009

Репутация: нет
Всего: нет



А для диапазона от 3 до 7 получаются числа от 5 до 9.
PM MAIL   Вверх
zim22
Дата 20.6.2009, 17:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(natusik86 @  20.6.2009,  15:52 Найти цитируемый пост)
Задаю диапазон от -5 до 3. В итоге генерируются только числа -5, -4 и -3 и никаких других не появляется.

c английским good? http://www.cplusplus.com/reference/clibrary/cstdlib/rand/


--------------------
PM MAIL   Вверх
Irdis
Дата 20.6.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 21.5.2008

Репутация: нет
Всего: 1



не так не интересно... можно например таким образом
берём системное время, делаем из него число, возводим в квадрат, берём 4 цифры от получившегося (из середины ,например), делаем из них число, возводим в куб берём 4 цифры и т. д.
достаточное количество подобных операций позволит сделать генератор случайных чисел

Это сообщение отредактировал(а) Irdis - 20.6.2009, 17:44
PM MAIL   Вверх
andrew_121
Дата 20.6.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Irdis, Теоретически - да.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
DRUID3
  Дата 20.6.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 1
Всего: 9



Цитата(Irdis @  20.6.2009,  16:42 Найти цитируемый пост)
не так не интересно... можно например таким образом
берём системное время, делаем из него число, возводим в квадрат, берём 4 цифры от получившегося (из середины ,например), делаем из них число, возводим в куб берём 4 цифры и т. д.
достаточное количество подобных операций позволит сделать генератор случайных чисел

Но к сожалению не с заданными нам характеристиками - функция распределения, длинна случайной последовательности etc. Это будет уже генератор истинно-случайных чисел. smile 

Цитата(natusik86 @  20.6.2009,  13:59 Найти цитируемый пост)
Всем привет! Подскажите, как сгенерировать случайное число в некотором диапазоне (например, от-5 до 3; от 4 до 10 и т.п.), диапазон задается пользователем. 

Вопрос в применении стандартных функций или Вы хотите написать свой ГСЧ? Различия принципиальные - как между биохимией и кулинарией. 


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
andrew_121
Дата 20.6.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(DRUID3 @  20.6.2009,  18:31 Найти цитируемый пост)
или Вы хотите написать свой ГСЧ?

Наверное, все же ГПСЧ.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
DRUID3
  Дата 20.6.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 1
Всего: 9



Цитата(andrew_121 @  20.6.2009,  17:38 Найти цитируемый пост)
Наверное, все же ГПСЧ. 

 smile Ну да. Просто вот же товарищ парой постов выше предложил - почти ГСЧ  smile ...


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
andrew_121
Дата 20.6.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(DRUID3 @  20.6.2009,  18:41 Найти цитируемый пост)
Просто вот же товарищ парой постов выше предложил - почти ГСЧ

Любопытно увидеть его реализацию. И в действии посмотреть.
Может кто-то набросает? Я не возьмусь, мат база не позволяет)


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Леопольд
Дата 20.6.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(natusik86 @ 20.6.2009,  15:52)
Цитата(azesmcar @ 20.6.2009,  15:03)
Код

int rand_range(int from, int to)
{
    return from + rand() % to;
}

Задаю диапазон от -5 до 3. В итоге генерируются только числа -5, -4 и -3 и никаких других не появляется.


Потому что не вычисляется диапазон. По моему, это из алгебры... smile
Код

template<typename T> //abs работает примерно так.
inline T abs(T arg){
    return arg < 0? -arg : arg;
}

int rand_range(int from, int to)
{
    return from + rand() % abs(to - from);
}


Это сообщение отредактировал(а) Леопольд - 20.6.2009, 19:55


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
W4FhLF
Дата 20.6.2009, 19:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 20
Всего: 121



Вот ГСЧ на основе шумов из звуковой карты(ZOMG! Они есть!) - http://habrahabr.ru/blogs/python/62237/


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
andrew_121
Дата 20.6.2009, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



W4FhLF, Да, знаю. Приходилось иметь с этим дело.
Еще это использовал: http://www.random.org/bitmaps/


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.