?

Log in

No account? Create an account

Previous Entry | Next Entry

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

А так любое число может выполнять любые арифметические операции, и это означает, что разные числа ничем не отличаюцца друг от друга, в иерархическом смысле.

Однако ничто не может существовать вне чего-то. Если числа существуют вне иерархии, то значит или чисел "нет" (а они все-таки "есть"), или они просто плохо представлены и недостаточно хорошо поняты Человеческим умом.

Попытка была представить число в виде 1.0.2.123 и т.д. Но это жалкая попытка, немедленно разбивающаяся при первом же столкновении с объективной реальностью. Попросите любого математика например разделить 1.2.3 на 4.5.6 и посмарите, как он сразу начнет нервно ерзать на стуле. Он небось поделит 1 на 4, 2 на 5, 3 на 6 и получит что-нибудь пакостное типа 0.25.0.4.0.5, "это лишено математического смысла".

"Деление" у чисел первого порядка должно быть другим, чем у чисел второго и т.д. Сама идея "деления", в обычном понимании, плохо передает это феномен. Деление клеток, например, делит их? Или преумножает на самом деле? Вообще, что такое "много"?

В реальности чаще всего важнее не "что" а "кто" - т.е., в нашем случае, не какую математическую операцию данное число выполняет, а что это за число. Типа, важно не что стишок про птичку, а что его написал Пушкин. Об этом часто забывают.

Как сегодня. Один "умный" программист попытался преобразовать негативное число -2147483648 в соответствующее позитивное. То есть ему было оставить число таким как есть, просто "потерять" негативную его характеристику. Правильно, нет ничего умнее чем использовать для этого функцию abs(). Мне было трудно объяснить ему, что эта операция невозможна, ибо числа +2147483648 "нет" (ну, в 32-битном диапазоне). "Но это противоречит законам математики", - пытался вкуривать мне он. Если есть -А, то "должно" быть и +А. Сам при этом пищял, что у него в программе что-то непонятное постоянно ломаецца. Что-то глухое-машинное, "на уровне ячеек памяти". Я ему порекомендовала все-таки проверить, что он получит в результате этой функции с данным конкретным числом, прежде чем делать релиз.

В иерархической системе чисел эта праблема была бы невозможной. Но увы, мы живем в мире, где всё "можно"...


Comments

( 2 comments — Leave a comment )
nikname wrote:
26th Aug, 2015 08:12 (UTC)
А ваши программеры уже не учат ассемблер и С и не понимают, что такое int , unsigned int и зачем нужны ?
nasha_sasha wrote:
26th Aug, 2015 09:30 (UTC)
Они токо бизнес скилз похоже теперь учат.
( 2 comments — Leave a comment )