[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 30720 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1705124977743.jpg -(96772 B, 337x700) Thumbnail displayed, click image for full size.
96772 No.219411  

Почему на ноль делить нельзя?

>> No.219412  

Можно, но толку мало: https://youtu.be/t1MTdE3mjiw

>> No.219450  

Покапитанствую.
Деление a на b это «сколько числа b содержится в числе a»
Если b это 0, то сколько b не увеличивай, хоть до бесконечности, это будет все равно 0. Поэтому никакое число не может в себе содержать определенное количество нулей.

>> No.219451  

>>219411
Потому что так определено аксиоматикой рассматриваемой тобой алгебры. Любое другое объяснение сводится к попытке обосновать аксиому, что является ошибкой.

>> No.219453  

>>219451
Ты путаешь доказательство с обоснованием. Доказывать аксиому это ошибка, но обосновать необходимость аксиомы - вовсе нет.

>> No.219454  
> Поэтому никакое число не может в себе содержать определенное количество нулей.

Кто-то может сказать «ну тогда получается что число содержит ноль нолей». Что в общем-то верно, но с таким же успехом можно сказать, что число содержит бесконечное количество нолей. По отдельности эти высказывания верны, но противоречат друг другу.

>> No.219456  

>>219411

Всегда можно было
https://en.wikipedia.org/wiki/Wheel_theory

Оно не запрещено у тебя, оно просто не определено. Как undefined behavior в сишке, тебе его придумали, чтобы сделать легче работы и ты или компилятор не думали про матешу или код, которые вы не можете посчитать или оптимизировать.

>> No.219457  

>>219456
О, тоже думал про undefined. Математика это как кастрированный недоязык программирования. Хоть в нем и есть понятие undefined, но символа для этого нет. Обозначают как 0/0, пиздец же.
https://en.m.wikipedia.org/wiki/Undefined_(mathematics)
Зато всякие Σ для обозначения суммы и прочее говно.

>> No.219459  

>>219453
Поскольку аксиома уже существует, нету надобности обосновывать её необходимость.

>> No.219460  

>>219459
Ты хуй. Это аксиома. Я сказал. Согласно твоей теории, ты не можешь опровергнуть эту аксиому, поскольку она уже существует.

>> No.219461  

>>219460
В рамках твоей системы это аксиома и её опровергнуть нельзя. Если я буду утверждать, что я не хуй, то это уже будет другая, моя система.
Ты плохо понимаешь смысл аксиом.

>> No.219469  

>>219461
Эта дискуссия происходит в метапространстве, в котором объектом дискуссии является сама алгебра

>> No.219472  

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

>> No.219475  

Почему нельзя считать остаток от деления INT_MIN на -1?

>> No.219476  

>>219475
Можно. Однако это определено, как определено. Внезапно, но алгебры отличаются не только от алгебр, но и от информационных систем.

>> No.219477  
File: 1705453148271.png -(70850 B, 630x575) Thumbnail displayed, click image for full size.
70850

>>219476
Можно-шможно. Почему тогда “Floating point exception (core dumped)” прилетает при попытке узнать остаток от деления -2147483648 на -1?

https://www.onlinegdb.com/oPWQ2ulBZ

>> No.219481  

>>219477
Потому что ты пытаешься проверить математическое свойство при помощи языка программирования, зачем - непонятно. Можешь ещё попробовать русское слово по правилам китайского языка проверить, результат будет тот же.

>> No.219482  

>>219481
Какое математическое свойство я пытаюсь проверить? Что ты несёшь? Я просто задал вопрос, ортогональный ОП-посту. Математически n % -1 = 0 для любого n, очевидно. Вопрос в том, почему в Си так нельзя делать.

>> No.219483  
>Почему на ноль делить нельзя?

Потому-что в принятой в большинстве систем модели математики по умолчанию данное действие не допускается. Технически обоснованно наборов прочих моментов как мы хотим чтоб калькулятор считал и сколько это будет стоить в железе.
Образно по этому-же операции на математическом процессоре имеют дельту погрешности.
А так можно, там где можно даёт лимит к бесконечности (максимальное значение переменной + флаг переполнения регистра как самый востребованный вариант реализации)

>Можно, но толку мало

Бывает что нужно. Например вполне реальная и частая ситуация в компьютерной графике.

>Зато всякие Σ для обозначения суммы и прочее говно.

По умолчанию в том-же СИ++ не можно (ибо ASCII совместимость), но руками для компилятора умеющего варить исходники в unicode определить можно, будет работать.
>>219477
Удивляет вообще Floating point exception
Явно говно компилятор. Он не должен два INT-а делить на математическом сопроцессоре по базовым определениям трансляции СИ.
Ну а далее, если результат деления не влазит в переменную - вот тебе исключение.
Применительно к INT_MIN % -1 переполнение регистра - вполне ожидаемый результат.

>Математически n % -1 = 0

Электрически это
$ = n / 1
!$
n = n - $
Если у тебя число линий АЛУ тут уже не позволяет посчитать $, то взводится OE и дальше процесс не идёт (т.к. у нас нет $)
Ты можешь сказать что INT_MIN ведь же влазит в AX! , да, но это 7F...FFFF и результат деления на 1 даёт то-же, то есть предельное значение регистра в знаковом состоянии, что побуждает схемотехнику АЛУ взводить OE как признак, что оно там могло быть больше, но обрезалось.

>> No.219484  

>>219477
Подозреваю что ловит переполнение.

>> No.219485  

>>219477
>>219483
Иии, или уточню с другого боку:
Аппаратно оно конечно всё-же иначе, там в делителе в приёмной триггерной защёлке остаётся более неуменьшаемый остаток, который собственно и тоже может быть скоммутирован на возврат в регистры. ... делитель это в целом вычитатель со счётчиком, вычитаем b из a и считаем сколько раз у нас это успешно получилось.
Ну и суть ответа не меняется, у нас так в счётчике успешных раз вычитаний слишком дохрена получается, в чём железо видит переполнение и взводит линии ошибки. А то что ты остаток хотел - это уже твои проблемы и ограничения языков высокого уровня в плане отсутствия нормальных средств обработки аппаратных исключений выполнения, но для СИ не знаю точно, не пробовал, вроде можно нарисовать приоритетный перед ОС обработчик исключения (как-то именно так ни разу не пробовал) и всё-же получить результат.

>> No.219487  

>>219477
let j= -2147483648 % -1;
| ^^^^^^^^^^^^^^^^ attempt to compute `i32::MIN % -1_i32`, which would overflow
|
= note: `#[deny(unconditional_panic)]` on by default



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]