|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : vitalie vrabie 2:469/303 21 Apr 2003 21:23:12 To : Vladimir Vassilevsky Subject : Усреднение углов -------------------------------------------------------------------------------- Replying to a message of Vladimir Vassilevsky to vitalie vrabie: KP>>>> Как получить среднее значение и среднеквадратичное отклонение KP>>>> "линейной" величины -- знаю все. А вот если величина -- это угол KP>>>> (для примера, выраженный в градусах). Ведь среднее значение между KP>>>> "1" и "359" должно быть равно "0". Hе подскажет ли кто решения? VV>>> Представь угол как int, так, чтобы диапазон 0...180 соответствовал VV>>> 0...0x8000. Работай с углом в этом представлении. Заворот через VV>>> ноль отработается автоматически. vv>> ответ неверный. при таком подходе среднее между 179 и 181 (или, vv>> скажем, 170 и 190) получится тоже 0, но никак не 180. VV> Спокойно. VV> Среднее между 0x7fff и 0x8001 равно 0x8000, то есть -180 градусов. VV> Все правильно. ни шиша не правильно. 0x7fff+0x8001=0. 0/2=0. да научись ты, наконец, правильно считать, коль решил заговорить об автоматическом заворачивании. а если перед делением предложиишь складывать в бОльшую разрядность, то у тебя не пойдёт пример из первого абзаца квоты: 180 получится, а не 0. и постарайся избегать риторических выпадов вроде "среднее между X и Y равно Z" в контексте беседы, где именно предложенный тобой *способ* вычисления этого среднего и оспаривается. способ, к сожалению, показывает совсем другие результаты, нежели твоя риторика. такие вот дела. vv>> твой рецепт хоть и звучит заумно, VV> Чего может быть проще? проще? не пытаться дать однозначное решение на плохо сформулированную задачу. к тому же и абсурдную, как совершенно справедливо подметил ВалДав. VV> Вот еще один несложный рецепт, для тех, для кого слишком сложна int VV> арифметика. дадада. см выше про арифметику. VV> Вместо угла X рассматривать I = cos(X)и Q = sin(X). Соответственно VV> обрабатывать I и Q, так как это непрерывные функции, а потом выразить VV> угол и все нужные величины через них. это никак не умаляет недостаточности точности формулировки задачи. каково будет среднее между 90 и 270? а между 0 и 180? а почему ты вдруг решил так, а не иначе? sayonara, vv mailto:vv<at>techie.com --- * Origin: undead (2:469/303) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/18373ea46140.html, оценка из 5, голосов 10
|