Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 09:52
Оценка: 62 (7)
Идеальная программа всегда имеет код возврата OK, потому что всегда работает правильно (при этом она, к сожалению, почти не встречается).
Хорошая программа имеет код возврата OK, если справилась с задачей, а ERR, если не справилась.

А желаемый компромис такой: если справилась, то OK, а иначе — подробная диагностика: почему не вышло, на каком этапе пошли косяки и так далее. Причём, хочется это всё получить одним числом, как обычно

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

Итак, сама задача:

Два одинаковых конуса с равносторонними треугольниками со стороной 1 в осевых сечениях лежат на плоскости (т.е. в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними). При этом конусы касаются друг друга так, что их вершины совпадают. Надо найти расстояние от плоскости до самой далёкой точки касания одного конуса другим.

Пожалуйста, не пишите здесь решение, чтобы не лишать других удовольствия справиться самостоятельно.

11.03.09 19:31: Перенесено модератором из 'О жизни' — Кодт
11.03.09 19:31: Перенесено модератором из 'О жизни' — Кодт
Re: Код возврата и геометрия :)
От: Mr.Cat  
Дата: 11.03.09 09:57
Оценка:
Здравствуйте, Iso, Вы писали:
Iso>Итак, сама задача:

Рисунок в студию.
Re[2]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 10:11
Оценка:
MC>Рисунок в студию.


За качество прошу не ругать, так как пишу из горящего танка
Re: Код возврата и геометрия :)
От: Kluev  
Дата: 11.03.09 10:17
Оценка:
Здравствуйте, Iso, Вы писали:

Iso>Пожалуйста, не пишите здесь решение, чтобы не лишать других удовольствия справиться самостоятельно.


sin(pi/6)
Re[2]: Код возврата и геометрия :)
От: Kluev  
Дата: 11.03.09 10:23
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Здравствуйте, Iso, Вы писали:


Iso>>Пожалуйста, не пишите здесь решение, чтобы не лишать других удовольствия справиться самостоятельно.


K>sin(pi/6)


вернее sqrt(5/4)*sin(pi/6)
Re[3]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 10:30
Оценка:
K>sqrt(5/4)*sin(pi/6)

sin(pi/6) = 0.5 Это позволит упростить выражение.
Re[3]: Код возврата и геометрия :)
От: Mr.Cat  
Дата: 11.03.09 10:55
Оценка: +2
Здравствуйте, Iso, Вы писали:
MC>>Рисунок в студию.
Iso>http://www.imageup.ru/img12/conepic106804.gif

Ок, теперь понятно. Потому как по тексту я лично понял, что конусы соприкасаются в единственной точке — вершине, на расстоянии 0 от плоскости.
Re[4]: Код возврата и геометрия :)
От: vb-develop  
Дата: 11.03.09 10:58
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, Iso, Вы писали:

MC>>>Рисунок в студию.
Iso>>http://www.imageup.ru/img12/conepic106804.gif

MC>Ок, теперь понятно. Потому как по тексту я лично понял, что конусы соприкасаются в единственной точке — вершине, на расстоянии 0 от плоскости.


По тексту понял примерно тоже самое (ну разве что с поправкой что касаться друг друга они могут только в точке, лежащей в плоскости).
По рисунку вообще ничего не понял.
Re[4]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 11:10
Оценка:
MC>Ок, теперь понятно. Потому как по тексту я лично понял, что конусы соприкасаются в единственной точке — вершине, на расстоянии 0 от плоскости.

Ну да, формулировать такие штуки сложнее всего.
В условии хоть и сказано "в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними", но понять это сходу сложно. Если умеете сделать хороший рисунок, то спасёте многих, я думаю
Re[4]: Код возврата и геометрия :)
От: Kluev  
Дата: 11.03.09 11:22
Оценка:
Здравствуйте, Iso, Вы писали:

K>>sqrt(5/4)*sin(pi/6)


Iso>sin(pi/6) = 0.5 Это позволит упростить выражение.


так правильно или нет?
Re: Код возврата и геометрия :)
От: alex_mah Россия www.elsy.ru
Дата: 11.03.09 11:36
Оценка:
Здравствуйте, Iso, Вы писали:

Iso>...


sqrt(1/2) ?
Re[5]: Код возврата и геометрия :)
От: Mr.Cat  
Дата: 11.03.09 11:36
Оценка: +1
Здравствуйте, Iso, Вы писали:
Iso>В условии хоть и сказано "в плоскости находится вершина каждого конуса, ровно одна точка с окружности и отрезок между ними", но понять это сходу сложно.

Да не, с этим-то как раз все ок. Тут проблема в том, что в условии не указано, что конусы соприкасаются друг с другом по линии, а не в одной точке.
Re[2]: Код возврата и геометрия :)
От: alex_mah Россия www.elsy.ru
Дата: 11.03.09 11:40
Оценка:
Здравствуйте, alex_mah, Вы писали:

_>Здравствуйте, Iso, Вы писали:


Iso>>...


_>sqrt(1/2) ?


В смысле, поскольку в условии не уточнено, то либо 0, если касаются только вершинами, либо sqrt(1/2) если касаются по линии.
Re[3]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 11:58
Оценка:
_>В смысле, поскольку в условии не уточнено, то либо 0, если касаются только вершинами, либо sqrt(1/2) если касаются по линии.
Всё без обмана, ответ 0 неинтересен, нужно именно максимальное расстояние от плоскости до точки касания конусов.
Но корень из половины — неверный ответ
Re[4]: Код возврата и геометрия :)
От: alex_mah Россия www.elsy.ru
Дата: 11.03.09 12:06
Оценка:
Здравствуйте, Iso, Вы писали:

_>>В смысле, поскольку в условии не уточнено, то либо 0, если касаются только вершинами, либо sqrt(1/2) если касаются по линии.

Iso>Всё без обмана, ответ 0 неинтересен, нужно именно максимальное расстояние от плоскости до точки касания конусов.
Iso>Но корень из половины — неверный ответ

Почему? Могу обосновать свой ответ, но сам просил решение тут не постить...
Re: Код возврата и геометрия :)
От: anonymous Россия http://denis.ibaev.name/
Дата: 11.03.09 12:07
Оценка:
Здравствуйте, Iso, Вы писали:

Iso>Надо найти расстояние от плоскости до самой далёкой точки касания одного конуса другим.


sqrt(3) / 4
Re[5]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 12:09
Оценка:
_>Почему? Могу обосновать свой ответ, но сам просил решение тут не постить...
Хорошо, можете написать в личку — я постараюсь указать на ошибку.
Re[2]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 12:10
Оценка:
A>
A>sqrt(3) / 4
A>

Тоже очень распространённый ответ
Re[6]: Код возврата и геометрия :)
От: alex_mah Россия www.elsy.ru
Дата: 11.03.09 12:17
Оценка:
Здравствуйте, Iso, Вы писали:

_>>Почему? Могу обосновать свой ответ, но сам просил решение тут не постить...

Iso>Хорошо, можете написать в личку — я постараюсь указать на ошибку.

Гы. Нарисовал на бумажке, маленько пописал, получил sqrt(1/8)
Re[7]: Код возврата и геометрия :)
От: Iso  
Дата: 11.03.09 12:31
Оценка:
_>Гы. Нарисовал на бумажке, маленько пописал, получил sqrt(1/8)
Да, бумажка рулит, Вы на верном пути.
Но надо ещё решать, если хотите верный ответ
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.