Жил-был один препод. Психолог. Вёл он психологию и решил защитить кандидатскую диссертацию по психологии. Он исследовал личность. Личность он характеризовал разными качествами: доброта, отзывчивость, жадность, честность, хитрость и т.д. Всего 59 качеств. Между этими качествами он рассчитал длину связей. Например, доброта сильно связана с отзывчивостью, значит, связь короткая, пусть длина её 5. Хитрость слабо связана с честностью, поэтому здесь связь длинная, пусть 50. Связи были как дороги: с односторонним движением и с двусторонним. Некоторых связей не было.
Дома препод скатал несколько пластилиновых шариков и начал соединять их между собой спичками разной длины. Шарики – это качества. Спички – связи. Получился замысловатый «ёжик» из пирамид. Шарики надо было как-то подписывать, на спичках указывать направление. 59 шариков и ещё большее количество спичек было сконструировать весьма сложно. Тёща смеялась над ним. Зря, потому что, защитившись, он же будет отдавать будущие деньги её дочери!
Короче, препод понял, что конструкцию надо делать на компе. Это должна быть компьютерная программа, которая на мониторе изображает «ёжика» в цвете, позволяет поворачивать его, приближать, удалять. Это и удобно, и солидно – применение компа! И препод пошёл искать программиста. Он обошёл всех программистов в нашем ВУЗе. Одни разводили руками, другие вроде бы взялись делать, но дело не шло.
А один, назовём его Мориарти, сказал, что это математически невозможно. Он окончил физфак МГУ, высоко драл нос, важно сидел за персональным компом. Его почитали, побаивались, к его мнению беспрекословно прислушивались. Я так не думал. Потому что был у меня с ним такой случай. Поздно вечером я откуда-то непонятно зачем заявился на наш физмат факультет, а Мориарти сидел за столом в прихожей у ректора и, бросив ручку на стол, с чувством удовлетворения сказал: уф, наконец-то я вычислил определитель 4-го порядка! На что я просто ответил: а что тут такого? У нас его вычисляют студенты на 1-ом курсе физмата. Мориарти опешил, возможно, он ждал комплимента, а тут какой-то, окончивший пединститут города Задрищенска, такое выдал! Это был не первый случай невосторга его талантом с моей стороны, и Мориарти лишний раз убедился, что столкнулся с сильным и опасным конкурентом. А мне-то он и на хрен был всегда не нужен. Я не искал с ним конфронтации никогда. Не нужен и всё.
Так вот Мориарти сказал психологу, что построение «ёжика» на компе математически невозможно. Но психолог был далёк от математики и не понял сурового приговора. Он продолжал жалобно таскаться по тогдашним айтишникам, но ничего не выходило. Я слышал эти разговоры, но не лез в них, так как считал, что это работа серьёзная, ответственная, а психолог был зятем своей тёщи, твари, которая могла в любой момент мне навредить в случае неудачи.
В то время я тоже сидел за компом и мирно поигрывал в квесты, когда вокруг кипели страсти вокруг «ёжика». И вот однажды психолог подошёл ко мне и спросил: а Вы не могли бы сделать такую прогу? Я заплачу.
Я сказал: давайте, я попробую, начну делать, если дело пойдёт через две недели, то я скажу Вам ждать ли результата и когда. А деньги – по результату.
Договорились.
Математически задача сводилась к следующему. Дано несколько точек в трёхмерном пространстве, координаты которых неизвестны. Известны некоторые расстояния между ними. Требуется построить конструкцию из этих точек с соблюдением заданных расстояний между ними. Построить «ёжика».
Например, дано 4 точки. Между ними 6 расстояний: 1, 1, 1, 1, корень из 2 и ещё корень из 2. Мы знаем – это квадрат.
Если же все расстояния 1, 1, 1, 1, 1, 1 – это тетраэдр.
Комп должен чуять и то, и другое. И нарисовать. Вращение «ёжика», цвета, приближение, удаление – это мелочь.
Мне удалось придумать алгоритм. В его основе лежит простая формула из аналитической геометрии, которую, кстати, тоже изучают студенты 1-го курса физмата. Я написал прогу и отдал её психологу.
Психолог очень обрадовался. Спросил: сколько? С него можно было взять стоимость небольшого цветного телевизора, учитывая, что я просидел над прогой 2 месяца. Но я вспомнил про тёщу, струсил и взял полтелевизора. Через полгода на основе моей проги психолог защитился, стал кандидатом психологических наук.
Об этих событиях быстро узнал Мориарти. Как-то шёл я по коридору, и Мориарти позвал меня в свой кабинет.
Кто сделал программу психологу? – спросил Мориарти.
Я: Не знаю.
Мориарти: Как не знаешь? Это же ты сделал!
А я сказал психологу, чтобы он никому не рассказывал, что я сделал ему прогу.
Я: Я не делал.
Мориарти: Ведь ты же понимаешь, это математически невозможно! Если одно ребро пирамиды будет очень длинным, оно не впишется в пирамиду!
Я: Конечно. Конечно, не впишется. Абсолютно верно. Это математически невозможно. Поэтому я её не мог сделать.
Мориарти: А кто её сделал? Из наших преподов её никто не мог сделать.
Я: Какой-то студент…
Мориарти: Какой студент?
Я: Да ты его не знаешь. Он заочник и уже выпустился.
Мориарти, конечно, мне не поверил. Но он ломал голову, как я мог всё-таки сделать эту прогу?!
Потом сказал: Ладно, у психолога много денег, за деньги ему сделали.
Я: да, скорее всего, за деньги.
И мы разошлись. Мориарти ещё больше возненавидел меня. И в конце концов победил. Спустя 6 лет он насрал мне с диссертацией. Написал с дружками на меня подмётные письма, ректор не дал добро и мне не удалось защититься. Я уволился и перешёл на другую работу.
Как же я вписал невписываемые рёбра? Я думаю, Вы догадались.
А о второй половине цветного телевизору иногда жалею, хоть и прошло уже сто лет. Кто бы знал! Увы! Психолог впоследствии разошёлся со своей женой. И мне стоило бы в те времена пойти на риск и взять стоимость всего телевизора!
Ещё пара шедевров - Вам на память!