Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задачка из "собеседования". Про черепашку. / 20 сообщений из 20, страница 1 из 1
25.02.2013, 13:06
    #38164551
Школа с философским уклоном.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Робот-черепашка сначала смотрит на север. За один шаг может двинуться на N (N >= 1) клеток туда, куда смотрит, после чего сразу поворачивается на 90 грд. по часовой стрелке.

Входная программа — ряд целых чисел любой длины. Например: 1,7,3,4,5,1. (1 на север, 7 на восток, 3 на юг, 4 на запад, 5 на север, 1 на восток). Каждый шаг — не менее 1.

Написать код, который бы возвращал ближайший номер шага (от начала программы), на котором черепашка проедется по собственному пути. То есть, по клетке, на которой она уже была. Стоимость алгоритма по процу — не более O(N), стоимость алгоритма по памяти — постоянная ( O(1) ).

Нарисовал картинку, из которой видно одно свойство алгоритма — если черепашка когда-либо наезжает на собственный путь на неком шаге M, то этот наезд всегда происходит на ту линию, которая была построена на шаге M-3, либо M-5. Всё.

1. Это наколеночное решение, выведенное умозрительно, без доказательств.
2. История про робота-черепашку — боян 40-летней давности (или больше), над которым бились все великие бородатые изобретатели алгоритмов, поэтому любое своё решение просто психологически идёт в корзину.

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

Картинка, из которой видны свойства шагательного алгоритма (красным показаны линии, на которые совершается наезд). Зелёная точка — возможные альтернативы развития событий для рассмотрения разных вариантов.
...
Рейтинг: 0 / 0
25.02.2013, 14:44
    #38164812
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Школа с философским уклоном.2. История про робота-черепашку — боян 40-летней давности (или больше), над которым бились все великие бородатые изобретатели алгоритмов, поэтому любое своё решение просто психологически идёт в корзину.Можно перевести для тупых? Это означает, что нужно найти существующее решение в дебрях Гугла?

Тем не менее, "своё" решение, вчерне:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
typedef int Box[4];

Box b = {0};
bool inner = false;
int stepNum = 0;
int stepLength;
while(scanf("%d", &stepLength) == 1){
  if(stepLength - b[(stepNum-2)%4] < b[stepNum%4]) inner = true; //Случай равенства - попадание на периметр, не рассмотрено

  if(inner){
    if(stepLength - b[(stepNum-2)%4] > b[stepNum%4]){
      return stepNum;
    }
  }
  b[stepNum%4] = stepLength - b[(stepNum-2)%4];
  ++stepNum;
}

Реально прямоугольников нужно два, второй - для предыдущего "витка".
...
Рейтинг: 0 / 0
26.02.2013, 01:40
    #38165707
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Странная черепашка. Это не язык Лого а просто какая-то хрень.
Вобщем по сложности напоминает Malbolge. Вобщем кто
мозохист тому и оно самое то.
...
Рейтинг: 0 / 0
26.02.2013, 02:08
    #38165717
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
mayton,

поэтому и вышеприведенное решение Абстракшена дано не на Лого-тортилку, а по условиям задачки...
...
Рейтинг: 0 / 0
26.02.2013, 13:55
    #38166348
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Ну чтож. Побольше-б таких задач
...
Рейтинг: 0 / 0
26.02.2013, 15:16
    #38166570
madbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
У нас одно время уже после собеседования, когда сотрудника приняли, предлагали размяться задачкой про черепашек:
Ползут по пустыне три черепашки. Первая говорит: "Впереди меня никого, а позади две черепашки". Вторая говорит: "Впереди меня одна черепашка и сзади одна черепашка". Третья говорит: "Впереди меня одна черепашка и сзади одна черепашка". Как это возможно?Долгое время я думал, что существует только одно решение)
...
Рейтинг: 0 / 0
26.02.2013, 15:19
    #38166579
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
madbear,

ползают по кругу?
...
Рейтинг: 0 / 0
26.02.2013, 15:22
    #38166589
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Тогда бы у всех черепашек были-бы одинаковые условия.
...
Рейтинг: 0 / 0
26.02.2013, 15:31
    #38166616
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
madbearДолгое время я думал, что существует только одно решение)А какое второе?
...
Рейтинг: 0 / 0
26.02.2013, 15:51
    #38166668
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
madbear,
средняя черепашка ползёт в другую сторону ?
...
Рейтинг: 0 / 0
26.02.2013, 15:53
    #38166677
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
может, третья высказалась, когда обогнала вторую?
...
Рейтинг: 0 / 0
26.02.2013, 16:11
    #38166724
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Я тоже подумал о факторе времени в задаче.
...
Рейтинг: 0 / 0
26.02.2013, 16:11
    #38166725
Школа с философским уклоном.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Яростный Мечможет, третья высказалась, когда обогнала вторую?
Да, тоже подумал - гетеросинхронность, т.е. не одновременность описанных событий )
...
Рейтинг: 0 / 0
26.02.2013, 16:25
    #38166752
Школа с философским уклоном.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Ползут по пустыне три черепашки. Первая говорит: "Впереди меня никого, а позади две черепашки". Вторая говорит: "Впереди меня одна черепашка и сзади одна черепашка". Третья говорит: "Впереди меня одна черепашка и сзади одна черепашка". Как это возможно?
1. Сказать можно вообще что угодно при желании, рот всё стерпит.
2. Черепашки не умеют говорить, поэтому это никак не возможно.
3. Между произнесёнными фразами проходит время, за которое черепашки перемещаются относительно друг друга. Не сказано, что высказывания произносятся синхронно.
...
Рейтинг: 0 / 0
26.02.2013, 16:29
    #38166757
Stupid_BOT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
madbearУ нас одно время уже после собеседования, когда сотрудника приняли, предлагали размяться задачкой про черепашек:
Ползут по пустыне три черепашки. Первая говорит: "Впереди меня никого, а позади две черепашки". Вторая говорит: "Впереди меня одна черепашка и сзади одна черепашка". Третья говорит: "Впереди меня одна черепашка и сзади одна черепашка". Как это возможно?Долгое время я думал, что существует только одно решение)
...
Рейтинг: 0 / 0
26.02.2013, 16:30
    #38166763
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Черепашки двигаются в непрерывном дифференцируемом и искривлённом
и многомерном пространстве где понятия "перед" и "зад" имеют более
широкий смысл нежели в обычном представлении.
...
Рейтинг: 0 / 0
26.02.2013, 16:32
    #38166765
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Через три точки плоскости, не лежащие на одной прямой можно провести окружность и "три радиуса".
Одна черепашка движется по радиусу от центра такой окружности, а две другие - перпендикулярно "своим" радиусам.

P.S. Какое, всё-таки, второе решение?
...
Рейтинг: 0 / 0
26.02.2013, 16:40
    #38166786
Stupid_BOT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Basil A. Sidorov,
это как раз второе.
...
Рейтинг: 0 / 0
26.02.2013, 16:55
    #38166811
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Stupid_BOT, если мы спроецируем решение на рисунке на прямую
(ориентацию найдете сами) то мы получим первое решение.

Верно?
...
Рейтинг: 0 / 0
26.02.2013, 17:50
    #38166915
madbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка из "собеседования". Про черепашку.
Правильные варианты ответов
1. Как минимум одна из черепашек врет.
2. Пока вторая черепашка говорит, третья обгоняет вторую.
3. Условия задачи невыполнимы при условиях, что геометрия евклидова, время не движется и черепашки не являются мутантами.
3.1 (Частный случай 3): рассказчик разводит вас на поиск новых решений, хотя сам не утверждал, что эти варианты существуют :)

Про черепашек, двигающихся в непрерывном дифференцируемом и искривлённом и многомерном пространстве ничего не могу сказать, не специалист)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задачка из "собеседования". Про черепашку. / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]