Russian Qt Forum
Ноябрь 23, 2024, 20:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
псевдослучайные числа типа float
Страниц:
1
...
3
4
[
5
]
6
7
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: псевдослучайные числа типа float (Прочитано 39873 раз)
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: псевдослучайные числа типа float
«
Ответ #60 :
Июль 02, 2011, 18:13 »
Пойду погуляю с собачкой)
Потом поделюсь своими соображениями по всему этому делу)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #61 :
Июль 02, 2011, 18:27 »
Цитата: m_ax от Июль 02, 2011, 16:50
Я доверяю Mersenne Twister)) Как то давно приходилось его тестировать на случайность))
Ну привет, а очевидное сгущение у полюсов Вас не смущает? Ведь в полярных координатах только phi (азимут) "белый" а theta (угол возвышения) - совсем нет. Как бум исправлять?
Цитата: BRE от Июль 02, 2011, 17:03
Решение никому не нужно, ты разве не понял?
Смысл всех постов - это вброс "потока сознания"
BRE
я прошу Вас вести себя цивильно и на личности не переходить. Я никого не оскорбил и ничем не нарушил правила форума (если не так - поправьте). Если Вам тема неинтересна - спокойно промолчите, а не пытайтесь другим закрыть рот (все равно не получится).
Цитата: Denjs от Июль 02, 2011, 16:58
а главное как это однозначно определить, (мы все тут уже 4 страницы пытаемся понять что же такое хочет Igors, и как это можно формализовать).
...
Что же он точно имел в виду и чего хочет я вот пока не знаю)
Учитель, давайте "по жизни". Есть "поверхность" которая может иметь много миллионов точек для визуализации. Честно считать каждую из них - ну это десятки и десятки часов расчетов. Поэтому давайте считать только "некоторые" точки (самплы), остальные - интерполировать. Разумеется мы понимаем (и принимаем) правила игры - что наш расчет быстр но приблизителен, будут погрешности интерполяции и.т.п. - обо всем этом мы с заказчиком договоримся, это наша забота.
Очень быстро выясняется что задача сводится к тому что я изложил в посте #8, т.е. по-умному расставить точки. Иначе придется долго пыль глотать с ненужными расчетами. Это абсолютно НОРМАЛЬНАЯ постановка реальной задачи, и Ваньку валять (мол, не понимаю, не формализовано) здесь нечего
Записан
ufna
Гость
Re: псевдослучайные числа типа float
«
Ответ #62 :
Июль 02, 2011, 18:35 »
Цитата: Igors от Июнь 30, 2011, 20:42
Ну у Вас с инструментарием все Ок (не сомневался), но точки распределены как бык поссал - а надо аккуратно (attachment)
А можно то же самое, только:
- с расстоянием между точками в 2 раза больше.
- с расстоянием между точками в 2 раза меньше.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #63 :
Июль 02, 2011, 19:11 »
Цитата: ufna от Июль 02, 2011, 18:35
Цитата: Igors от Июнь 30, 2011, 20:42
Ну у Вас с инструментарием все Ок (не сомневался), но точки распределены как бык поссал - а надо аккуратно (attachment)
А можно то же самое, только:
- с расстоянием между точками в 2 раза больше.
- с расстоянием между точками в 2 раза меньше.
Расстояние не контролируется - просто можно изменить число самплов (тот же эффект)
«
Последнее редактирование: Июль 02, 2011, 19:14 от Igors
»
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: псевдослучайные числа типа float
«
Ответ #64 :
Июль 02, 2011, 19:47 »
Как-то оно слишком упорядоченно для случайного.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #65 :
Июль 02, 2011, 20:03 »
Цитата: LisandreL от Июль 02, 2011, 19:47
Как-то оно слишком упорядоченно для случайного.
Цель "поймать" все что под точками - желательно с наименьшим числом точек. А уж как (случайно или нет) - проблема разработчика
Записан
BRE
Гость
Re: псевдослучайные числа типа float
«
Ответ #66 :
Июль 02, 2011, 20:21 »
Цитата: Igors от Июль 02, 2011, 20:03
Цель "поймать" все что под точками - желательно с наименьшим числом точек. А уж как (случайно или нет) - проблема разработчика
Фух, пятая страница обсуждения - узнали цель...
Теперь, боюсь спросить, что подразумевать под "все что под точками"? Что это за объекты, как они организованы?
Что-то мне подсказывает, что случайно тыкать в пространство для поиска объектов не очень хорошая идея.
«
Последнее редактирование: Июль 02, 2011, 20:37 от BRE
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #67 :
Июль 02, 2011, 22:02 »
Цитата: BRE от Июль 02, 2011, 20:21
Фух, пятая страница обсуждения - узнали цель...
Теперь, боюсь спросить, что подразумевать под "все что под точками"? Что это за объекты, как они организованы?
Ну примерно с тем же успехом можно спросить "а что за QObject, зачем определять Q_OBJECT, связывать слоты/сигналы?". Просто в данном контексте "самплинг" примерно такая же базовая позиция.
Цитата: BRE от Июль 02, 2011, 20:21
Что-то мне подсказывает, что случайно тыкать в пространство для поиска объектов не очень хорошая идея.
Та подсказывает правильно, за последние 15-20 лет (это только на моей памяти) было предпринято множество попыток придумать что-то получше (кстати я тоже пытался). Вот только ни одна из них пока успехом не увенчалась
В каком-то частном случае (обычно games) удается - но это достигается за счет массы допущений/предрасчетов. А в общем случае чтобы просчитать soft shadow (простейшее применение) - самллы и вперед. Так что ото носом не крутите - а делайте что говорят. Если можете
Записан
BRE
Гость
Re: псевдослучайные числа типа float
«
Ответ #68 :
Июль 02, 2011, 22:55 »
Цитата: Igors от Июль 02, 2011, 22:02
Та подсказывает правильно, за последние 15-20 лет (это только на моей памяти) было предпринято множество попыток придумать что-то получше
За это время только я (особо за этим не следя) помню: метод сетки, двоичные деревья, квадратные деревья, а вот "пальцем в небо" и что бы аккуратно... не помню. Что можно почитать про эту технологию, где использовалась?
Цитата: Igors от Июль 02, 2011, 22:02
(кстати я тоже пытался).
Внутри у меня прямо гордость какая-то...
Цитата: Igors от Июль 02, 2011, 22:02
В каком-то частном случае (обычно games) удается - но это достигается за счет массы допущений/предрасчетов.
В программировании так со всем. Все время нужно балансировать между плюсами и минусами решения. Топик про идиальный контейнер помнишь? Я там несколько раз об этом писал.
«
Последнее редактирование: Июль 02, 2011, 22:57 от BRE
»
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: псевдослучайные числа типа float
«
Ответ #69 :
Июль 03, 2011, 00:07 »
И так..
Во-первых, по поводу:
Цитировать
Ну привет, а очевидное сгущение у полюсов Вас не смущает? Ведь в полярных координатах только phi (азимут) "белый" а theta (угол возвышения) - совсем нет. Как бум исправлять? Улыбающийся
Меня это не смущает) Почему так, разве, не очевидно?
На самом деле точки на сфере распределяются равномерно. А эффект такого их сгущения на полюсах и экваторе обязан тому, что это есть отображение трёхмерного объекта на плоскость. В данном случае, видны также и точки, которые находятся в "теневой" (обратная сторона поверхности) области сферы (т.е. те точки которые мы видеть не должны). И поскольку в окрестности полюсов угол между нормалью к поверхности и осью z мал, то визуально кажется, что плотностьточек там больше.
Те распределения, что привёл
Igors
даже чисто визуально нельзя назвать статистически случайным. На глаз уже видна корреляция в распределении точек, от чего так стремятся избавиться в алгоритмах случайных чисел. Поэтому я тож склоняюсь к
мнению
BRE
, что
Цитировать
Что-то мне подсказывает, что случайно тыкать в пространство для поиска объектов не очень хорошая идея.
ИМХО, но раз уж такой расклад, то нужно делать регулярную треугольную решётку (одинаковое растояние между точками), но для имитации случайности, вводить флуктуации (по средством того же генератора случайных чисел) в расположении узлов решётки.
И будет вам счастье)
Тема то тривиальная.. А развели тут битву сомолюбий на пять страниц..
Стыдно товарищи))
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #70 :
Июль 03, 2011, 10:37 »
Цитата: m_ax от Июль 03, 2011, 00:07
Меня это не смущает) Почему так, разве, не очевидно?
На самом деле точки на сфере распределяются равномерно. А эффект такого их сгущения на полюсах и экваторе обязан тому, что это есть отображение трёхмерного объекта на плоскость.
m_ax
ну чего (неумело) заливать если Ваши же картинки показывают что это совсем не так?
Вы генерируете theta "белым" шумом но ведь для сферы это не соответствует равномерному распределению - просто возьмите определенный интеграл по объему - для Вас это семечки (если вся силенка не ушла в Ububtu и командную строку).
Цитата: m_ax от Июль 03, 2011, 00:07
ИМХО, но раз уж такой расклад, то нужно делать регулярную треугольную решётку (одинаковое растояние между точками), но для имитации случайности, вводить флуктуации (по средством того же генератора случайных чисел) в расположении узлов решётки.
И будет вам счастье)
Тема то тривиальная..
Так, ну мысль работает - это уже хорошо. То о чем Вы говорите известно как "naive implementation". Где вы возьмете изначальные (равномерные) самплы? Как это сделать для той же сферы? Для модели из треугольников? Ну ладно, простейший случай - плоскость, вроде все хорошо, добавили (сместили) каждую точку. Но на деле такой самплер плох - даем мало шума - видна "решетка", даем больше - получаем примерно то же что показал
BRE
Мне кажется все беды происходят от недооценки задачи (мол, да я, да щас и.т.п). А задачка требует определенного внимания/уважения. Вы уж простите старика если что не так
Записан
BRE
Гость
Re: псевдослучайные числа типа float
«
Ответ #71 :
Июль 03, 2011, 13:37 »
Камрады, кто понял или считает что понял все эти требования. Объясните мне пожалуйста простым не "инженерным языком", что же нужно получить.
Итак, равномерная сетка не подходит потому, что "у него можно слона вынести". Исходя из этого (пост #43):
Цитировать
Ладно, то "лирика". А технически такой "самплер" никуда не годится - несмотря на якобы идеальное число точек у него под носом можно слона вынести. Уж лучше накидать абы-как случайно.
Следующий вопрос собственно, почему лучше "накидать абы-как случайно"? Кто это сказал? На основании чего сделан этот вывод? Как можно быть уверенным, что случайно попадешь во все объекты?
Ну и последний вопрос, нарисуйте же пожалуйста "аккуратную сетку" и выложите в теме. Что должны получить, к чему стремиться? Жаждю ее увидеть.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #72 :
Июль 03, 2011, 14:10 »
Цитата: BRE от Июль 03, 2011, 13:37
Следующий вопрос собственно, почему лучше "накидать абы-как случайно"? Кто это сказал? На основании чего сделан этот вывод? Как можно быть уверенным, что случайно попадешь во все объекты?
Ага, пытаетесь соображать - welcome. Конечно всегда существует "достаточно мелкий" объект который самплер не поймает. Это нормально, если мы разбросали напр 100 точек - ну так точность и будет невелика. Вопрос в том насколько? И как поставить точки чтобы минимизировать потери? Очевидно что просто "регулярно" не катит (уже обсуждалось выше) - а тогда как?
Цитата: BRE от Июль 03, 2011, 13:37
Ну и последний вопрос, нарисуйте же пожалуйста "аккуратную сетку" и выложите в теме. Что должны получить, к чему стремиться? Жаждю ее увидеть.
Та она давно предъявлена в посте #19 и др по просьбе
ufna
Записан
BRE
Гость
Re: псевдослучайные числа типа float
«
Ответ #73 :
Июль 03, 2011, 14:33 »
Цитата: Igors от Июль 03, 2011, 14:10
Ага, пытаетесь соображать - welcome.
Да я и не заканчивал, все пытаюсь тебя уговорить этим заняться.
Я не буду спрашивать почему такое расположение точек ты считаешь лучшим по сравнению с равномерной сетки или полностью случайным расположением. Пока допустим, что это так.
Ну так вот, давай попробуем нормальными словами описать те необходимые для тебя свойства, которые есть в картинке из поста #19 и нет у картинке из поста #16. Чем эти картинки отличаются?
Ну только без "инженерных терминов".
«
Последнее редактирование: Июль 03, 2011, 14:59 от BRE
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: псевдослучайные числа типа float
«
Ответ #74 :
Июль 03, 2011, 17:40 »
Цитата: BRE от Июль 03, 2011, 14:33
Да я и не заканчивал,
Хмм...
Цитата: BRE от Июль 03, 2011, 14:33
Ну так вот, давай попробуем нормальными словами описать те необходимые для тебя свойства, которые есть в картинке из поста #19 и нет у картинке из поста #16. Чем эти картинки отличаются?
Ну только без "инженерных терминов".
Ну давайте "в популярной форме". Какую конвексную фигуру (по-простому говоря "выпуклый многоугольник") можно свободно разместить между Вашими точками (пост #16)? Довольно большую. А точек намолотили 20K. В посте #19 точек 1K а площадь примерно та же. Доступно излагаю?
Записан
Страниц:
1
...
3
4
[
5
]
6
7
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...