Войти | Регистрация
Свежие: анекдоты, истории, мемы, фразы, стишки
Случайные: анекдоты, истории, мемы, фразы, стишки

История №786978

Прочитав http://www.anekdot.ru/id/786797/ вспомнилось...

Про специалистов.
Прочитал я как то историю про "сумасшедшего русского, придумавшего формулу" http://www.anekdot.ru/id/-9934695/. Байка занятная, конечно. Типа ура-патриотизм и все такое. Однако, писавший ее человек в предмете разбирается слабо, поэтому немного матчасти.
В стародавние времена, компьютеры были большие, а процессоры медленные. И во многих из них не было даже операции умножения, поэтому ее заменяли специальным алгоритмом быстрого умножения, который сводил эту операцию к операциям сложения и логического сдвига. Естественно, такая операция умножения выполнялась на порядок медленнее, поэтому когда была необходимость получить результат очень быстро (например, система управления ядерным реактором - тут надо быстро соображать, пока не рвануло) применяли табличный метод. Суть его заключалась в следующем: в памяти создавалась таблица, в которой аргументом какой либо функции был адрес ячейки, а готовый результат содержался в самой ячейке по этому адресу. Вычисление функции сводилось к простому обращению к ячейке памяти, что по сравнению с вычислением этой функции - очень быстро. Этот метод, кстати, и сейчас широко применим в т.н. встраиваемых системах (управление стиралками, микроволновками и пр.) по причине малого быстродействия их вычислительных устройств.
Так что же сделал горе-программист из вышеприведенной истории? Он заменил быстрое вычисление табличным методом, на медленное обычным способом. В лабораторных условиях, ясно, все прекрасно будет работать и так и эдак. А что будет в реальной жизни, когда ЭВМ встанет под нагрузку? А если, не дай б-г, что рванет, да еще с нулевым случаем? Кто то отхватит хороших люлей. Скорее всего, это будет вышеупомянутый горе-программист.
Мораль сей басни такова: надо расширять свой кругозор, хотя бы читая статьи в википедии, чтобы не попасть впросак и не выглядеть дураком.
+27
Проголосовало за – 50, против – 23
Статистика голосований по странам
Чтобы оставить комментарии, необходимо авторизоваться. За оскорбления и спам - бан.
2 комментария, показывать
сначала новые

AleM 15.10.15 22:50

Писал много я в конце 80-х на ассемблере для PDP-11, поэтому могу сказать следующее:
1) Памяти в те времена было мало и пихать в неё всякие таблицы, которые можно было бы вычислить, считалось расточительством и дурным тоном. (Тогда даже использовали кодировку RADIX50, чтобы три символа можно было запихать в два байта);
2) Обращение к памяти шло за большее количество тактов и было дольше по времени, чем умножение целых чисел находящихся в регистрах. Тем более, что умножение на константу хорошо программируется через сдвиг влево и сложение.

+0
ответить

Ворон15.10.15 03:17

Если считать, что исходная история верна...
С одной стороны, 80-е, компьютеры были большие и медленные.
Но с другой, умножить на 3, это всего лишь 2 раза сложить. А адрес вычислить ещё надо, и это займёт ещё больше времени, может, поскольку какая там разрядность и прочая архитектура не указано.
С третьей стороны, таблицы оно понятно, но какие там таблицы в телефонной компании? Явно не логарифмы вычислять им требуется.
С четвёртой, с компьютерной памятью тогда была напряжёнка, так что за такую таблицу программиста сразу бы убили принтером (ну или что там было в то время потяжелее).
В итоге, исходная история похожа на байку с непонятной основой, но и ответ на ту историю как бы кругозором тоже не блещет, хотя и претендует какбы.

+0
ответить

Общий рейтинг комментаторов
Рейтинг стоп-листов

Рейтинг@Mail.ru