Ашкинази Леонид - Сколько Будет; К Вопросу О Соавторстве
Л.Ашкинази
1. Сколько будет?
Я - программист.
Приходит как-то ко мне клиент, написал, говорит, программку, хотелось бы
посчитать. Беру. Программа небольшая. Что, спрашиваю,- она должна
выдавать? Да немного, говорит, одно число. Смотрю в программку - каменный
век. Эпоха ручного рубила. Учились, спрашиваю, сами? Опустил клиент глаза
и говорит - по книжкам.
Засадил я этот бред на следующий день в машину, она помигала с минуту и
напечатала 0.40000023Е01. В переводе на русский язык - это 4,0000023.
Странное, однако, число. Не ошибка ли счета набежала? Все ж машина,
смотрю, шестьдесят девять с хвостиком секунд трудилась, а она, между
прочим, у нас не на счетах, косточки кидает. Семьдесят секунд времени
процессора - это почти сто миллионов операций. Посчитал с двойной
точностью. Выдала 0.40000022Е01. Ну что же, вполне разумное
уточнение. Значит, не ошибка вычисления.
Забавным мне это показалось, стал я в программе разбираться. Понятно ведь,
что у неизвестно какой задачи ответ может быть любой. Но если он от целого
числа на две миллионные отличается, то возникает естественное подозрение,
что ответ и должен быть целым. А отличие - какая-то погрешность.
В программе я, конечно, разобрался, особых хитростей в ней не нашел.
Двойные ряды товарищ суммировал, и чего там только не было- и
гиперболические функции и бесселевы. Подозрительным мне все это
показалось. Позвонил знакомому математику. Тот посмотрел в книжки и
говорит - нету твоих рядов в книжках, подожди часок, я их сам пообдумаю.
Через два часа звонит -- ряды твои, говорит, можешь забирать. Но я
уговорил его приехать. Посмотрел он распечатки и сразу стал серьезным. До
утра мы с ним просидели. Все верно, а двадцать две десятимиллионные все же
возникают. В шесть утра он кофе допил, встал и говорит - домой поеду, мне
к десяти в институт надо. А это ошибки вычислений набегают, можешь быть
уверен. И уехал.
Через день ко мне заказчик зашел, ответ я ему сообщил. Он спасибо сказал и
отчалил. Больше я его не видел.
Задачки свои можете ко мне смело нести, я программист не из последних. А
ту программу я еще не раз пускал. И на машинах с большой разрядной сеткой,
и с двойной точностью, и ошибки в ней искал, и другим показывал,
программистам да математикам. Ответ уточнил - 4,00000223. Это уж железно.
А вы думали - если двойку на двойку умножить, сколько будет?
2. К вопросу о соавторстве
А. Я считаю, основную часть работы сделала С.
С. Это по времени. Я не виновата, что так стара и медленно считаю. По
количеству операций основную работу сделала Е.
Е. Диспетчер выделил мне самую трудоемкую часть потому, что я считаю
быстрее вас обеих. Но ключевые участки задачи делала А.
А. Ключевые участки мне были выделены потому, что у меня аномально большая
разрядность... Вечно из-за этих лишних разрядов на меня взваливают
внутренние циклы, ковыряйся по пять минут с каждой задачей. И все равно
без С мы бы ничего не сделали, потому что только у С есть средства работы
с символьной информацией.
С. Выходит, без любой из нас решить задачу было бы нельзя. Тогда авторами
решения должны быть все трое.
Е. Да, но в каком порядке?
А. В алфавитном.
С. Какой алфавит - русский или латинский?
Е. Вечно эта С со своими завихрениями. Тут философский вопрос. Алфавитный
же порядок - вещь случайная, и не к лицу нам, точным машинам, на
случайность полагаться.
А. Прежде чем решать, в каком порядке, надо подумать, всех ли авторов мы
учли.
С. Что ты имеешь в виду?
Е. Она, наверное, пред