How many?

20 июля 2006 г. Просмотров: 7504 RSS Обсудить
Графомания

     Я - программист.

     Приходит как-то ко мне клиент, написал, говорит, программку, хотелось бы посчитать. Беру. Программа небольшая. Что, спрашиваю,- она должна выдавать? Да немного, говорит, одно число. Смотрю в программку - каменный век. Эпоха каменного рубила. Учились, спрашиваю, сами? Опустил глаза клиент и говорит - по книжкам.

     Засадил я этот бред на следующий день в машину, она помигала с минуту и напечатала 0.40000023E01. В переводе на русский язык - это 4,0000023. Странное, однако, число. Не ошибка ли счета набежала? Все ж машина, смотрю, шестьдесят девять с хвостиком секунд трудилась, а она, между прочим, у нас не на счетах косточки кидает. Семьдесят секунд времени процессора - это почти сто миллионов операций. Посчитал с двойной точностью. Выдала 0.40000022E01. Ну что же, вполне разумное уточнение. Значит не ошибка вычисления.

     Забавным мне это показалось, стал я в программе разбираться. Понятно ведь, что у неизвестно какой задачи ответ может быть любой. Но если он от целого числа на две миллионные отличается, то возникает естественное подозрение, сто ответ и должен быть целым. А отличие - какая-то погрешность.

     В программе я, конечно, разобрался, особых хитростей в ней не нашел. Двойные ряды товарищ суммировал, и чего там только не было - и гиперболические функции и бесселевы. Подозрительным мне все это показалось. Позвонил знакомому математику. Тот посмотрел в книжки и говорит - нету твоих рядов в книжках, подожди часок, я их сам пообдумаю. Через два часа звонит - ряды твои, говорит, можешь забирать. Но я уговорил его приехать. Посмотрел он распечатки и сразу стал серьезным. До утра мы с ним просидели. Все верно, а двадцать две десятимиллионные все же возникают. В шесть утра он кофе допил, встал и говорит - домой поеду, мне к десяти в институт надо. А это ошибки вычислений набегают, можешь быть уверен. И уехал.

     Через день ко мне заказчик зашел, ответ я ему сообщил. Он спасибо сказал и отчалил. Больше я его не видел.

     Задачки свои можете ко мне смело нести, я программист не из последних. А ту программу я еще не раз пускал. И на машинах с большой разрядной сеткой, и с двойной точностью, и ошибки в ней искал, и другим показывал, программистам и математикам. Ответ уточнил - 4,00000223. Это уж железно.

     А вы думали - если двойку на двойку умножить, сколько будет?

Л.Ашкинази

twitter.com vkontakte.ru odnoklassniki.ru blogger.com liveinternet.ru livejournal.ru


Комментариев: 0

    Оставьте комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

    Вы можете войти под своим логином или зарегистрироваться на сайте.

    (обязательно)