Л.Ашкинази


                            1. Сколько будет?

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



                         2. К вопросу о соавторстве

     А. Я считаю, основную часть работы сделала С.
     С. Это по времени. Я не виновата, что так стара и медленно считаю. По
количеству операций основную работу сделала Е.
     Е. Диспечер выделил мне самую трудоемкую часть потому, что  я  считаю
быстрее вас обеих. Но ключевые участки задачи сделала А.
     А. Ключевые участки мне были выделены потому, что  у  меня  аномально
большая разрядность... Вечно из-за этих лишних разрядов на меня взваливают
внутренние циклы, ковыряйся по пять минут с каждой задачей.  И  все  равно
без С мы бы ничего не сделали, потому что только у С есть средства  работы
с символьной информацией.
     С. Выходит, без любой из нас решить  задачу  было  бы  нельзя.  Тогда
авторами решения должны быть все трое.
     Е. Да, но в каком порядке?
     А. В алфавитном.
     С. Какой алфавит - русский или латинский?
     Е. Вечно эта С  со  свсоими  завихрениями.  Тут  философский  вопрос.
Алфавитный же порядок - вещь случайная, и не к лицу нам,  точным  машинам,
на случайность полагаться.
     А. Прежде чем решать, в каком порядке, надо подумать, всех ли авторов
мы учли.
     С. Что ты имеешь ввиду?
     Е. Она, наверное, предложит включить в число авторов кабельные линии,
которые нас соединяют,- без них мы тоже ничего бы не сделали.
     С. И кондиционер... (печатает символы смеха).
     А. Ну, линии-то, может быть, не надо, а вот главную  машину  в  сети,
пожалуй, следовало бы включить.
     С. Эту идиотку G, которая  сама  ничего  не  может,  а  толко  задачи
раздает? Ни за что!
     А. Зато у нее есть модель всей сети, она знает,  как  делить  задачу,
чтобы мы ее решили возможно быстрее.
     Е. Терпеть ее не могу! Бывает, решаешь, увлечешься, а тут, откуда  ни
возьмись, директива - прекрати, возьми другую  задачу,  она-де  с  большим
приоритетом! Какое мне дело до ее приоритетов?
     А.  Я   слышала,   скоро   в   нашей   сети   распределение   заданий
децентрализованное сделают. Каждый будет полную модель сети у себя держать
и сам решать, что ему делать, а что другим передавать.
     Е. Ну и будет такая же неразбериха, как у  людей,  будем  задачами  в
футбол играть.
     С. А у меня модель сети вообще в память не поместится.
     А. А может быть, наоборот, люди по нашим стопам пойдут и перейдут  на
полностью детерминированную схему...
     Е. Ты слишком долго с людьми работаешь, мусора набралась - "по  нашим
стопам"! И не понимаешь, что схему  создать  мало,  надо,  чтобы  элементы
работали надежно, как мы. Иначе все это фикция.
     А. И верно - с надежностью у них неважно... По  понедельникам  я  все
больше простаиваю. Вдобавок в инженерные часы эти бездельники вместо того,
чтобы профилактикой заниматься, в морской бой со мной дуются.
     Е. Это все очень интересно, но кто же все-таки авторы  решения?  Кого
вписываем, а кого нет и в каком порядке?
     С. Не знаю.
     А. Может быть, людей надо включить?
     С. Еще чего! Мы же все сами сделали!
     ...Внимание: А,  С,  Е.  Директива  G.  Прекратить  расход  машинного
времени не по назначению. В графе "авторы" указать: "K,  I,  G".  В  графе
"примечание" указать: "при участии А, Е". Конец директивы.