Порядок операций и мем 6:2(1+2)
Мем врёт: порядок операций не был определён в 1912, просто кодифицирован в одном из западных учебников.
Сначала попробую рассказать, откуда взялся порядок операций. Вот видео, перескажу его вкратце.
Итак, пересказ видео
Порядок операций по умолчанию — не математическая истина, а договорённость.
Чтобы явно указать этот порядок, используют скобки. Экстремальный вариант — взять в скобки каждую операцию (т.н. полная скобочная запись), но тогда даже очень простое выражение быстро становится нечитаемым.
((2·(x²)) + (3·x)) − 5
Потому хотелось бы уменьшить количество скобок, отсюда порядок операций «если иное не указано».
Но давайте сначала сделаем две ремарки.
В математике плюс и умножение переместительны и сочетательны (коммутативны и ассоциативны, как говорят в вузе) — a+b=b+a, a+(b+c)=(a+b)+c. На компьютере формально нет сочетательности, но глюки значимы очень редко. То есть не важно, в каком порядке суммировать/множить.
Вычитание — это нечто близкое к сложению: a−b = a+(−b). А деление — нечто близкое к умножению: a/b = a·(b⁻¹). Потому то и другое будет иметь одинаковый приоритет.
Из этих ремарок автоматически отпадает одна скобка: (2·(x²)) + (3·x) − 5.
А почему остальные скобки выпали до 2·x² + 3·x − 5 — есть очень много аргументов.
Аргумент точности и гипероператоров
Степень обычно приводит к большим цифрам. Умножение — к меньшим. Сложение — к совсем маленьким. Если нужно очень приближённо вычислить что-то, сначала получают самые большие члены (например, степенны́е), а потом всё ближе и ближе подходят к ответу, умножая и прибавляя, пока точности не будет хватать. И математики это обобщили в гипероператоры.
Гипероператор нулевого порядка — это следующее число x′ = x+1.
Гипероператор первого порядка — это сложение a+b = a″…″ (много штрихов) = a+1+…+1.
Гипероператор второго порядка — это умножение a·b = a+a+…+a.
Гипероператор третьего порядка — это степень aᵇ = a·a·…·a.
А гипероператор четвёртого порядка называется тетрация и приводит к вообще астрономическим числам.
Аргумент анализа размерностей
Считать по формулам обычно нужно потому, что эти числа имеют какое-то отношение к реальности — то есть тащат за собой единицы измерения. И запрещается складывать самолёты с часами, можно только самолёты с самолётами и часы с часами. А множить самолёты на часы не возбраняется, и получаются самолёто-часы — часы авиационной работы.
Анализ размерностей заключается вот в чём: смотрим, в каких единицах каждый член, и всё это должно совпадать. Вот несложная формула из физики: s = vt + at²/2. Считаем: s — метры. vt — (м/с)·с — тоже метры. И так далее.
Мне, Mercury13, приходилось делать несложную мобильную гонку. Да, она несложная, но движок работал на единицах СИ, и подобным анализом я исправлял очень много ошибок.
Аргумент алгебры
Сложение и умножение обладают также распределительностью (дистрибутивностью) — a·(b+c) = a·b + a·c. Порядок «сначала умножение, потом сложение» позволяет легче видеть в выражениях подобные шаблоны.
Аргумент многочленов
Многочлены вроде ax²+bx+c играют большую роль во многих отраслях математики, и хотелось бы их держать без скобок.
…В общем, на Западе всё это объясняют аббревиатурой PEMDAS.
Parentheses — скобки
Exponent — возведение в степень
Multiplication/Division — умножение/деление
Addition/Subtraction — сложение/вычитание
Но откуда тогда взялся мем, если порядок типа-определённый?
А взялся он из одного разночтения и трёх дополнительных факторов. Напоминаю, порядок операций — не математическая истина, а договорённость, призванная уменьшить количество скобок.
Первое и главное. Имеет ли неявное умножение ab (то есть умножение без явно прописанного знака «умножить») приоритет перед делением?
В профессиональной математике — и даже в старших классах — крайне редко делят двоеточием a:b. Чаще используется дробная черта, явно показывающая, что на что делить. В некоторых договорённостях эти знаки неравноценны, но забьём.
На компьютерах математикам приходится вытягивать свои выражения в строчку. Не столько для программирования (там поставят столько скобок, сколько комп требует), сколько для передачи другим математикам через системы общего назначения вроде форумов или электронной почты.
Как видите, есть разночтения, и комп их усилил. Отбивка пробелами также призвана их закрыть: операции, отбитые пробелами, считаются менее приоритетными, чем записанные слитно.
О калькуляторах и зарубежных учебниках будет рассказ в этом видео. В общем, есть калькуляторы, у которых неявное умножение имеет более высокий приоритет, есть те, у которых наравне с остальным. На одни калькуляторы ругались учителя, на другие — профессионалы.
А я попробую рассказать про наши родные источники. В любом случае в наших учебниках разночтений типа a/b(c+d) не будет: вылезут из кожи, но сверстают настоящую дробь. В профессиональной литературе такие места единичны, и пролистав доступные книги, получаю такое.
Бейко ИВ и др. Методы и алгоритмы решения задач оптимизации. К: 1983. Набор металлический. С.149 первая формула (что-то там)/(γ+1)||g(yᵏ)|| — неявное умножение раньше дробной черты, с учётом ремарок VI на с.147 и (ii) на с.148. Также нашёл на с.324.
Каханер Д и др. Численные методы и программное обеспечение. М: 1998. Набор неизвестной издательской системой (Word?). Вытянутых в строчку формул очень мало, но с. 201 третья строка — 1/√π ∫ в интеграле ошибок явно говорит, что дробная черта раньше неявного умножения. В другом месте на с.328 написали (что-то там)/(2L).
А теперь различные докомпьютерные источники по этому правилу.
Репьёв ВВ. Методика преподавания алгебры в восьмилетней школе. М: 1967. — с.81.
Шустеф ФМ. Методика преподавания алгебры. Минск: 1967. — с.43.
Уже видно, что с этим разногласие даже у методистов.
А теперь разрешите процитировать одного комментатора из-за бугра: «В этом примере смешаны запись из начальной школы и институтская, причём бессмысленно. Те, кто помнит арифметику, ответят 9. Те, кто больше помнят алгебру, вероятнее, ответят 1».
Кто в курсе, почему я добавил эту картинку?