pargentum: (Morda)
[personal profile] pargentum
Мне вспомнилась замечательная академовская байка, как кроносисты пришли на экономфак НГУ продавать им свое великое изобретение.
А те им сказали: выпей из дуршлагаа сложите-ка два миллиарда рублей с тремя миллиардами рублей с точностью до копеек.
И кроносисты, как гласит байка, именно тогда впервые осознали величие двоично-десятичной арифметики.  Но переделывать процессор сил уже не было.

Update: Вот Кронос мне точно гораздо сильнее жалко, чем Электроники-60 и 1801ВМ1. Все-таки это была действительно самобытная разработка, и при этом вписанная в мировой процесс развития - её, как-никак, сам Вирт приезжал одобрять. Но с высоты сегодняшнего знания описать это иначе как "детский сад, штаны на лямках" у меня, извините, не получается. Или, как там у "Крематория" - "грязный подвал и на стенах женщины, отчизна которых туземный атолл. Сомнительный звук, но в каждом аккорде слепая вера в рок-н-ролл".

Date: 2014-02-17 11:02 am (UTC)
From: [identity profile] znour.livejournal.com
Не понимаю, а в чем проблема-то была? Что такое не умел кронос, чтобы сложить два числа?

Date: 2014-02-17 11:05 am (UTC)
From: [identity profile] pargentum.livejournal.com
Диапазон представления 32-битных двоичных чисел вам напомнить или сами на калькуляторе посчитаете?

Date: 2014-02-17 11:17 am (UTC)
From: [identity profile] znour.livejournal.com
А в чем ваще проблема считать любую разрядность на любой меньшей разрядности? Я легко вам посчитаю сумму хоть 128к бит числа на 8битном компьютере.

Date: 2014-02-17 11:20 am (UTC)
From: [identity profile] pargentum.livejournal.com
Если есть флаг двоичного переноса - никакой проблемы. А вот если его нету - ...
ЗЫ надо полистать руководство по системе команд Кроноса, у меня жена его несколько раз порывалась выкинуть, но я героически отстоял. Но с битом переноса и реализацией на его основе длинной арифметики там все было как-то не очень просто.

Date: 2014-02-17 11:21 am (UTC)
From: [identity profile] znour.livejournal.com
УПД. Вот я работаю в том числе с 1с 8.2, она считает с точностью 64 десятичных знака не теряя точности. Это что-то около 214 бит двоичного представления. на 32битных процессорах!

UPD2. А флаг переноса они не могли забыть даже в принципе. Это база двоичной логики.

Date: 2014-02-17 11:32 am (UTC)
From: [identity profile] pargentum.livejournal.com
Ну вот вам описание процессора с реализацией всех команд на Модуле: http://kronos.ru/documentation/ar

Найдите там что-нибудь, на чем можно сделать бит переноса. Я с ходу не нашел. Переполнение есть, переноса нетути.

Обратите также внимание, что там вообще нет арифметических флагов в том смысле, в каком они есть у PDP-11 или интела. Там омега-признак, как у БЭСМ-6. Много команд сравнения и одна команда условного перехода.

Date: 2014-02-18 03:31 am (UTC)
From: [identity profile] fat-yankey.livejournal.com
Отсутствие бита переноса замедляет вычисления. И только. В конце концов реализации BigInteger на самых разных языках высокого уровня вообще бит переноса не используют.

Date: 2014-02-18 04:04 am (UTC)
From: [identity profile] pargentum.livejournal.com
Ну, можно вообще всю арифметику на сдвигах и битовой логике сделать (внутре процессора она почти так и сделана). И это тоже только замедлит вычисления.
Двоично-десятичную логику, кстати, таким образом сделать еще проще.

Date: 2014-02-17 11:21 am (UTC)
From: [identity profile] pargentum.livejournal.com
ЗЗЫ вот чего там точно не было - это 64-битного типа инт в Модуле.
То есть даже если такое и можно было сделать на ассемблере, то основной язык программирования это точно не умел.

Date: 2014-02-17 11:22 am (UTC)
From: [identity profile] znour.livejournal.com
Делаем расширение езыга, и снова нет никаких проблем. Все езыги развиваются со временем.

Date: 2014-02-17 11:26 am (UTC)
From: [identity profile] pargentum.livejournal.com
У тех Кроносов, с которыми я имел дело, такого расширения езыга почему-то не было. Это я точно могу сказать, и это все, что я по данному вопросу знаю из первых рук.

Date: 2014-02-17 11:45 am (UTC)
From: [identity profile] kouzdra.livejournal.com
Ну дык для вас классическая бухгалтерская задачка - есть табличка с раскладкой по строкам столбцам.

Цифирь в ней хоть и в рублях, но есс-но на сам деле с кучей знаков после запятой. Округлять можно в любую сторону с точностью до копейки.

Надо округлить так, чтобы сошлись "итого" и в строчках и в столбцах (ну и совсем итоговое итого тоже).

Не очень кстати простая.

Date: 2014-02-17 11:49 am (UTC)
From: [identity profile] pargentum.livejournal.com
В двоично-десятичной арифметике как раз абсолютно ничего сложного. Потому что можно округлить одни только итого.

Date: 2014-02-17 11:54 am (UTC)
From: [identity profile] kouzdra.livejournal.com
А причем тут "двоично десятичная" - цифирки-то там возникаю из "налоговых" 15% от 1233453252 рублей. Кои с произвольной разрядностью в любой системе.

Но я в общем понял - с бухгалтерией вы тоже не сталкивались.

Date: 2014-02-17 11:58 am (UTC)
From: [identity profile] pargentum.livejournal.com
Если чо, двоично-десятичная арифметика вполне себе допускает числа с фиксированной точкой практически неограниченной точности. Поэтому как может получиться дробное число копеек я прекрасно понимаю, и никакой отдельной проблемы это не создает. Если вы про это.

Date: 2014-02-17 12:05 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
Я вам про конкретную и очень известную реальную задачку - у вас есть матрица. Вам ее надо округлить до копеек так чтобы контрольные цифры "сошлись" по обоим измерениям (требование понятное - потому как на "округлении до копеечки" только ленивый не ворует).

Двоичность с десятичностью тут вообще мимо темы (что вы ее упоманаете упорно грит только о том что вы вообще не понимаете про что вам говорят)

Date: 2014-02-17 01:29 pm (UTC)
From: [identity profile] pargentum.livejournal.com
Ваша исходная задача была про округлить итого, а не саму матрицу.

Date: 2014-02-17 01:57 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
Слушайте - ну либо не придуривайтесь - задачка известная очень, либо сознайтесь что ни хера вы даже в бухгалтерском программировании не пониматете. Я лично склонен считать что второе.

Date: 2014-02-17 01:59 pm (UTC)
From: [identity profile] pargentum.livejournal.com
Слушайте, укажите пожалуйста в вашей формулировке задачи фразу, из которой следует, что округлять нужно саму матрицу.

Задача известная в обоих формулировках.

Date: 2014-02-17 02:05 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
Я в общем-то исходил из того что человеку при вопросе 2x2 = 4 не надо объснять что это значит.

PS: Кроноса мне кстати как раз ни разу не жалко - такой же провинциальный (а скорее больший даже) онанизм как и всякие ЛГУ-самсоны. Попрограммировать всякую х-ню под них забавно было конечно - но общая перспектива тут как раз была ясна.
Edited Date: 2014-02-17 02:07 pm (UTC)

Date: 2014-02-17 02:09 pm (UTC)
From: [identity profile] pargentum.livejournal.com
Я еще раз повторяю свою просьбу: укажите, какую из фраз вашей формулировки следует понимать как требование округлять именно матрицу.

Date: 2014-02-17 02:48 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
Ну поучитесь хотя бы дурочку-то валять убедительно.

Date: 2014-02-17 04:40 pm (UTC)
From: [identity profile] pargentum.livejournal.com
Эту просьбу вполне можно обратить и к вам.

Date: 2014-02-17 02:00 pm (UTC)
From: [identity profile] pargentum.livejournal.com
Кстати, да, в одном вы правы. Бухгалтерией я ни разу всерьез не занимался. Все как-то поинтереснее задачки находились.

Date: 2014-02-17 07:13 pm (UTC)
From: [identity profile] os80.livejournal.com
Проблему создаёт тот факт, что округлённая сумма величин не обязательно равна сумме округлённых величин :-)

Date: 2014-02-18 12:33 am (UTC)
From: [identity profile] pargentum.livejournal.com
Если задача округлить матрицу, то да, проблема в этом. Но из исходной формулировки задачи это не следует. :)

Date: 2014-02-17 07:10 pm (UTC)
From: [identity profile] os80.livejournal.com
Вот меня поражает, что ни один мудак типа Кормена этот алгоритм не разбирает (интересно - как с этим у Кнута?).
Сколько ж я в своё время протрахался с ней, с задачкой этой...
И, ЧСХ, решение-то простенькое.
Edited Date: 2014-02-17 07:23 pm (UTC)

Date: 2014-02-17 07:18 pm (UTC)
From: [identity profile] os80.livejournal.com
Хотя я никак не могу понять, почему никто не использует суммовую разницу вместо вот этого онанизма.
При создании этих строчек вручную - ещё мог бы, а когда машина вкалывает - какая, казалось бы, разница, кроме большей понятности?

Profile

pargentum: (Default)
pargentum

May 2026

S M T W T F S
      1 2
3 4567 8 9
10 11 12 1314 15 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 17th, 2026 05:32 am
Powered by Dreamwidth Studios