• Задача:
    На поверхности прямоугольного параллелепипеда сидит муха и нанесена капля варенья. Определите наименьшее расстояние, которое должна проползти муха по поверхности параллелепипеда, чтобы доползти до капли.

    Входные данные:

    Первые три строки входных данных содержат положительные числа K, L, M, являющиеся размерами параллелепипеда вдоль осей OX, OY, OZ. Один угол параллелепипеда находится в начале координат, противоположный – в точке (K;L;M), ребра параллелепипеда параллельны осям координат.
    Следующие три строки входных данных содержат координаты мухи X1, Y1, Z1, затем идут три строки с координатами варенья X2, Y2, Z2. Задаваемые этими координатами точки находятся на поверхности параллелепипеда. Все числа во входных данных целые, не превосходящие 1000.

    Выходные данные:

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

    Пример
    Вход Выход
    1 2.236067977
    1
    1
    0
    0
    0
    1
    1
    1

    Вход Выход
    12 13
    5
    2
    1
    0
    1
    12
    4
    1

    Написал "каркас" программы без уравнения, которое решает задачу:

    Program rast;
    var K, L, M, X1, Y1, Z1, X2, Y2, Z2, R : real;
    begin
    writeln('Введите 3 положительных числа K, L, M, являющиеся размерами параллелепипеда вдоль осей OX, OY, OZ');
    readln(K, L, M);
    writeln('Введите координаты мухи X1, Y1, Z1');
    readln(X1, Y1, Z1);
    writeln('Введите координаты варенья X2, Y2, Z2');
    readln(X2, Y2, Z2);
    R:=;
    writeln(R);

    end.
    Какое уравнение должно вычислять R? Помогите пожалуйста

Ответы 1

  • Баллы не ставте. ДОБАВЛЯЮ РЕШЕНИЕ, БОЮСЬ НЕ УСПЕТЬ оформить. Но там, если что, вроде обещали вторую попытку редакции. Тогда и программу можно будет добавить Думаю ход рассуждений уже можно понять. Если точки расположены на смежных гранях, формулы получаются похожими ,(а может и такими же), что рассматривались товарищем Allangarsk  Если на противоположных гранях, то надо еще добавить (оформить). Идея то есть.  В общем все многообразие вариантов можно будет втиснуть в 7 групп "формул".Можно развернуть куб, центром "развертки" делаем грань где сидит муха, если муха и варенье на одной грани достачно просто, путь прямая, Зелным цветом залита одна и таже грань отмечено 4 возможных пути один из которых, в зависимости от размеров куба и координат мухи и варенья будет кратчайшим. Кратчайший путь для ситуации на рисунке -  зеленый пунктир. Да если достроить до треугольника (черный пунктир катеты d и f), искомый путь гипотенуза. Её длина l= \sqrt{d^2+f^2} Значит вся "хитрость" в том, чтобы правильно "собрать" длины катетов.Если успею обобщить и облечь все в формулы (код) (логические выражения), добавлю. И уточню рисунки. Если нет, может кто-то догадается. Или в крайнем случае отошлют на доработку мне или Allangarsk.Возможно, что в случае расположения на противоположных гранях, придется просчитывать все пути кандидаты и выбирать из них наименьший. В случае на расположения на одной грани (X1=X2)OR(Y1=Y2)OR(Z1=Z2) кратчайший путь очевиден. Если, допустим Z1=Z2, то l= \sqrt{(X1-X2)^2+(Y1-Y2^2)} d=(X1-X2), f=(Y1-Y2).
    answer img
    • Автор:

      missie6
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years