Russian Qt Forum
Ноябрь 23, 2024, 04:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: qrand()  (Прочитано 23762 раз)
ann-joker
Гость
« : Май 17, 2012, 14:35 »

опишите qrand().
для чего и как использовать?
заранее спасибо)
Записан
Bepec
Гость
« Ответ #1 : Май 17, 2012, 14:45 »

Эммм...

Я могу только предполагать...

Что вы незнаете значения слова random...

А так выдаёт рандомное число...
Записан
ann-joker
Гость
« Ответ #2 : Май 17, 2012, 14:52 »

в смысле как описывать.
что то вроде
int a = qrand() * 10?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Май 17, 2012, 14:52 »

А попробовать?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #4 : Май 17, 2012, 15:00 »

рука-лицо...
нога-тапочка...

Нет слов...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Май 17, 2012, 15:00 »

опишите qrand().
для чего и как использовать?
заранее спасибо)
По существу вопрос "а для чего нужны случайные числа ?". Очень для многого.

Пример: нужно подсчитать площадь пересечения 2 фигур - круга и прямоугольника. Площади самих фигур находятся очень просто, а вот площадь пересечения - трудно вывести формулы. А для более сложных фигур формул может вообще не быть. В то же время генерируя случайные числа (Монте-Карло) найти площадь пересечения очень просто (пусть с какой-то погрешностью)
Записан
DmitryM
Гость
« Ответ #6 : Май 17, 2012, 15:47 »

Код:
int qrand ()
Цитировать
Thread-safe version of the standard C++ rand() function.

Returns a value between 0 and RAND_MAX (defined in <cstdlib> and <stdlib.h>), the next number in the current sequence of pseudo-random integers.

Use qsrand() to initialize the pseudo-random number generator with a seed value.
Потока безопасный генератор псевдослучайных чисел.
Юзать очевидно
Код:
qsrand ( 10 ); //инициализируем 
//....
for(int i = 0 ; i<10; ++i)
  std::cout<<qrand()<<std::endl;
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Май 17, 2012, 16:22 »

Многие вещи кажутся нам очевидными - ну действительно, как же можно этого не понимать? Однако достаточно чуть-чуть усложнить задачу - и куда денется вся очевидность  Улыбающийся

Пример: сгенерировать N случайных (равномерно распределенных) точек (QPoint3D) лежащих на поверхности треугольника заданного QPoint3D p[3]
Записан
DmitryM
Гость
« Ответ #8 : Май 17, 2012, 17:05 »

Пример: сгенерировать N случайных (равномерно распределенных) точек (QPoint3D) лежащих на поверхности треугольника заданного QPoint3D p[3]
замени равномерное распределение нормальным, тогда точно будет то что надо Подмигивающий
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Май 17, 2012, 18:01 »

замени равномерное распределение нормальным, тогда точно будет то что надо Подмигивающий
А как Вы себе представляете нормальное распределение точек на треугольнике?  Непонимающий

Видимо "если та ф-ция не подходит - ну значит эта авось пройдет". Хелпо-знания во всей своей красе  Улыбающийся
Записан
Fat-Zer
Гость
« Ответ #10 : Май 17, 2012, 19:34 »

Пример: сгенерировать N случайных (равномерно распределенных) точек (QPoint3D) лежащих на поверхности треугольника заданного QPoint3D p[3]
а что тут не очевидного? генерируем точки в единичном треугольнике и домножаем на матрицу преобразования.
А как Вы себе представляете нормальное распределение точек на треугольнике?  Непонимающий
видимо нормальное распределение в плоскости этого треугольника... но алгоритм от этого не меняется =)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Май 17, 2012, 19:57 »

а что тут не очевидного? генерируем точки в единичном треугольнике и домножаем на матрицу преобразования.
А откуда взять эту матрицу? И какой треугольник "единичный"?
Прошу исполнить, а то я совсем растерялся  Улыбающийся
Записан
Fat-Zer
Гость
« Ответ #12 : Май 17, 2012, 20:30 »

А откуда взять эту матрицу? И какой треугольник "единичный"?
Прошу исполнить, а то я совсем растерялся  Улыбающийся
под "единичным" треугольником вот этот подразумевал: (0,0,0) (0,1,0) (1,0,0)
матрица преобразования исходного треугольника в единичный. она обратная этой(если ничего не напутал):
(Ax-Cx)  (Bx-Cx)  (nx-Cx)  (Cx)  
(Ay-Cy)  (By-Cy)  (ny-Cy)  (Cy)  
(Az-Cz)  (Bz-Cz)  (nz-Cz)  (Cz)  
(0)(0)(0)(1)
n= cross(AC,BC)

[added]
вру... даже обратную не надо искать.... нам эта матрица и нужна...
« Последнее редактирование: Май 17, 2012, 20:42 от Fat-Zer » Записан
DmitryM
Гость
« Ответ #13 : Май 17, 2012, 21:07 »

А как Вы себе представляете нормальное распределение точек на треугольнике?  Непонимающий
Что мешает взять за мат. ожидание медиану этого треугольника, а дисперсию минимальный отрезок от медианы до противоположенной.
Эти точки не буду лежать в треугольнике?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Май 18, 2012, 00:43 »

Что мешает взять за мат. ожидание медиану этого треугольника, а дисперсию минимальный отрезок от медианы до противоположенной.
Эти точки не буду лежать в треугольнике?
Какие "эти", точки-то как генерировать?

под "единичным" треугольником вот этот подразумевал: (0,0,0) (0,1,0) (1,0,0)
матрица преобразования исходного треугольника в единичный. она обратная этой(если ничего не напутал):
Отнимать С от n  все-таки не стоит Улыбающийся Также неплохо прокомментировать как она применяется - точка множится на строку или на столбец? (полагаю на строку). Ну и неясно как генерируются точки на единичном треугольнике.
« Последнее редактирование: Май 18, 2012, 05:16 от Igors » Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.157 секунд. Запросов: 23.