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

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

Страниц: 1 ... 4 5 [6] 7   Вниз
  Печать  
Автор Тема: псевдослучайные числа типа float  (Прочитано 39813 раз)
BRE
Гость
« Ответ #75 : Июль 03, 2011, 17:58 »

Какую конвексную фигуру (по-простому говоря "выпуклый многоугольник") можно свободно разместить между Вашими точками (пост #16)?
Между какими конкретно точками? Там их 20К? Что значит довольно большую? Это что за математический термин "довольно большую"?
На этих картинках размер точек немного отличается. Не? Если увеличить их размер еще, то будет достаточно 4 точек. Может это выход? Улыбающийся

Еще раз посмотри на две этих картинки и найди важные отличия.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #76 : Июль 03, 2011, 18:30 »

Между какими конкретно точками? Там их 20К? Что значит довольно большую? Это что за математический термин "довольно большую"?
На этих картинках размер точек немного отличается. Не? Если увеличить их размер еще, то будет достаточно 4 точек. Может это выход? Улыбающийся

Еще раз посмотри на две этих картинки и найди важные отличия.
Ну есть "задача" и можно долго петь песню что, мол, "заказчик неграмотный", "он не понимает чего хочет" и.т.д. и.т.п. - все это хорошо известно (и иногда даже правда). Но если Вы так считаете - спокойно скажите "я пас", не тратьте свое и чужое время. Мне совершенно не нужен человек который изо всех сил старается доказать что "он умнее".  Да пусть он будет умнее/глупее - был бы толк, а от Вас его ноль. Будьте здоровы.
Записан
BRE
Гость
« Ответ #77 : Июль 03, 2011, 20:26 »

Ну есть "задача" и можно долго петь песню что, мол, "заказчик неграмотный", "он не понимает чего хочет" и.т.д. и.т.п.
Ну-ну, без паники, только без паники. (с) Карлсон.

Давай я попробую задать вопрос более доступно для тебя. Посмотри на три картинки:
1 - в этом посте;
2 - в посте #16;
3 - в посте #19

и попробуй из них выбрать две, наиболее похожих между собой.
Записан
Denjs
Гость
« Ответ #78 : Июль 03, 2011, 21:11 »

Очень быстро выясняется что задача сводится к тому что я изложил в посте #8, т.е. по-умному расставить точки. Иначе придется долго пыль глотать с ненужными расчетами.  Это абсолютно НОРМАЛЬНАЯ постановка реальной задачи, и Ваньку валять (мол, не понимаю, не формализовано) здесь нечего  Улыбающийся
Увы, нет, дорогой мой друг)
это НЕ нормальная постановка реальной задачи. Это вообще не постановка задачи.
Это детский лепет, feature, рекламный слоган, хочушка, пожелание, ещё что то.... но ни в коем разе не "постановка задачи".

Понимаете-ли, для постановки задачи, нужны "критерии приемки". Явно определенные в самой постановке, или иногда, "однозначно вытекающие". Потому что пока их нет - не понятно к чему стремиться, не понятно в какой момент и при каких условиях задача считается решенной.

Если вы, или кто-то другой, по своей детской наивности (или старческому маразму) считает что "постановка" без внятных критериев приемки результата может "быть нормальной" - то, мягко говоря - он ССЗБ. И извините, но этому человеку помочь нельзя (по крайней мере сейчас).
Это все равно, что пытаться "удовлетворить" девушку, которая не в состоянии хоть как-либо внятно объяснить что же она хочет - это себе дороже выйдет)

Мы вот попытались угадать, но вот не вышло)))

Ну есть "задача" и можно долго петь песню что, мол, "заказчик неграмотный", "он не понимает чего хочет" и.т.д. и.т.п. - все это хорошо известно (и иногда даже правда). Но если Вы так считаете - спокойно скажите "я пас", не тратьте свое и чужое время. Мне совершенно не нужен человек который изо всех сил старается доказать что "он умнее".  
Мы пытаемся от вас добиться формализированного описания критериев приемки. Как только у нас будет "целевая функция", описывающая насколько хорошим является то или иное распределение - тогда уже можно будет пытаться строить те или иные алгоритмы раскидывания точек.

Потому, дорогой мой студент, давайте вернемся к самому тому началу: опишите формализированно, в формулах, и уравнениях с описанием каждого из параметров - какими качествами должен обладать набор точек на плоскости, чтобы вы забились от такого набора в экстазе.
Как только вы это сделаете - можно уже начать строить алгоритм построения такого набора точек, и думать над тем как его оптимизировать, что бы он был быстрым.

Это не крики о том что заказчик плохой или что-то ещё. Решить задачу, пока не понятно что мы ищем, и даже не можем внятно описать качества того что мы ищем - невозможно.

Я надеюсь, что раз вы знаете такое слово как "постановка задачи", то вы и должны знать какими качествами обладают критерии приемки? (однозначность, проверяемость, и прочее?)

Описание типа "бык поссал", "ездить между рядами", "аккуратно", ну то есть случайно, но более-менее равномерно, так чтобы не было ни заметных "сгущений" ни заметных пустых мест - это невнятный бред сивой кобылы в сферическом вакууме; бред, который не является постановкой и не определяет критерии приемки.

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

А вот как только вы сможете написать программу которая будет способна переработать массив точек и сказать хороший он или плохой - вот тогда мы с вами сдвинемся с мертвой точки. Мы сможем начать думать над тем, какой алгоритм генерации набора точек вам подойдет.

Или давайте начнем сначала определение формальных критериев приемки, которые определят "качество" набора точек - и только потм будем думать над тем как такой набор построить.

А пока у вас каша в голове - вы валите все в кучу, и хотите найти "решение" задачи, для которой не способны внятно определить критерии приемки результата. Давайте попытаемся избавиться от этой каши и для начала разложить все по полочкам?
« Последнее редактирование: Июль 04, 2011, 00:11 от Denjs » Записан
BRE
Гость
« Ответ #79 : Июль 04, 2011, 06:26 »

Похоже?  Улыбающийся
« Последнее редактирование: Июль 04, 2011, 06:40 от BRE » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #80 : Июль 04, 2011, 11:33 »

Цитировать
m_ax ну чего (неумело) заливать если Ваши же картинки показывают что это совсем не так? Улыбающийся Вы генерируете theta "белым" шумом но ведь для сферы это не соответствует равномерному распределению
Да, пардон) Согласен, на полюсах плотность точек будет больше нежели на экваторе.
Но это можно исправить. Распределение для theta уже не будет однородным.

Похоже?  Улыбающийся


Я бы ещё попробывал описывать флуктуации узлов с помощью нормального распределения (гауссова). С сигмой порядка полурасстояния между узлами (на фкус).   
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #81 : Июль 04, 2011, 11:35 »

Да похоже-то оно похоже, вот только только не годится. В первом случае вообще "слон" о котором я говорил - и в архитектурной сцене такой стопудово найдется. Второй вполне usable, но тоже не блеск (оба в attach). Кроме того виден "мотив" - а это значит систематическая помеха которую никакой фильтр не возьмет. И потом - это на плоскости легко иметь регулярные изначальные точки - а на той же сфере как?

это НЕ нормальная постановка реальной задачи. ..
Учитель, а можно короче и по делу? А то Вы как Михаил Сергеевич "растекаетесь мыслью по древу" Улыбающийся Мы можем "обсуждать" вещи, увлекаться, сказать глупость, молоть чепуху - но на мой взгляд это гораздо интереснее чем выдать готовое решение из головы-справочника - не вижу в этом никакого кайфа  Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #82 : Июль 04, 2011, 12:18 »

Подправил вариант со сферой)
Алгорит сейчас такой:
Генерим три случайных велечины в интервале [-1, 1] (фактически cos между соответствующими осями)
Затем нормализуем их так, что вектор, компонентами которого она являются был единичным:
Код
C++ (Qt)
MTRand mtRand;
   mtRand.seed(time(0));
   for (int i = 0; i < m_numPoints; ++i) {
       double alpha = mtRand.rand(2.0)-1.0;
       double betta = mtRand.rand(2.0)-1.0;
       double gamma = mtRand.rand(2.0)-1.0;
       double norm = sqrt(alpha*alpha + betta*betta + gamma*gamma);
 
       alpha /= norm;
       betta /= norm;
       gamma /= norm;
 
       double z = m_radius*gamma;
       double x = m_radius*alpha;
       double y = m_radius*betta;
       drawPoint(Point3D(x, y, z), &painter, 2);
   }
 
Теперь это выглядит так:
« Последнее редактирование: Июль 04, 2011, 12:31 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
BRE
Гость
« Ответ #83 : Июль 04, 2011, 12:43 »

Да похоже-то оно похоже, вот только только не годится. В первом случае вообще "слон" о котором я говорил - и в архитектурной сцене такой стопудово найдется. Второй вполне usable, но тоже не блеск (оба в attach).
Ага. Теперь давай попробуем без истерик выяснить а какие "слоны" вообще возможны? Без этого очень тяжело оценивать качество распределения.
Как ты понимаешь, без этих критериев я могу на твоей "идеальной сетке" разместить кучу подобных "слонов".  Подмигивающий

Записан
BRE
Гость
« Ответ #84 : Июль 04, 2011, 12:47 »

Я бы ещё попробывал описывать флуктуации узлов с помощью нормального распределения (гауссова). С сигмой порядка полурасстояния между узлами (на фкус).   
Не-не, рано. Не все исходные данные о задачи мы получили. Так мы долго будет играть в игру "похоже - не похоже".  Улыбающийся
Записан
Denjs
Гость
« Ответ #85 : Июль 04, 2011, 13:27 »

Учитель, а можно короче и по делу? А то Вы как Михаил Сергеевич "растекаетесь мыслью по древу" Улыбающийся Мы можем "обсуждать" вещи, увлекаться, сказать глупость, молоть чепуху - но на мой взгляд это гораздо интереснее чем выдать готовое решение из головы-справочника - не вижу в этом никакого кайфа  Улыбающийся
дорогой мой, хватит заниматься чепухой. Вы или не слушаете, или глупы.
По делу я вам все уже сказал, но можно ещё раз, для задних парт:
Опишите алгоритм проверки массива точек, который выдает - хороший или плохой набор точек мы имеем.
Алгоритм, который можно запрограммировать.


Тогда мы сможем найти (подобрать в результате исследования параметров и перебора разных методов генерации точек) или создать вам генератор, который будет быстро и легко создавать вам нужный набор точек. Ночь машинных расчетов с перебором или поиском нужных параметров генераторов  - и все будет...
А пока вы уже пятые сутки занимаетесь переливанием из пустого в порожнее, если не сказать как есть, но это будет чрезмерно грубо.

вон и BRE  вас уже не первый раз об этом тоже просит...
Ага. Теперь давай попробуем без истерик выяснить а какие "слоны" вообще возможны? Без этого очень тяжело оценивать качество распределения.
Как ты понимаешь, без этих критериев я могу на твоей "идеальной сетке" разместить кучу подобных "слонов".  Подмигивающий
« Последнее редактирование: Июль 04, 2011, 13:34 от Denjs » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #86 : Июль 04, 2011, 13:40 »

Я бы ещё попробывал описывать флуктуации узлов с помощью нормального распределения (гауссова). С сигмой порядка полурасстояния между узлами (на фкус).   
Не-не, рано. Не все исходные данные о задачи мы получили. Так мы долго будет играть в игру "похоже - не похоже".  Улыбающийся

Улыбающийся Вобщем, ради любопытства попробывал реализовать случай, когда узлы изночально регулярной квадратной решётки (вообще надо было делать треугольную, ну да фиг с ней) флуктуируют от своих положений, причём смещения распределены по гауссу.
И так, период решётки кладу еденицы (условно)
Тогда, sigma измеряется в единицах периода решётки.
Ниже приведены расспределения для
1) sigma = 0;
2) sigma = 0.1;
3) sigma = 0.25;
4) sigma = 0.5.
   
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #87 : Июль 04, 2011, 15:26 »

И вот вриант с изночальной треугольной решёткой:
1) sigma = 0
2) sigma = 0.1
3) sima = 0.15
4) sigma = 0.2
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #88 : Июль 05, 2011, 17:53 »

Ага. Теперь давай попробуем без истерик выяснить а какие "слоны" вообще возможны? Без этого очень тяжело оценивать качество распределения.
Как ты понимаешь, без этих критериев я могу на твоей "идеальной сетке" разместить кучу подобных "слонов".  Подмигивающий
Ну давайте возьмем максимально упрощенный случай: для каждой точки выполняется расчет с результатом типа bool: false - точка перекрыта препятствием (тень) или true (приходит порция света). Просчитав все точки, мы, не мудрствуя лукаво, поделили число true на N (число точек). У Вас на картинке явно видны "ряды" (мотив) который очень быстро подгадит. При одном расчете весь "ряд" возвращает напр. false, при другом (смежном) уже true. Для "пустот" (слонов) ситуация та же самая. Хотя полностью случайное распределение выглядит ужасно, оно все же лучше - меьшая фигура может проскочить между точками.

Не-не, рано. Не все исходные данные о задачи мы получили.
Полные данные о задаче (иногда) известны только после ее решения Улыбающийся В посте #8 изложена вполне доступная, реальная формулировка. Факт что случайное распределение часто превосходит равномерное - довольно известный. Формальный критерий - оценка по площади тоже есть. Хороший тест - "реконструкция" которая также предлагалась выше - и оценка радиуса фильтра требующегося для выглаживания. В общем данных заметно больше чем их бывает в жизни. Хотя есть танцоры которым все время что-то мешает  Улыбающийся

И вот вриант с изночальной треугольной решёткой:
1) sigma = 0
2) sigma = 0.1
3) sima = 0.15
4) sigma = 0.2
Конечно, метод рабочий, но, как Вы сами убедились, подобрать подходящее sigma (шум смещения) совсем непросто. Также для одного N (числа точек) одно sigma выглядит приятнее, для другого - уже другое. Ну и это не дает ответа "а что же делать на сфере" - тот же подход оказывается очень громоздким.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #89 : Июль 05, 2011, 18:06 »

Цитировать
Конечно, метод рабочий, но, как Вы сами убедились, подобрать подходящее sigma (шум смещения) совсем непросто. Также для одного N (числа точек) одно sigma выглядит приятнее, для другого - уже другое. Ну и это не дает ответа "а что же делать на сфере" - тот же подход оказывается очень громоздким.
Ничего подобного, это просто)).
sigma не зависит от числа точек, она зависит от их плотности: т.е. числа точек на единицу площади (которое уж надеюсь известно или задано). И мерится она (sigma) в еденицах периода решётки, который из плотности точек можно получить (во всяком случае оценить).  
« Последнее редактирование: Июль 05, 2011, 18:08 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 ... 4 5 [6] 7   Вверх
  Печать  
 
Перейти в:  


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