При всей неочевидности частного (-2), данная формулировка даёт одинаковые частные и остатки для любого сочетания: хоть -7/5, хоть 7/-5. Володя, то что формула а = bq + r выдает однозначные результаты независимо от знака - это очень хорошо. Вот только как теперь быть с частным? Интуитивно, где-то на уровне подсознания понимаю, что если строго придерживаться этой формулы, то она не подведёт (допустим в ходе многочисленных вычислений с постоянной оглядкой на формулу) А вот как быть с представлением результата человеческому глазу? Похоже, кроме того экзаменатора никто и не поймет его
volodya Вот ещё вопрос такой: в том источнике, откуда почерпнуто всё это, написано так: А нет ли ещё других определений, какие ещё могут быть частные? Ну например "полное", или "частное для случая целочисленного деления" или что-либо ещё?
данная формулировка даёт одинаковые частные и остатки для любого сочетания: хоть -7/5, хоть 7/-5. Это ты о делении? Да. floor(7/(-5)) == floor(-7/5) == -2 Неполное частное может быть каким угодно числом (целым, понятное дело, т.к. мы говорим о целочисленной арифметике). Число может быть как отрицательным, так и положительным. И нулем, кстати, тоже может быть. Похоже, кроме того экзаменатора никто и не поймет его Этого экзаменатора поймет любой, кто дал себе труд ознакомиться с минимальными азами. А любой математик тебе в лоб даст за отрицательный остаток от деления И программой твоей пользоваться никто не будет
> Вот интересно, в мануалах используются ессно буржуйские термины - в описании целочисленных инструкций (DIV, IDIV) - remainder, в описании инструкций FPU partial remainder. При этом partial remainder вычисленный FPREM соответствует результату IDIV, а partial remainder вычисленный FPREM1 - вообще хз чему: fprem (3,2) = 1 fprem1 (3,2) = -1 ВОт что нашел в словаре: remainder - остаток partial remainder - частичный остаток Дык вот, теперь совсем непонятно где что =) Ни одна из инструкций не вычисляет , хотя все вычисляют remainder'ы, причём разные. cresta Тебе зачем это нада ?? Поскольку я экзамены никаким профессорам математики сдавать не собираюсь, для моих задач хватило вот этого:
Кроме теориии чисел (высшей арифметики) и стандартов IEEE есть еще элементарная арифметика начальных классов и понятие смешанных дробей. Элементарные понятия зародились в древние времена и полностью соответствуют человеческой логике и практическим задачам, в частности делению отрезков и т.п. Придется повторить пример 7/(-5) = (-7)/5 = -1-2/5 = "минус одна целая и две пятых". Здесь -1 целая часть или "по научному" неполное частное. Дробная часть равна -2/5, и в том, что остаток равен 2 (по модулю) ни у какого школьника сомнений не вызывает. Вот вопрос со знаком остатка хитрее, т.к. здесь можно поумничать и записать -2/5 либо как (-2)/5 либо как 2/(-5). Здесь на помощь приходят выражения 7=(-5)*(-1)+2 => остаток +2 -7=5*(-1)-2 => остаток -2 Для школьников все логично. А экзаменаторы глядят печально и наровят плюнуть в лицо - уж слишком все просто для мехмата. Ладно математики "хитрят" с отрицательными числами, а уж со стандартами IEEE дело обстоит еще интереснее, т.к. при округлении результата к ближайшему целому у нас и деление положительных чисел будет давать интересные "остатки". Попробуйте с таким подходом решить элементарную задачку о раскрое X метров ткани для пошива Y костюмов - останетесь в дураках. Для "нормального" человека остаток - это реальный кусок ткани, которого недостаточно для пошива еще одного костюма. PS: с теорией чисел я спорить не собираюсь, а просто хочу сказать, что инструкция IDIV работает "правильно" с точки зрения элементарной арифметики (смешаных дробей). Как говориться: "не нравится - не ешь".
Ну раз уж есть три разных подхода к делению, думаю, ничего страшного не произойдёт, если я для себя придумаю четвёртый. Наиболее для меня подходящий и логичный.
leo > ...Великий и Могучий! Как моджет ОСТАТЬСЯ отрицательное (количество чего-либо) ?! "У Пети было Минус Три яблока, он отдал половину Маше, и осталось... =) ЗЫ деление можно "разложить" на вычитания
Для школьников все логично. И это говорит человек, активно использующий мат. статистику... Эххх.. Делайте, что хотите. Хоть отрицательный у вас остаток, хоть положительный - мне до фени. Только потом не удивляйтесь, если нормальные люди (а не всякие там школьники или горе-от-ума-программисты) использовать ваш гениальный и сверх-наглядно-логичный продукт творчества не будут.
Друзья мои, не стоит кипятиться. Мне думается мы просто имеем дело с двумя разными определениями. Одно понятие остатка известно каждому из начальной школы. Как нас учили делить целые числа столбиком ? Для начала отбрасываем знаки, чтобы не мешались. Затем делим, пока остаток не окажется меньше делителя. Затем по известным правилам определяем знак частного. При таком "нормально-обывательском" подходе у нас всегда произведение частного q на делитель b оказывается по модулю меньше делимого a. Печальные вздохи экзаменатора, приведенные volodya, лишний раз это подтверждают - любой обыватель скажет, что "минус пять делить на три будет минус один и два в остатке". Другое дело, что задумываться о знаке остатка нас так и не научили. Но зато настойчиво учили делать проверки. В данном случае имеем a = b*q+r и |b*q| < |a|, откуда очевидно следует, что знак остатка r при делении столбиком должен быть равен знаку делимого a. О смешаных дробях я уже говорил - поскольку остаток имеет тот же знак, то вместо записи -5/3 = -1-2/3 можно использовать сокращенную запись в виде смешаной дроби и использовать выражение "минус один и две трети", где "и" подразумевает "минус". Теория чисел - дело другое. Начнем с того, что это довольно специфическая область математики. Возьмите любой популярный справочник по "вышке" (Корн-ы, Бронштейн\Семендяев, Выгодский и т.п.) - там можно найти все, что угодно кроме теории чисел. Во-вторых, известно что любая математическая теория строится на аксиомах и определениях и вытекающих из них теоремах. При этом, что взять за аксиомы, а что за вытекающие из них теоремы во многом дело вкуса. (По крайней мере мне известно не менее трех разных курсов элементарной школьной геометрии - сейчас кто-нибудь помнит пресловутую "конгруэнтность" ак.Колмогорова середины 70-х ?). Кроме вкуса немалую роль играет стройность и широта охвата создаваемой теории. Определение остатка от деления как неотрицательной величины позволяет единообразно выполнять сравнения по модулю как положительных так и отрицательных чисел. В этом случае у нас всегда b*q < a и остаток r >= 0. То что при таком "делении" получаются "странные" для обывателя результаты, теорию не волнуют, т.к. она не для обывателей. В хороших учебниках это по крайней мере оговаривают, чтобы студенты не удивлялись что -5/3 = -2 и 1 в остатке, а не -1 и -2/3 как его учили в школе. Закрыв глаза на такие странности, получаем хорошую стройную теорию с замечательными практическими приложениями. НО из этого не следует, что теоретико числовое определение остатка "лучше" или "правильнее", чем "обывательское". Просто - это разные вещи и не стоит их путать. И потом не будем забывать с чего начался "сыр-бор". С того, что инструкция IDIV "округляет" частное в сторону 0 и возвращает знаковый остаток, т.е. она работает именно так, как "учили в школе". Поэтому если нам "ученым" требуется теоретико числовой остаток, то нужна дополнительная коррекция: если EDX меньше 0, то прибавить к нему значение делителя. PS: Риторический вопрос к профессорам с мехмата: чему равен корень квадратный из -1 и почему FSQRT выдает ответ "на школьном уровне" ?