Одно и то же выражение на разных калькуляторах может дать разные результаты. Почти всегда причина в том, как каждый из них определяет приоритет операций. В этом руководстве приведена полная таблица приоритетов SciKey и подробно разобраны три выражения, вокруг которых регулярно спорят: -2^2, 2^3^2 и 6÷2(1+2).
1. Приоритет в SciKey (от высшего к низшему)
| Уровень | Операция | Ассоциативность | Пример |
|---|---|---|---|
| 1 | Скобки, вызовы функций | (1+2), sin(30) | |
| 2 | Постфиксные ! % ° | Слева направо | 5! = 120, 50% = 0,5 |
| 3 | Степень ^ | Справа налево | 2^3^2 = 512 |
| 4 | Унарные - + | -2^2 = −4 | |
| 5 | ×, ÷, mod, неявное умножение | Слева направо | 6÷2(1+2) = 9 |
| 6 | +, − | Слева направо | 10−4−3 = 3 |
Операторы одного уровня подчиняются своей ассоциативности: 8÷2÷2 — это (8÷2)÷2 = 2, а 10−4−3 — это (10−4)−3 = 3.
2. Почему -2^2 равно −4
В математике −2² читается как −(2²) = −4: сначала степень, затем минус применяется к результату. По тому же правилу −x² = −4 при x = 2. В SciKey унарный минус имеет более низкий приоритет, чем степень, поэтому -2^2 возвращает −4. Для (−2)² используйте скобки: (-2)^2 = 4.
Знак в показателе допускается: 2^-3 — это 2⁻³ = 0,125.
В Excel иначе
В Microsoft Excel =-2^2 возвращает 4. В документации Microsoft «Операторы вычислений и порядок операций в Excel» отрицание (минус в −1) стоит в таблице приоритетов выше процента (%) и возведения в степень (^), поэтому Excel вычисляет (−2)². Если электронная таблица и калькулятор расходятся, подозревайте именно это. В Excel =-(2^2) даёт −4.
Языки программирования тоже различаются. Python вычисляет -2**2 как −4 (в согласии с математической конвенцией), а JavaScript считает -2**2 неоднозначным и без скобок отклоняет как синтаксическую ошибку.
3. Степени справа налево: 2^3^2 = 512
В математике «башня» 2^3^2 означает 2^(3²) = 2⁹ = 512, потому что показатель показателя вычисляется первым. SciKey считает ^ правоассоциативным, поэтому 2^3^2 = 512. Для (2³)² = 64 пишите (2^3)^2.
Согласно документации Excel, операторы одинакового приоритета вычисляются слева направо, и возведение в степень не исключение, поэтому там =2^3^2 даёт 64. И снова скобки делают намерение однозначным везде.
4. Спор о 6÷2(1+2)
Этот пример постоянно гуляет по интернету, и одни упорно отвечают 9, а другие — 1.
- Прочтение «9»: неявное умножение — это просто умножение. 6÷2×3 = (6÷2)×3 = 9.
- Прочтение «1»: 2(1+2) — единое целое, как 2a, поэтому вычисляется первым. 6÷(2×3) = 1.
Честный вывод не в том, что одна из сторон «ошибается», а в том, что запись неоднозначна. В профессиональных текстах её избегают и используют дробную черту или скобки.
Выбор SciKey
SciKey даёт неявному умножению тот же приоритет, что и обычному умножению и делению, и вычисляет слева направо. Поэтому:
6÷2(1+2)= 91/2π= (1/2)×π = 1,57079632679 (также показывается как π/2)- Для 1/(2π) введите
1/(2π)= 0,159154943092
Мы выбрали это правило, потому что единое правило легче предсказать: умножение и деление выполняются в порядке записи, независимо от того, написан знак или нет.
Другие калькуляторы
Некоторые производители и модели выполняют умножение с опущенным знаком раньше обычных × и ÷, поэтому то же выражение может дать 1. Поведение зависит от модели, поэтому сверьтесь с руководством своего экзаменационного калькулятора. Надёжнее всего вообще не вводить неоднозначных выражений.
5. Постфиксные операторы и %
!, % и ° действуют только на значение непосредственно перед ними.
3!2= 3! × 2 = 12 (неявное умножение)2×3!= 12, тогда как(2×3)!= 720200×15%= 200 × 0,15 = 30100+10%= 100 + 0,1 = 100,1
Обратите внимание на последний пример. Некоторые настольные калькуляторы понимают 100 + 10 % как «прибавить к 100 десять процентов» (= 110), но % в SciKey просто делит на 100. Для наценки 10 % введите 100×(1+10%) = 110.
6. Приоритет и знак mod
mod находится на уровне умножения: 2+7 mod 3 — это 2 + (7 mod 3) = 3. Знак результата совпадает со знаком делителя: -7 mod 3 = 2 и 7 mod -3 = −2. В -7 mod 3 унарный минус сначала связывается с 7, поскольку унарные знаки стоят выше уровня умножения.
7. Функции, константы и степени
Вызовы функций имеют наивысший приоритет, поэтому sin(30)^2 — это (sin 30°)² = 0,25, то же, что sin²30° в учебнике (DEG). Для синуса от 30² поместите степень внутрь: sin(30^2). Поскольку SciKey требует скобок у функций, неоднозначный ввод вроде sin 30^2 никогда не принимается.
Степень после константы связывает сильнее, чем неявное умножение. 2π^2 — это 2×(π²) = 19,7392088022, а не (2π)² = 39,4784176044. Именно поэтому площадь сферы 4πr², введённая как 4πx^2, считается как задумано.
8. Убирайте неоднозначность скобками
Надёжнее, чем запоминать правила, — не жалеть скобок.
| Намерение | Неоднозначный ввод | Однозначный ввод |
|---|---|---|
| a/(bc) | a/bc | a/(b×c) |
| (−x)² | -x^2 | (-x)^2 |
| e^(−t/RC) | e^-t/RC | e^(-t/(R×C)) |
| (a+b)/2 | a+b/2 | (a+b)/2 |
Буквы a, b, t, R и C в таблице — условные обозначения; в SciKey подставляйте числа или переменные x, y, z (учтите, что R уже занято газовой постоянной). e^-t/RC в третьей строке вычисляется как (e^−t)/RC. Если показатель — выражение, заключайте его в скобки. Лишние скобки никогда не портят ответ, а недостающие — часто.
9. Итоги
- Степень раньше унарного минуса:
-2^2= −4 (Excel даёт 4) - Степени справа налево:
2^3^2= 512 - ×, ÷ и неявное умножение на одном уровне, слева направо:
6÷2(1+2)= 9 %делит на 100:100+10%= 100,1- Сомневаетесь — ставьте скобки