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