Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Пятница - время поломать голову над непростыми задачками.   Найти похожие ветки 

 
Sandman25 ©   (2004-10-18 09:26) [80]

[63] MBo ©   (15.10.04 18:04)

Красиво. Я не поверил, что решение предыдущей задачи могло использоваться :(


 
MBo ©   (2004-10-18 09:44) [81]

>Sandman25 ©   (18.10.04 09:26) [80]
>Красиво.
Да, красиво. приведу один из путей
(MinMax переставляет переменные при сравнении)
(7) MinMax(1,2,3,4,5,6)
(6) MinMax(2,3,4,5,7)
(4) MinMax(3,4,5,8)
(3) Sort(4,5,9)


 
MBo ©   (2004-10-18 09:53) [82]

P.S.
Я писал, что задача 12 имет практическое значение - это медианная фильтрация, использующаяся в обработке изображений - пиксел заменяется медианой окрестности 3х3 - что позволяет удалять определенные виды шумов, не особо портя резкие края ( что случается, например, при свертке с гауссовым окном или простом усреднении)


 
Sandman25 ©   (2004-10-18 10:21) [83]

[82] MBo ©   (18.10.04 09:53)

Думаю, что для изображений нельзя говорить о независимости чисел. Есть корреляция между цветами соседних пикселей. Вероятно, можно решение еще оптимизировать.
За пример из [81] спасибо.


 
WL   (2004-10-18 11:26) [84]

В 12 вроде бы можно обойтись 18 сравнениями


 
MBo ©   (2004-10-18 12:49) [85]

>WL   (18.10.04 11:26) [84]
>В 12 вроде бы можно обойтись 18 сравнениями
Не знаю... Интересно было бы посмотреть на алгоритм.
Где-то встречал, что теорет. минимум - 19.


 
default ©   (2004-10-18 15:41) [86]

MBo ©   (18.10.04 07:59) [79]
может я что не понял, но стержень может поместиться и вне "линзы"
к тому же в формуле думаю множителя 1/2 в числителе нету


 
MBo ©   (2004-10-18 16:21) [87]

>default ©   (18.10.04 15:41) [86]
>может я что не понял, но стержень может поместиться и вне "линзы"
Чтобы левый конец стержня, параллельного оси X, лежал внутри полукруга - ставим его в (-r,0) и двигаем (соблюдая параллельность) до (0,r). Центр стержня при этом идет по дуге радиуса r, сдвинутой на a вправо.
Аналогично для правого конца. Искомая площадь - пересечение полукругов.

>думаю множителя 1/2 в числителе нету
?
такой множитель есть в знаменателе, возникает - как половина площади круга


 
WL   (2004-10-18 21:46) [88]

12.
Пусть на к-ом шаге имеем упорядоченную последовательность A1<=A2<=...<=An из n элементов, в которую надо добавить элемент B. Сначала сравниваем B со средним элементом (A[n div 2]) и далее гоним его влево или вправо, пока не встанет на свое место, чтобы опять получилась упорядоченная последовательность. Очевидно, что максимальное количество сравнений при таком добавлении = (1 + n div 2)

1. Берем последовательность из одного элемента [A1] и добавляем A2 (1 сравнение)
2. [A1<=A2] + A3 (всего сравнений: 1 + 2 = 3)
3. [A1<=A2<=A3] + A4 (3+2=5)
4. [A1<=A2<=A3<=A4] + A5 (5+3=8)
5. [A1<=A2<=A3<=A4<=A5] + A6 (8+3=11)
6. По описанным ранее соображениям отбрасываем 1-ый и 6-ой элементы, т.к. они не смогут стать средними из 9: [A1<=A2<=A3<=A4<=A5<=A6] -> [A1<=A2<=A3<=A4] + A7 (11+3=14)
7. Отбрасываем 1-ый и 5-ый [A1<=A2<=A3<=A4<=A5] -> [A1<=A2<=A3] + A8 (14+2=16)
8. Отбрасываем 1-ый и 4-ый [A1<=A2<=A3<=A4] -> [A1<=A2] + A9 (16+2=18)


 
MBo ©   (2004-10-19 08:06) [89]

>WL   (18.10.04 21:46) [88]
ЗдОрово!
Сортировка вставками+отбрасывание. Логических изъянов навскидку не нашел. Тест вроде бы проходит.
Правда, здесь требуется дополнительная структура данных. У Кнута (3т,5.3.3) указано, что при таких условиях медиану 9 элементов можно найти за 15 сравнений


 
WL   (2004-10-19 11:06) [90]

>MBo ©   (19.10.04 08:06) [89]
Теоретически, если так критичны память и скорость, то это вполне можно реализовать на N листах не особо читаемого кода без дополнительных структур и функций только с помощью if then else... хотя выглядеть будет действительно ужасно.
Наверное можно и с помощью 15, но это уже будет нетривиальная последовательность сравнений...


 
default ©   (2004-10-19 13:32) [91]

сегодня по пути в универ едя в трамвае я задумался о задаче 8
и меня "озарило" хех, как всё оказалось просто:
допустим что стержень лежит на столе под определённым углом по отношению к горизонтальной
оси, придвинем его концы, оставляя угол таким же, к окружности, получим хорду длины
2a, опустим из центра окружности радиуса r прямые в концы этой хорды, очевидно они будут
равны по длине радиусу r и прямую в центр этой хорды, очевидно точка пересечения этой
прямой и хорды есть центр стержня, получается равнобедренный треугольник,
расстояние от центра окружности(или стола, особого смысла это не имеет) до центра стержня по
теореме Пифагора будет R=|sqrt(r^2-a^2)|. И далее продвигая стержен с соблюдение постоянтсва
угла по окружности центр стержня, совершенно очевидно, опишет окружность радиуса R.
Очевидно, всё сказанное верно для стержня расположенного под любым углом. И опять же,
совершенно ясно, что если центр стержня смещать к центру стола то края стержня также не будут
вылезать за него. Таким образом искомая вероятность будет отношение площади окружности которую
описывает стержень при его движении по ней к площади стола и получим:
Pi*R^2/Pi*r^2=1-a^2/r^2. Вот и всё. Никаких интегралов никаких углов, всё очень просто разрешилось.


 
default ©   (2004-10-19 13:46) [92]

сорри, неправильно описал, вот так верно:
придвинем концы стержня к окружности, получим хорду длины
2a, опустим из центра окружности радиуса r прямые в концы этой хорды, очевидно они будут
равны по длине радиусу r и прямую в центр этой хорды, очевидно точка пересечения этой
прямой и хорды есть центр стержня, получается равнобедренный треугольник,
расстояние от центра окружности(или стола, особого смысла это не имеет) до центра стержня по
теореме Пифагора будет R=|sqrt(r^2-a^2)|. И далее продвигая стержен по окружности центр стержня, совершенно очевидно, опишет окружность радиуса R.
И совершенно ясно, что если центр стержня смещать к центру стола то края стержня также не будут
вылезать за него. Таким образом искомая вероятность будет отношение площади окружности которую
описывает центр стерженя при его движении по ней к площади стола и получим:
Pi*R^2/Pi*r^2=1-a^2/r^2. Вот и всё.


 
MBo ©   (2004-10-19 13:51) [93]

>default ©   (19.10.04 13:46) [92]
Это ты нашел вероятность того, что целиком на столе лежит стержень, перпендикулярный радиусу


 
default ©   (2004-10-19 15:08) [94]

MBo ©   (19.10.04 13:51) [93]
признаю, вы правы, я здорово поторопился...
вашего решения я так и не понял...если начертить на бумаге, то
можно стержень, не нарушая параллельности, поместить и вне линзы образуемой пересечением смещённых на a и -a от центра окружностей
откуда это решение?оно ваше?оно точно правильно?



Страницы: 1 2 3 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.62 MB
Время: 0.044 c
14-1098184583
Бар
2004-10-19 15:16
2004.11.07
Как снять программно атрибут файла только для чтения?


1-1098673588
Wood
2004-10-25 07:06
2004.11.07
Программное переключение


1-1098563536
oleg_
2004-10-24 00:32
2004.11.07
Прозрачное окно


14-1098212687
KilkennyCat
2004-10-19 23:04
2004.11.07
Старье, но прикольно


1-1098360149
Максим
2004-10-21 16:02
2004.11.07
DLL&amp;ModalForm - Возвращение значения от DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский