数学やコンピュータプログラミング において、演算順序とは、与えられた数式を評価するために最初にどの算術演算を実行するかに関する一連の規則のことである。
これらの規則は、演算の順位付けによって形式化されます。演算の順位は優先順位と呼ばれ、優先順位の高い演算は優先順位の低い演算よりも先に実行されます。電卓は一般的に同じ優先順位の演算を左から右に実行しますが、[ 1 ]、一部のプログラミング言語や電卓は異なる規則を採用しています。
例えば、乗算は加算よりも高い優先順位が与えられており、これは現代の代数記法が導入されて以来ずっとそうであった。[ 2 ] [ 3 ]したがって、式1 + 2 × 3では、乗算が加算より先に行われ、式の値は1 + (2 × 3) = 7 であり、(1 + 2) × 3 = 9ではない。16世紀と 17 世紀に指数が導入されたとき、指数は加算と乗算の両方よりも高い優先順位を与えられ、底の右側に上付き文字として置かれた。[ 2 ]したがって、 3 + 5 2 = 28および3 × 5 2 = 75 となる。
これらの慣例は、表記の曖昧さを避けつつ、表記を簡潔に保つために存在します。[ 4 ]優先順位の慣例を上書きしたい場合、あるいは単に強調したい場合は、括弧()を使用できます。たとえば、(2 + 3)× 4 = 20は加算を乗算より前に強制し、(3 + 5)2 = 64は加算を指数より前に強制します。数式で複数の括弧のペアが必要な場合(入れ子になった括弧の場合など)、混乱を避けるために括弧を他の種類の角括弧に置き換えることができます。たとえば、[2 × (3 + 4)] − 5 = 9 のようにです。
これらの規則は、通常の記法(中置記法と呼ばれる)を使用する場合にのみ意味を持ちます。関数記法またはポーランド記法をすべての演算に使用する場合、演算の順序は記法自体によって決まります。
演算の順序、つまり式の中で演算が通常実行される順序は、数学、科学、技術、および多くのコンピュータプログラミング言語で採用されている慣習の結果です。それは次のように要約されます。[ 2 ] [ 5 ]
これは、式を評価するには、まず括弧内の部分式を評価し、複数の部分式がある場合は内側から外側へと評価していくことを意味します。括弧内か否かにかかわらず、上記のリストで優先順位の高い演算を最初に適用します。同じ優先順位の演算は、慣例として左から右へと評価されます。
各除算を逆数(乗法逆数)による乗算に置き換えると、乗法の結合法則と交換法則により、各項の因数を任意の順序で掛け合わせることができます。乗算と除算に同じ優先順位が与えられる場合もあれば、乗算が除算よりも優先される場合もあります。§混合除算と乗算を参照してください。各減算を反対の数(加法逆数)の加算に置き換えると、 加法の結合法則と交換法則により、項を任意の順序で加算することができます。
過激なシンボル平方根を表すは、伝統的に被開平数の上にバー (ヴィンキュラム) で拡張されます。これにより、被開平数を括弧で囲む必要がなくなります。他の関数では、曖昧さを避けるために入力を括弧で囲みます。 [ 6 ] [ 7 ] [ a ]入力が単一の数値変数または定数である場合は、括弧を省略できます。 [ 2 ] sin x = sin( x )およびsin π = sin( π )の場合など。 [ a ] 伝統的にこの慣習は単項式にも適用されます。したがって、 sin 3 x = sin(3 x )およびsin 1 / 2 xy = sin( 1 / 2 xy )ですが、 x + yは単項式ではないため、 sin x + y = sin ( x ) + yとなります。ただし、この慣習は普遍的に理解されているわけではなく、明示的な括弧を好む著者もいます。 [ b ]電卓やプログラミング言語によっては、関数の入力に括弧が必要な場合もあれば、そうでない場合もあります。
括弧やグループ化の代替記号を使用すると、通常の演算順序を上書きしたり、意図した順序を明示的にしたりできます。グループ化された記号は、単一の式として扱うことができます。[ 2 ]
足し算の前に掛け算を行う:
括弧内の部分式が最初に評価されます。
指数計算は乗算より先に、乗算は減算より先に行う。
式が上付き文字で記述されている場合、上付き文字は基数の上方にある位置によってグループ化されているとみなされます。
ルートシンボルのオペランドは、オーバーバーによって決定されます。
水平方向の分数線は、上の式を下の式で割った2つのグループ化された部分式を形成します。
括弧は入れ子にすることができ、内側から外側に向かって評価する必要があります。読みやすさのために、外側の括弧は内側の括弧よりも大きくすることができます。あるいは、中括弧{ } や角括弧[ ]などの他のグループ化記号が括弧( )と一緒に使用されることもあります。例:
単項演算「−」 (通常は「マイナス」と発音される)に関する慣習は様々である。書面または印刷された数学では、式 −3 2は−(3 2 ) = −9を意味すると解釈される。[ 2 ] [ 8 ]
Microsoft Excel (およびその他のスプレッドシート アプリケーション)など、一部のアプリケーションやプログラミング言語では、単項演算は二項演算よりも優先順位が高くなります。つまり、単項マイナスはべき乗よりも優先順位が高いため、これらの言語では、−3 2は(−3) 2 = 9と解釈されます。[ 9 ] [ 10 ]これは二項マイナス演算 '−'には適用されません。たとえば、Microsoft Excel では、数式=-2^2、=(-2)^2、 は=0+-2^24 を返しますが、数式=0-2^2および は=-(2^2)−4 を返します。
除算を表す「÷」と乗算を表す「×」の両方を含む式を解釈するための普遍的な慣習はありません。提案されている慣習には、演算に等しい優先順位を割り当てて左から右に評価する、または除算を逆数による乗算として扱い、任意の順序で評価する[ 11 ]、すべての乗算を最初に評価してから除算を左から右に評価する、またはそのような式を避けて常に明示的な括弧で曖昧さを解消する[ 12 ]などがあります。
初等教育以降では、除算の記号「÷」はほとんど使われず、代数分数に置き換えられます。[ 13 ]これらは、分子を分母の上に重ね、分数線で区切って「縦書き」で書くのが最も明確で分かりやすい方法です。しかし、分子と分母をスラッシュ記号「/」で区切って「横書き」で書くこともできます。[ 14 ]つまり、a ÷ bのような表現は避けられ、 a / b またはa / bが好まれます。
並置によって示される乗算(暗黙の乗算とも呼ばれる)は視覚的な単位を作り出し、他のほとんどの演算よりも高い優先順位が与えられることが多い。学術文献では、明示的な括弧なしでインライン分数が暗黙の乗算と組み合わされている場合、乗算は慣習的に除算よりも高い優先順位を持つと解釈されるため、たとえば1 / 2 nは(1 / 2) · nではなく1 / (2 · n )を意味すると解釈される。[ 2 ] [ 11 ] [ 15 ] [ 16 ]例えば、Physical Review誌の原稿投稿指示では、乗算が除算よりも優先されると直接述べられており、[ 17 ]これはLandauとLifshitzによるCourse of Theoretical Physics [ c ]などの物理学の教科書や、 Graham、Knuth、およびPatashnikによるConcrete Mathematicsなどの数学の教科書でも見られる慣習である。[ 18 ]しかし、一部の著者は、 a / bcのような表現を推奨せず、括弧a / ( bc )を明示的に使用することを推奨している。[ 3 ]
より複雑なケースでは、曖昧さが増します。たとえば、表記1 / 2 π ( a + b )は、 1 / [2 π · ( a + b )]または[1 / (2 π )] · ( a + b )のどちらを意味する可能性もあります 。[ 19 ]解釈は文脈によって異なる場合もあります。Physical Review の投稿ガイドラインでは、 a / b / cの形式の表現は推奨されていません。より明示的な表現( a / b ) / cまたはa / ( b / c )は曖昧さがありません。[ 17 ]

この曖昧さは、 「8 ÷ 2(2 + 2) 」のようなインターネットミームの対象となっており、これには 8 ÷ [2 · (2 + 2)] = 1 と (8 ÷ 2) · (2 + 2) = 16 という2 つの相反する解釈がある。 [ 16 ] [ 20 ]数学教育研究者の Hung-Hsi Wu 氏は、「現実生活でこのような計算に遭遇することはない」と指摘し、このような作為的な例を「不当に複雑なルールで表現することで、疑いを持たない人を罠にかけるように設計された一種の『Gotcha!』サロンゲーム」と呼んでいる。[ 13 ]
指数が上付き文字表記を使用した積み重ねられた記号で示されている場合、通常のルールは上から下へ作業することです。[ 2 ] [ 7 ]
これは通常 ( a b ) cとは等しくありません。この慣例は、( a b ) c = a bcというべき乗の性質があるため、このために逐次べき乗を使用する必要がないため便利です。
しかし、指数がキャレット(^)や矢印(↑)などの明示的な記号で表される場合、共通の標準はありません。たとえば、Microsoft Excelや計算プログラミング言語MATLAB では( a b ) cと評価されますが、Google SearchやWolfram Alphaではa ( b c )と評価されます。したがって、最初のケースでは 4,096 と評価され、2 番目のケースでは 262,144 と評価されます。a^b^c4^3^2

記憶術の頭字語は、生徒が演算の順序を覚えるのに役立つため、小学校でよく教えられます。[ 21 ] [ 22 ]括弧、指数、乗算/除算、加算/減算の頭字語PEMDAS [ 23 ]は、米国[ 24 ]とフランス[ 25 ]で一般的です。文字が「Please Excuse My Dear Aunt Sally」のような記憶術の文章の単語に展開されることもあります。[ 26 ]英国やその他の英連邦諸国では、括弧、Of、除算/乗算、加算/減算の頭字語である BODMAS (または BOMDAS) が使用されることがあり、「 of 」は分数の乗算を意味します。[ 27 ] [ 28 ]時には、 Oは指数または根を意味するOrderと展開されるか、[ 28 ] [ 29 ]または代替の記憶術BIDMASではI がIndicesに置き換えられます。[ 28 ] [ 30 ]カナダとニュージーランドではBEDMASが一般的です。[ 31 ]
これらの記憶術は、このように書くと誤解を招く可能性があります。[ 26 ]例えば、上記の規則のいずれかを「加算が先、減算が後」という意味に誤って解釈すると、式[ 26 ]の評価が間違ってしまいます。として正しい評価はこれらの値は、。
ドイツでは、この慣習は単に「点演算は線演算より先に」という意味の「 Punktrechnung vor Strichrechnung 」として教えられており、これは記号「·」 (乗算)、「∶ 」 (除算)、「+」 (加算)、「−」 (減算)の図形的な形状を指しています。これにより、上記のような誤解が生じる可能性を回避できます。
記憶術の頭字語は、演算順序の概念的理解を育むことができず、その目的や柔軟性に関する生徒の疑問に答えることができないとして批判されてきた。[ 32 ] [ 33 ]記憶術の頭字語を使って演算順序を学ぶ生徒は、日常的に間違いを犯しており、[ 34 ]教員養成課程の学生の中にも間違いを犯す者がいる。[ 35 ]生徒が頭字語を正しく覚えたとしても、雑学の暗記に過度に重点を置くことで、実質的な数学的内容が疎かになってしまう。[ 13 ]頭字語の手順上の適用は、数学的表記法に関する専門家の直感的な理解と一致しない。数学的表記法は、括弧や角括弧以外の方法でグループ化を示し、数式は、線形に「順序付けられた」構造ではなく、ツリー状の階層構造である。さらに、数式を簡略化または評価する順序は一つではなく、特定の数式に対する普遍的な標準的な簡略化方法も存在しないため、専門家は都合の良い順序で有効な変換や置換を流暢に適用します。したがって、厳格な手順を学ぶことは、学生に数学的記法の誤解を招く限定的な理解をもたらす可能性があります。[ 36 ]
電卓によって演算の順序が異なります。[ 2 ]スタックを持たない多くの単純な電卓は、チェーン入力を実装しており、異なる演算に優先順位を付けずにボタンを押した順に動作するため、より高度な電卓とは異なる結果になります。たとえば、単純な電卓では、と入力すると1 + 2 × 3 =9が出力されますが、より高度な電卓ではより標準的な優先順位を使用するため、と入力すると1 + 2 × 3 =7が出力されます。
電卓によっては、指数を左側または右側に配置する場合があります。たとえば、TI-92 および TI-30XS MultiView の「Mathprint モード」では、この式はa ( b c )と解釈されますが、 TI -30XIIおよび TI-30XS MultiView の「Classic モード」では、( a b ) cと解釈されます。a^b^c
のような式は、 TI-82 [ 3 ]や多くの最新のCasio電卓[ 37 ] ( fx-9750GIIIなど一部の機種では設定可能) では 1/(2 x )と解釈されますが、TI-83や 1996 年以降に発売された他のすべての TI 電卓[ 38 ] [ 3 ]、および代数表記を備えたすべてのHewlett-Packard電卓では (1/2) xと解釈されます。最初の解釈は暗黙の乗算の性質上、一部のユーザーには予想されるかもしれませんが[ 39 ] 、後者は乗算と除算の優先順位が等しいという規則により合致しています。[ 3 ]1/2x
ユーザーが電卓が式をどのように解釈するか確信が持てない場合は、括弧を使用して曖昧さを解消できます。[ 3 ]
演算順序は、標準的な数学表記法における中置記法の採用によって生じたものであり、そのような規則がないと表記が曖昧になる可能性がある。一方、後置記法や前置記法では演算順序は必要ない。[ 40 ] [ 41 ]したがって、スタックを使用して式を正しい優先順位で入力する逆ポーランド記法(RPN)を使用する電卓は、括弧やモデル固有の実行順序を必要としない。[ 26 ] [ 23 ]
ほとんどのプログラミング言語は、数学で一般的に使用される順序に準拠した優先順位レベルを使用しますが、[ 42 ] APLやSmalltalkなどの他の言語には演算子の優先順位ルールがありません(APLでは評価は厳密に右から左、Smalltalkでは厳密に左から右です)。
さらに、多くの演算子は結合法則を満たさないため、単一レベル内の順序は通常、左から右にグループ化して定義され、 は16/(4/4) = 16ではなく(16/4)/4 = 116/4/4と解釈されます。このような演算子は「左結合」と呼ばれます。例外も存在します。たとえば、リストのcons操作に対応する演算子を持つ言語では、通常、右から左にグループ化されます (「右結合」)。たとえば、Haskellではです。1:2:3:4:[] == 1:(2:(3:(4:[]))) == [1,2,3,4]
C言語の生みの親であるデニス・リッチーは、C言語の優先順位(C++、Perl、PHPなど、C言語からこれらの規則を借用しているプログラミング言語で共通)について、ビット演算子を比較演算子よりも上に移動した方が望ましいと述べた。[ 43 ]多くのプログラマーはこの順序に慣れているが、 Python [ 44 ]やRuby [ 45 ]のような最近の人気言語では、この順序が逆になっている。多くのCスタイルの言語に見られる演算子の相対的な優先順位レベルは次のとおりである。

(a+b)^2/2(右)。後者は、与えられた式に対して固有の階層構造(「構文木」)に対応する。コンパイラは、最も低い階層レベルから始まる操作が最初に実行されるように、この木から機械語コードを生成する。例:
!A + !Bと解釈される(!A) + (!B)++A + !Bと解釈される(++A) + (!B)A + B * Cと解釈されるA + (B * C)A || B && Cと解釈されるA || (B && C)A && B == Cと解釈されるA && (B == C)A & B == Cと解釈されるA & (B == C)(PythonとRubyではA & B == C、はとして解釈されます(A & B) == C。)
複数の言語にコンパイルするソース間コンパイラは、言語間で演算順序が異なるという問題を明示的に処理する必要があります。例えば、 Haxeは演算順序を標準化し、適切な箇所に括弧を挿入することでそれを強制します。
ソフトウェア開発者の二項演算子の優先順位に関する知識の正確さは、ソースコード内での出現頻度と密接に関係していることがわかっています。[ 47 ]
演算の順序は数世紀にわたって徐々に確立されてきた。乗算が加算よりも優先されるという規則は、分配法則が自然な階層構造として示唆するものであることから、1600 年代の代数記法の発展に組み込まれた。数学史家のフロリアン・カジョリは、1920 年代になっても、乗算が除算よりも優先されるべきか、あるいは両者を同等に扱うべきかについて意見の相違があったことを指摘している。「演算の順序」という用語と「PEMDAS/BEDMAS」という記憶術は、標準化された教科書の需要が高まった 19 世紀後半または 20 世紀初頭になって初めて形式化された。a /2 b のような式において、暗黙の乗算が明示的な乗算や除算よりも優先されるかどうかといった問題に関する曖昧さは、 a / ( 2 b ) または ( a /2) × bと解釈できることから、慣習がまだ完全に安定していないことを示唆している。[ 48 ] [ 49 ]
sin) と条件付きでこの表記の簡略化を適用しますが、一般的な関数名 ( など) には使用しませんf。Regel 7: Ist F ( A ) Teilzeichenreihe eines arithmetischen Ausdrucks oder einer seiner Abkürzungen und F eine Funktionenkonstante und A eine Zahlenvariable oder Zahlenkonstante, so darf F A dafür geschrieben werden. [Darüber hinau ist noch die Abkürzung F n ( A ) für ( F ( A )) n üblich 。 Dabei kann F sowohl Funktionenkonstante als auch Funktionenvariable sein.]
代数の言語は
[ ...] 長いまたは複雑な記述を省略して簡略化するための略記法として使用できます。
a
/
bc
の形式の式は、a
/
(
bc
)
と同じ意味です
。さらに、
log
x
/log
y
=
(log
x
)/(log
y
)
および
2
n
! = 2(
n
!)
です。
頭文字をとった演算順序の略語または記憶術です。この略語はアメリカ合衆国で広く使用されています。一方、イギリスやカナダなどの国では、BODMAS(括弧、順序、除算、乗算、加算、減算)やBIDMAS(括弧、指数、除算、乗算、加算、減算)といった略語が使われている。
{{cite journal}}: CS1メンテナンス: DOIは2025年7月現在非アクティブです(リンク)[...] 学生は、乗算と除算、または加算と減算が隣り合っている式で計算ミスを頻繁に犯します。 [...]
AOS
で認識され
、平方根、対数、三角関数の後に、鉛筆と紙で作業する場合と同様に引数を付けることができます。
(注:TI-88は試作品としてのみ存在し、一般には発売されませんでした。)