|
↓ Содержание ↓
↑ Свернуть ↑
|
Добрую половину комнаты занимала непонятная установка, в основном состоящая из тонкостенных стеклянных баллонов и трубочек. Из такого количества баллонов и трубочек… Пожалуй, одного магазина к «калашникову» не хватило бы, чтобы всё это перебить. Студент фыркнул про себя и покрутил головой, отгоняя непрошенные мысли насчёт неспровоцированного вандализма.
— Нравится? — местное непосредственное начальство, к счастью, телепатией не владело. — Вот тут основной наш эксперимент и проводится… Только сейчас у нас другая задача, и решать её мы будем не здесь.
Где-то в недрах установки хлопнул импульс углекислотного лазера. Инфракрасные фотоны врезались в газовую толчею… Хотя «толчея» — это громко сказано, давление в реакторе было в сотни раз ниже атмосферного, и большая часть квантов невидимого света пролетела его насквозь. Но некоторые всё-таки встретились с летавшими там молекулами, и их энергия перешла сначала в энергию молекулярных колебаний, а потом и в тепловую энергию газовой смеси — а проще говоря, подогрела её. Впрочем, об этих хитрых термодинамических историях студент не думал, да и не знал толком ничего. Он был всего лишь математиком и немного программистом.
В соседнем помещении на рабочем столе расположилась персональная ЭВМ: широкий системный блок, взгромоздившийся сверху куб дисковода с двумя карманами, небольшой монитор. И, разумеется, клавиатура с понятными и не очень понятными обозначениями на клавишах. В частности, для чего могли бы пригодиться кнопки «ПФ4» или «АР2», студент не знал. Именно на этой машине и должна была работать программа, моделирующая тот самый процесс светового подогрева — от поглощения первых фотонов до полного перехода их энергии в тепло.
Собственно говоря, программа уже существовала и уже работала, причём работала часами. Помимо всего прочего, ей требовалось посчитать, сколькими способами можно распределить несколько поглощённых квантов между несколькими молекулами, и на эти вычисления тратилась львиная доля процессорного времени. Посчитать число способов, использовать это число в расчётной формуле, забыть. Снова посчитать, снова использовать, снова забыть. И так много, много раз…
ЭВМ — она тупая. Что написано в программе, то и выполнит.
— …Ну что? Есть идеи, как ускорить работу?
Студент задумался:
— А это самое число сочетаний фотонов с молекулами, которое мы так долго вычисляем, оно считается заново каждый раз?
— Ну да.
— А зачем? Давайте сделаем так: в начале программы заранее заполним таблицу для всех возможных параметров… Это же за один проход сделать можно! А потом каждый раз, как вам понадобится значение, не будем его заново вычислять, а прямо из таблицы достанем.
— Что, вот так просто?! И ты сможешь нужную функцию переписать?
— А описание языка есть?
— Вот! — на столе появилась книжка в серо-голубоватой мягкой обложке.
— Тогда смогу, — студент пожал плечами. — Только покажите, как тут редактировать, как компилировать и как запускать.
* * *
— Ну что, как там твой студент?
— Диверсант! Внутренний враг!
— Да? А подробнее?
— Вот как раньше было? Приду на работу, включу машину, запущу счёт… Пойду в бассейн поплаваю, пойду в столовую пообедаю, вернусь в лабораторию, подожду ещё полчасика — машина досчитает, можно смотреть, что там у неё получилось…
— А теперь?
— А теперь за минуту справляется! Какой там бассейн — с тобой перекурить времени не хватает!
Инфракрасный свет ударил по газовой смеси. Та резко нагрелась, молекулы стали ударяться друг о друга намного сильнее, чем на холоде. И часть этих молекул начала разваливаться на части, а потом объединяться уже в других сочетаниях. Пошла химическая реакция…
Лазерный луч — неоднородный. Где-то он сильнее, где-то слабее. Неравномерным был и нагрев. Чем выше устанавливалась температура, тем быстрее в этой зоне носились молекулы газа, тем сильнее были их удары, тем больше был шанс, что энергии столкновения хватит, чтобы разбить молекулу. Тем быстрее шла реакция…
Объём реактора невелик, давление в нём низкое, вещества в нём мало, стенки у него холодные — ведь на них лазер не светил. Не прошло и секунды, как смесь остыла и реакция остановилась. Вот только состав этой самой смеси оказался уже не совсем таким, как до светового удара.
То, что получилось, загнали в хроматограф и замерили, сколько там осталось исходного вещества и сколько образовалось продуктов. Записали результат. Поставили ещё одну точку на графике. Продули реактор, заполнили его свежей порцией газов. Чуть-чуть сдвинули настройку лазера, немножко изменили энергию его импульса. И повторили опыт. И ещё раз. И ещё много раз…
Единственный способ исключить случайную ошибку — это набрать хорошую статистику.
Студент на установке не работал. Перед ним поставили другую задачу: смоделировать процесс на ЭВМ и вычислить энергию активации реакции — ту самую минимальную энергию, которая нужна, чтобы молекула начала рассыпаться на части.
С самой моделью всё было понятно. Как лазерный импульс греет смесь в реакторе, известно — это начальные условия. Стенки всегда комнатной температуры, даже очень горячий газ подогреть их не сможет, слишком его мало — это граничные условия. Как остывает смесь, можно посчитать — на то есть уравнение теплопроводности. Как идёт реакция… И это тоже можно посчитать. При единственном условии: надо знать энергию активации этой самой реакции. Тот самый параметр, который нам и надо определить.
Значит, что? Значит, придётся заняться гаданием. Но, разумеется, не на кофейной гуще, а на твёрдой научной основе. Берём некий разумный интервал, в который нужное нам число наверняка попадёт, с запасом. Делаем расчёты — с одним значением, с другим, с третьим… Смотрим, какой насчитали результат, сравниваем с опытными данными, вычисляем отклонение. Где оно минимально — там нужное значение параметра и есть. Но считать нам — не пересчитать…
А отклонение надо будет не только по линейной, но и по логарифмической шкале смотреть. И что-то — наверное, интуиция математика — подсказывает, что логарифмическая даст более точный ответ.
* * *
— Ну что… Очень у нас неплохая работа получилась, шеф доволен. И доклад успешный, и статью наши американские коллеги приняли.
— А зачем ты меня в американской статье доктором назвал? Я ведь и не кандидат ещё…
— Ну, во-первых, с такими успехами в своих расчётах ты наверняка скоро защитишься. Во-вторых, у буржуев «доктор» — это как раз вроде нашего кандидата. А в‑третьих, написать про тебя «профессор» было бы нескромно.
— Угу… А вот про студента нашего везде сказано, что он студент!
— И правильно. Все, кому надо, знают: если среди авторов серьёзной научной работы есть студент, значит, он и сделал основную часть. А прочие — это его руководители.
В задачу, которую поставил подруге научный руководитель, студент до конца не вник. Что-то с логическими формулами, из которых надо сделать дерево, а потом с деревом, из которого надо сделать формулу… Но обещал помочь с отладкой программы, потому что на факультете с машинным временем завал, а у него есть знакомая химическая лаборатория, где наверняка разрешат поработать.
Текст программы подруга принесла на четырёх страницах. И объясняла, пока студент набивал его в редакторе, глядя то в бумаги, то на экран:
— Главная часть вообще-то на второй и третьей, первая — это ввод формулы и построение дерева, последняя — это распечатка результата. Насчёт ввода и вывода я уверена, там всё просто. А вот сама обработка, когда всё это дерево нужно в определённой последовательности обойти и по-хитрому преобразовать, это уже сложно… Две недели потратила!
Студент понимающе кивнул. На кафедрах кибернетического потока, в отличие от чисто математических и чисто программистских, частенько возились с изрядно замороченными вещами, именуемыми то «графами», то «цепями», то «автоматами», причём иногда даже «магазинными»… Его собственная курсовая, сводившаяся к написанию нескольких ассемблерных прокладок между процедурами на двух разных языках программирования, по сравнению с этой многоуровневой структурой выглядела полной элементарщиной. Чего там — перед вызовом функции достать пару значений по указанным адресам памяти и положить в стек, а после возврата очистить стек и переложить результат из регистра в нужную ячейку памяти…
— Ну что, готово? Давай попробуем запустить!
И программа заработала… Но заработала, как это обычно и бывает со свеженаписанными программами, куда-то не туда. Нет, исходную формулу она благополучно прочла; и дерево построила правильно (это проверили особо); и то, что у неё вышло после обработки пресловутого дерева, честно вывела. Но вышел у неё при этом редкостный бред, который, по словам подруги, из исходных данных ну никак не следовал.
Где у неё могла проскочить ошибка, она понятия не имела. Студент с тоской поглядел на две страницы программного кода… Чужого… На языке Си, одном из самых нечитабельных языков высокого уровня… И вздохнул:
— Слушай, можешь объяснить попроще, чего эта самая процедура обхода дерева сделать-то должна? Чтобы знать, что искать?
Выслушал объяснение, немного подумал и принял решение:
— Так, отлаживать эти две страницы мы не будем, времени нет. Сделаем так… Смотри: у тебя к каждой вершине дерева список вершин-потомков прилагается. Пустой, если эта вершина — лист. Пишем простую такую функцию… Она сначала вызывает сама себя для каждой вершины из списка потомков, потом свою собственную вершину обрабатывает — и завершает на этом работу… А в главной программе просто вызовем эту функцию для корня дерева.
Он стёр больше полусотни строк кода, заменив их на шесть — и всё отработало как положено.
Оставшееся время они с подругой гоняли программу на любых формулах, которые только приходили в голову. Функция работала как часы.
* * *
— Ну как, сдала курсовую?
— Сдала…
— А чего такая недовольная?
— А помнишь, я говорила, кого попрошу помочь с отладкой?
— И что? Не помог?!
— Если бы… Понимаешь, я полмесяца над этой программой просидела! Две страницы кода написала! Он их честно вбил — они не пошли! И тогда он эдак небрежно: «Это мы отлаживать не будем!» Выкидывает мои две страницы, пишет пять строчек — и они работают! В общем, я поняла: программиста из меня не выйдет. Пойду, наверное, в школу. Детей математике учить.
— Ты что, пошла сдавать курсовую, не разобравшись, как она работает?!
— Ну, совсем уж дурой не считай! Как работает, я разобралась. Чего там, по готовенькому-то… У меня там другая проблема возникла: как доценту объяснить, что эти пять строк работают, и работают правильно!
— Объяснила?
— Не-а. Он так и не въехал.
— Но курсовую зачёл?
— А куда он денется? Работает же! Все тесты прошли!
— А с твоим помощничком-то что?
— А на него я серьёзно обиделась.
— А он?
— По-моему, не заметил…
— Ха! А знаешь что?
— Что?
— Думаю, что вы с ним всё-таки поженитесь! Вот!

|
Спасибо за забавную занятную историю, автор! Очень убедительно написано, легко поверить, что всё так и было)))
1 |
|
|
Птица Гамаюн Онлайн
|
|
|
К тупицам и бездельникам наконец запустили нормального человека...
(Я тупица, если что) 1 |
|
|
Какая милота)
Нет правда! А вот про то, что студент он и в Африке студент, а вот кандидат наук тут уже сложнее перевести - жиза. Phd, конечно, используют, но опять же не везде уместно) 1 |
|
|
Ни черта не секу в математике, информатике, кодах и частицах. Поэтому ржала с выводов. А выводы, все жизненно понятные))
2 |
|
|
EnniNova
Оно всё как-то ходило вокруг, ходило, работало - а кончилось- то тем же, что и всегда! Это как-то вдохновляет ))) 2 |
|
|
Крутой программист однако. Молодец!
|
|
|
Sofie Alavnir Онлайн
|
|
|
Мне сложно тут что-то предметно прокомментировать, очень уж коротенькая, специфичная и не слишком насыщенная сюжетом вышла зарисовка, скажу лишь ещё раз, что искренне восхищаюсь программистами и в целом людьми, понимающими что-то в том, что сама с чистой совестью зову техномагией.
Показать полностью
![]() ![]() Прикол с таблицей, и в принципе то, как красиво товарищ студент каждый раз оптимизирует переусложнённые рабочие процессы, невольно напомнил матушкины рассказы про то, как она на каждом месте работы находила новый способ каким-то образом построить всех по струнке очередной своей придумкой. В частности, сразу вспомнилась история с работой в продаже квартир, когда она первая додумалась тупо сделать таблицу в Экселе со всеми нужными данными, и это разом упростило работу для всех раза в два-три. Весёлое было время — 90-е... Вспомнились ещё друзья из Московского Политеха, которые периодически тоже вот рассказывают какие-то такие техномагичные вещи, которые звучат интересно, очень интересно безусловно, но едва ли мне понятны. Не могу сказать, что заметила особые недостатки, кроме разве что того, что текст не слишком тянет на законченную историю, скорее на набор слабо связанных эпизодов, но, справедливости ради, написанных хорошо. Единственное что намёк на любовную линию в конце показался каким-то неуместным. Не ощутила я между этими двумя химию за имеющуюся в тексте короткую интеракцию, как-то не поверила я в их возможные отношения. 2 |
|
|
Симпатичная история. Приятно читать про будни талантливых людей. Надеюсь, у героев и дальше все будет хорошо)
1 |
|
|
Теллуридавтор
|
|
|
Всем огромное спасибо за внимание! (А за рекомендацию — особо, Паутинка!)
Надеюсь, уважаемые читатели не обиделись, что во время работы над рассказиком автор вырезал оттуда изрядное количество комбинаторики, молекулярной физики, газовой химии, численных методов, дискретной математики и, до кучи, тонкостей программирования на четырёх различных языках. Но, кажется, и так должно быть ясно, за что нашего студента в шутку ругали и так же в шутку превозносили коллеги-химики — кстати, отлично сделавшие свою, главную часть работы. Sofie Alavnir, вам отдельный поклон за наблюдательность. Да, абсолютно вся «химия» между персонажем и его девушкой сознательно оставлена за рамками, в кадре лишь реальная химия в газовой среде. «Гет» запрещён! Только работа, только дело! Но вовремя заткнуть рот любопытной одногруппнице, увы, не получилось, и что она ляпнула, то ляпнула. 5 |
|
|
Улыбнуло. Спасибо.
1 |
|
|
↓ Содержание ↓
↑ Свернуть ↑
|