Идеальная программа всегда имеет код возврата OK, потому что всегда работает правильно (при этом она, к сожалению, почти не встречается).
Хорошая программа имеет код возврата OK, если справилась с задачей, а ERR, если не справилась.
А желаемый компромис такой: если справилась, то OK, а иначе — подробная диагностика: почему не вышло, на каком этапе пошли косяки и так далее. Причём, хочется это всё получить одним числом, как обычно
Что характерно, такое бывает не только в программировании, но и в жизни. Следующая задачка по геометрии прикольна тем, что разные люди дают разные ответы И настаивают на них. А самое смешное, что по ответу можно весьма точно указать на ошибку. Поэтому данная задачка является образцом и примером "эталонной изящной геометрической задачки"
Итак, сама задача:
Два одинаковых конуса с равносторонними треугольниками со стороной 1 в осевых сечениях лежат на плоскости (т.е. в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними). При этом конусы касаются друг друга так, что их вершины совпадают. Надо найти расстояние от плоскости до самой далёкой точки касания одного конуса другим.
Пожалуйста, не пишите здесь решение, чтобы не лишать других удовольствия справиться самостоятельно.
11.03.09 19:31: Перенесено модератором из 'О жизни' — Кодт
11.03.09 19:31: Перенесено модератором из 'О жизни' — Кодт
Здравствуйте, Kluev, Вы писали:
K>Здравствуйте, Iso, Вы писали:
Iso>>Пожалуйста, не пишите здесь решение, чтобы не лишать других удовольствия справиться самостоятельно.
K>sin(pi/6)
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, Iso, Вы писали: MC>>>Рисунок в студию. Iso>>http://www.imageup.ru/img12/conepic106804.gif
MC>Ок, теперь понятно. Потому как по тексту я лично понял, что конусы соприкасаются в единственной точке — вершине, на расстоянии 0 от плоскости.
По тексту понял примерно тоже самое (ну разве что с поправкой что касаться друг друга они могут только в точке, лежащей в плоскости).
По рисунку вообще ничего не понял.
MC>Ок, теперь понятно. Потому как по тексту я лично понял, что конусы соприкасаются в единственной точке — вершине, на расстоянии 0 от плоскости.
Ну да, формулировать такие штуки сложнее всего.
В условии хоть и сказано "в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними", но понять это сходу сложно. Если умеете сделать хороший рисунок, то спасёте многих, я думаю
Здравствуйте, Iso, Вы писали: Iso>В условии хоть и сказано "в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними", но понять это сходу сложно.
Да не, с этим-то как раз все ок. Тут проблема в том, что в условии не указано, что конусы соприкасаются друг с другом по линии, а не в одной точке.
_>В смысле, поскольку в условии не уточнено, то либо 0, если касаются только вершинами, либо sqrt(1/2) если касаются по линии.
Всё без обмана, ответ 0 неинтересен, нужно именно максимальное расстояние от плоскости до точки касания конусов.
Но корень из половины — неверный ответ
Здравствуйте, Iso, Вы писали:
_>>В смысле, поскольку в условии не уточнено, то либо 0, если касаются только вершинами, либо sqrt(1/2) если касаются по линии. Iso>Всё без обмана, ответ 0 неинтересен, нужно именно максимальное расстояние от плоскости до точки касания конусов. Iso>Но корень из половины — неверный ответ
Почему? Могу обосновать свой ответ, но сам просил решение тут не постить...
Здравствуйте, Iso, Вы писали:
_>>Почему? Могу обосновать свой ответ, но сам просил решение тут не постить... Iso>Хорошо, можете написать в личку — я постараюсь указать на ошибку.
Гы. Нарисовал на бумажке, маленько пописал, получил sqrt(1/8)