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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Действительные числа и random 
V
    Опции темы
Metalex
Дата 5.12.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

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



Может ли random возвращать действительные числа? Если нет, то можно ли как-то их сгенерировать?


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Abyx
Дата 5.12.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1/rand()

число в интервале [0;1)
PM MAIL   Вверх
Metalex
Дата 5.12.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

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



Abyx, хорошая идея! smile

Добавлено через 9 минут и 7 секунд
Хотя теперь числа неслучайными стали.............


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Abyx
Дата 5.12.2009, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Metalex, они остались случайными.
или дай свое определение случайного числа
PM MAIL   Вверх
Metalex
Дата 5.12.2009, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

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



Я код оставил такой же, только изменил как ты сказал, теперь все числа максимум на 1-2 друг от друга отличаются. А до того все было в порядке.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Pitlord
Дата 5.12.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Abyx @  5.12.2009,  20:35 Найти цитируемый пост)
1/rand()

В знаменателе ещё единичку бы прибавить
PM MAIL   Вверх
bsa
Дата 5.12.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Чтобы получить равномерное распределение в пределах [0;1) (для тех, кто забыл, это значит значение 0.0 может присутствовать, а значение 1.0, нет), делать надо так:
Код
double rnd = rand() / (RAND_MAX + 1.0);
Если необходим интервал [0;1], то код надо заменить на:
Код
double rnd = rand() / (double)RAND_MAX;


Добавлено через 1 минуту и 6 секунд
Цитата(Abyx @  5.12.2009,  20:35 Найти цитируемый пост)
1/rand()
Код в принципе неверный, так как результатом rand() может быть 0. А делить на 0 нельзя.

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


Опытный
**


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

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



bsa, это концепция, а детали реализации ТС пусть додумывает сам
PM MAIL   Вверх
bsa
Дата 5.12.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Abyx, согласись, что деление расстояния на время более правильное действие для вычисления скорости, чем деление времени на расстояние.
PM   Вверх
Abyx
Дата 5.12.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



для полноты картины стоит заметить, что в msvc в вин32 rand() выдает 16 бит, что весьма мало для 32-разрядного float и чем более для 64-разрядного double
впрочем ТС не писал сколько бит ему надо, может и 16 достаточно

Добавлено через 9 минут и 9 секунд
bsa, согласен, у 1/x не равномерное распределение, тут я был неправ
PM MAIL   Вверх
Metalex
Дата 6.12.2009, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

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



RAND_MAX нужно обьявлять? или оно само вычисляется. Генерато случайных чисел у меня работает так:
Код
srand(time(NULL));
for (i=0; i<n; i++)
for (j=0; j<n; j++)
    mass[i][j]=rand()%100-50;



--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
bsa
Дата 6.12.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Metalex
генератор случайных чисел - находится внутри rand().
Использование операции % не дает равномерного распределения (т.е. вероятность каких-то значений выше, чем других).
RAND_MAX определен в <stdlib.h>
Почему не читаем документацию?

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

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



bsa, читаем..


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
bsa
Дата 6.12.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Metalex @  6.12.2009,  21:18 Найти цитируемый пост)
bsa, читаем..
незаметно.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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