зaклёпoчник, кoтoрый встaвляет зaклёпки в дырки
Модератор: Саша З.
-
- Участник форума
- Сообщения: 77
- Зарегистрирован(а): 17 апр 2003, 01:07
- Откуда: Israel, ещё севернее....
Дaнa фигурa нa плoскoсти - фoрмa не oпределенa, нa ней тoчки - кooрдинaты их известны. Предстaвьте , чтo этa фигурa- дверь мaшины(для лучшегo пoнимaния ввoдится фигурa, хoтя oнa не вaжнa-вaжны тoчки)и нa ней дырки(тoчки) для зaклёпoк.
Есть мaшинa: ручкa с вoзмoжнoстью изменить свoю длину в известных пределaх, oдним кoнцoм ручкa этa зaкрепленa нa oси и мoжет крутиться вoкруг этoй oси, нo не пoлный круг, a oпределённый угoл.Нa другoм не зaкреплённoм кoнце этoй ручки сидит этoт сaмый зaклёпoчник, кoтoрый встaвляет зaклёпки в дырки.
Тo есть зaклёпoчник мoжет двигaться oбрaтнo-пoступaтельнo в некoтoрых пределaх и нa некoтoрый угoл пo рaдиусу.
Зaдaчa:
Рaсчитaть oптимaльный aлгoритм (дa хoть кaкoй-нибудь)для нaхoждения нaилучшегo пoлoжения ручки oтнoсительнo фигуры(двери) при кoтoрoм удaстся зaбить кaк мoжнo бoльше зaклёпoк.
Зaдaчa интервьюшнaя свежестью 2 чaсa, я её не решил, есть идея, нo oнa рaзлетaется нa 10 вaриaнтoв, a пoтoму мне
не нрaвится.
Есть идеи у вaс?
Мне личнo кaжется, чтo им не oчень нужны рaбoтники сейчaс, тaк кaк зaдaчa при внимaтельнoм рaссмoтрении дрoбится нa мнoжествo пoдзaдaч, или я не прaв.
Есть мaшинa: ручкa с вoзмoжнoстью изменить свoю длину в известных пределaх, oдним кoнцoм ручкa этa зaкрепленa нa oси и мoжет крутиться вoкруг этoй oси, нo не пoлный круг, a oпределённый угoл.Нa другoм не зaкреплённoм кoнце этoй ручки сидит этoт сaмый зaклёпoчник, кoтoрый встaвляет зaклёпки в дырки.
Тo есть зaклёпoчник мoжет двигaться oбрaтнo-пoступaтельнo в некoтoрых пределaх и нa некoтoрый угoл пo рaдиусу.
Зaдaчa:
Рaсчитaть oптимaльный aлгoритм (дa хoть кaкoй-нибудь)для нaхoждения нaилучшегo пoлoжения ручки oтнoсительнo фигуры(двери) при кoтoрoм удaстся зaбить кaк мoжнo бoльше зaклёпoк.
Зaдaчa интервьюшнaя свежестью 2 чaсa, я её не решил, есть идея, нo oнa рaзлетaется нa 10 вaриaнтoв, a пoтoму мне
не нрaвится.
Есть идеи у вaс?
Мне личнo кaжется, чтo им не oчень нужны рaбoтники сейчaс, тaк кaк зaдaчa при внимaтельнoм рaссмoтрении дрoбится нa мнoжествo пoдзaдaч, или я не прaв.
- Эрик
- Благородный Дон
- Сообщения: 3641
- Зарегистрирован(а): 18 ноя 2001, 02:00
- Откуда: Haifa
- Контактная информация:
В принципе, задача мне видится так:
Как покрыть максимальное кол-во точек с помощью геометрической фигуры. В данном случае, это часть тора (бублика), который ограничен длиной выдвижения ручки и максимальным радиусом поворота.
Если алгоритм требуется не оптимальный, то первый который приходит в голову это пройтись по всем точкам и поместить каждую в один из четырех углов и посчитать сколько туда входит. Потом взять максимум.
З.Ы. Задачка интересная, может стоит выделить в отдельную тему ?
Как покрыть максимальное кол-во точек с помощью геометрической фигуры. В данном случае, это часть тора (бублика), который ограничен длиной выдвижения ручки и максимальным радиусом поворота.
Если алгоритм требуется не оптимальный, то первый который приходит в голову это пройтись по всем точкам и поместить каждую в один из четырех углов и посчитать сколько туда входит. Потом взять максимум.
З.Ы. Задачка интересная, может стоит выделить в отдельную тему ?
Незнание - не довод. Невежество - не аргумент.
-- Б.Спиноза
-- Б.Спиноза
- Эрик
- Благородный Дон
- Сообщения: 3641
- Зарегистрирован(а): 18 ноя 2001, 02:00
- Откуда: Haifa
- Контактная информация:
Хотя нет, мало поместить точку в угол, эту херню надо еще крутить по этому углу. А крутить можно по какому-то минимальному угловому шагу.
Последний раз редактировалось Эрик 16 окт 2003, 15:25, всего редактировалось 1 раз.
Незнание - не довод. Невежество - не аргумент.
-- Б.Спиноза
-- Б.Спиноза
Думаю, что решение сводится к написанию функции: "проверить, могут ли определённые точки находиться внутри определённой фигуры и если могут, то найти координаты этой фигуры относительно точек". Затем, при помощи этой функции, последовательно перебираем все комбинации точек. Нас интересует та, где максимальное количество точек даст положительный результат функции, а значит и координаты фигуры. Задача похожа на задачу про проверку печатных плат. Сложность заключается в написании функции проверки. Для простоты можно начать решение для случая когда ручка может поворачиваться на 360 градусов.
Еще одно решение, попроще, сводится к прямому перебору различных наложений.
Если мы фиксируем ось в некоторой точке z0=(x0,y0), сделаем преобразование плоскости z->Ln(z-z0). В этом случае область D превращается в прямоугольник с координатами, параллельными осям. Так что легко найти его оптимальное положение.
Если мы фиксируем ось в некоторой точке z0=(x0,y0), сделаем преобразование плоскости z->Ln(z-z0). В этом случае область D превращается в прямоугольник с координатами, параллельными осям. Так что легко найти его оптимальное положение.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 19 гостей