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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Rand() 
:(
    Опции темы
PRF
Дата 24.4.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Люди помогите, как вывести случайно числа из диапазона  [0, 1] естественно они будут вещественными!!! Пожалуйста!!
PM MAIL   Вверх
MAKCim
Дата 24.4.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Код

(double)1.0 / random();



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
PRF
Дата 24.4.2008, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



в какой библиотеки находиться random() а то ошибку выдает?

Добавлено через 3 минуты и 1 секунду
извините я ступил, спасибо большое
PM MAIL   Вверх
Любитель
Дата 25.4.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



MAKCim, какой random()?  smile rand() smile


--------------------
PM MAIL ICQ Skype   Вверх
bsa
Дата 25.4.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Цитата(MAKCim @ 24.4.2008,  22:28)
Код

(double)1.0 / random();

Такой код будет исключениями сыпать smile
лучше так:
Код
double rnd = rand() / (RAND_MAX - 1.0); //1.0 тоже нужно

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


Explorer
****


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

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



bsa, так получишь целые числа


--------------------
Мой блог
PM MAIL WWW   Вверх
MAKCim
Дата 25.4.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(Любитель @  25.4.2008,  11:33 Найти цитируемый пост)
какой random()?

тот, который в <stdlib.h>
по крайней мере в glibc-2.5

Цитата(bsa @  25.4.2008,  15:47 Найти цитируемый пост)
Такой код будет исключениями сыпать

почему?
проверил, нормально


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 25.4.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



MAKCim, стандарту соответствует rand(). В не линуксах random() нет. smile

Добавлено через 46 секунд
Цитата(MAKCim @ 25.4.2008,  20:13)
Цитата(bsa @  25.4.2008,  15:47 Найти цитируемый пост)
Такой код будет исключениями сыпать

почему?
проверил, нормально

random() может возвращать 0? А что у нас происходит при делении на 0?
PM   Вверх
MAKCim
Дата 25.4.2008, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(bsa @  25.4.2008,  20:39 Найти цитируемый пост)
MAKCim, стандарту соответствует rand(). В не линуксах random() нет.

да?
не знал
всегда полагал, что в <stdlib.h> все стандартное

Цитата(bsa @  25.4.2008,  20:39 Найти цитируемый пост)
andom() может возвращать 0? А что у нас происходит при делении на 0? 

раздели вещественное число на 0
это не приведет к SIGFPE
будет inf
хотя с практической точки зрения это, конечно, неправильно

Это сообщение отредактировал(а) MAKCim - 25.4.2008, 21:13


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Любитель
Дата 27.4.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(MAKCim @  25.4.2008,  21:12 Найти цитируемый пост)
да?не зналвсегда полагал, что в <stdlib.h> все стандартное

random точно не стандартен smile

Цитата(MAKCim @  25.4.2008,  21:12 Найти цитируемый пост)
раздели вещественное число на 0это не приведет к SIGFPEбудет inf

Обычно компилерозависимо. Точнее так - многие компилеры имеют опции по управлению вещественой арифметики. В том числе вместо всяких "левых" чисел могут сделать что-нить другое smile


--------------------
PM MAIL ICQ Skype   Вверх
math64
Дата 28.4.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если хотите получить равномерное распределение, нужно делать как предложил bsa. Но если число значащих цифр в double больше чем в int, нужно вызывать rand() два раза:
Код

double rnd = (double)rand()*RAND_MAX+rand();
rnd /= ((double)RAND_MAX*RAND_MAX-1);

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


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(Любитель @  27.4.2008,  21:59 Найти цитируемый пост)
Обычно компилерозависимо

вот уж кто, а компилятор тут точно не причем  smile 
Цитата(Любитель @  27.4.2008,  21:59 Найти цитируемый пост)
В том числе вместо всяких "левых" чисел могут сделать что-нить другое

что?

где в примере 
(double)1.0 / random() 
что-то "левое"?

и вообще, стандарт представления вещественых чисел (IEEE 754) вводит понятие знаковой бесконечности со своим двоичным представлением
и условия, при которых, результат операции имеет именно такое представление

большинство же устройств вещественной арифметики процессоров в рамках execution core поддерживают этот стандарт

Это сообщение отредактировал(а) MAKCim - 28.4.2008, 10:06


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
threef
  Дата 28.4.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ладно,
MAKCim
но ты не выполняешь условие задачи - результат в пределах 0, 1 
- а это хуже, чем несоблюдение стандартов smile))
PM MAIL   Вверх
MAKCim
Дата 28.4.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



threef
Цитата(threef @  28.4.2008,  12:44 Найти цитируемый пост)
но ты не выполняешь условие задачи - результат в пределах 0, 1 

я об этом писАл
Цитата(MAKCim @  25.4.2008,  21:12 Найти цитируемый пост)
хотя с практической точки зрения это, конечно, неправильно





--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Любитель
Дата 28.4.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(MAKCim @  28.4.2008,  10:05 Найти цитируемый пост)
вот уж кто, а компилятор тут точно не причем

Ладно, давай так - рантайм этого компилера.


--------------------
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0833 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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