Độ ưu tiên của toán tử

Trong toán học và lập trình máy tính, thứ tự của toán tử ("order of operations") hay độ ưu tiên của toán tử ("operator precedence") là một tập hợp các quy tắc phản ánh quy ước về các thủ tục để thực hiện trước tiên khi đánh giá một biểu thức toán học nhất định.

Ví dụ, trong toán học và hầu hết các ngôn ngữ máy tính, phép nhân được cấp độ ưu tiên cao hơn so với phép cộng, và nó đã như vậy từ khi giới thiệu các kí hiệu đại số hiện đại. Như vậy, biểu thức được biểu diễn thành , thay vì . Những quy ước này tồn tại để loại bỏ sự mơ hồ khi rút gọn kí hiệu để viết ngắn nhất có thể.

Với sự ra đời của số mũ trong thế kỷ 16 và 17, chúng được ưu tiên hơn cả phép cộng và phép nhân và chỉ có thể được đặt dưới dạng chữ nhỏ bên phải vị trí của chúng. Do đó 3 + 5 = 28 và 3 / 5 = 0.75.

Những quy ước này tồn tại để loại bỏ sự mơ hồ trong khi cho phép ký hiệu càng ngắn gọn càng tốt. Trong trường hợp muốn bỏ qua các quy ước ưu tiên hoặc thậm chí chỉ đơn giản là để nhấn mạnh chúng, dấu ngoặc đơn () có thể chỉ ra một trật tự thay thế hoặc củng cố thứ tự mặc định để tránh nhầm lẫn. Ví dụ: (2 + 3) × 4 = 20 với phép cộng được thực hiện trước phép nhân, và (3 + 5) = 64, tại đó phép cộng được thực hiện trước phép lũy thừa. Đôi khi, để rõ ràng, đặc biệt là với dấu ngoặc đơn lồng nhau, dấu ngoặc đơn được thay thế bằng dấu ngoặc vuông, như trong biểu thức [2 × (3 + 4)] - 5 = 9.Nói chung là ngoặc trước sau đó đến mũ sau đó đến nhân chia rồi mới đến cộng trừ.

== Định nghĩa ==
Thứ tự của các toán tử, được sử dụng trong suốt toán học, khoa học, công nghệ và nhiều ngôn ngữ lập trình máy tính, được thể hiện ở đây:

1. lũy thừa và khai căn
2. nhân và chia
3. cộng và trừ

Điều này có nghĩa là, trong một biểu thức toán học, một biểu thức con xuất hiện giữa hai toán tử, toán tử cao hơn trong danh sách trên nên được tính toán trước tiên.

Các luật giao hoán và kết hợp của phép cộng và phép nhân cho phép thêm các thuật ngữ theo bất kỳ thứ tự nào và nhân các yếu tố trong bất kỳ thứ tự nào nhưng các toán tử hỗn hợp phải tuân theo thứ tự toán tử tiêu chuẩn.

Trong một số bối cảnh, sẽ rất hữu ích khi thay thế một phép chia bằng phép nhân bằng phép nghịch đảo (phép nhân nghịch đảo) và phép trừ bằng phép cộng ngược lại (phép cộng nghịch đảo). Ví dụ, trong đại số máy tính, điều này cho phép thao tác ít toán tử hai ngôi hơn và giúp sử dụng giao hoán và kết hợp dễ dàng hơn khi đơn giản hóa các biểu thức lớn. Như vậy nói cách khác, 3 chia 4 tương đương với tích của 3 và Ngoài ra ; nói cách khác, hiệu số của 3 và 4 bằng tổng của 3 và −4. Như vậy, có thể được coi như là tổng của và ba phép cộng có thể được thêm vào trong bất kỳ thứ tự nào, trong mọi trường hợp đều đưa ra kết quả là 5.

Biểu tượng khai căn √ theo truyền thống được kéo dài bởi một thanh (được gọi là vinculum) trên biểu thức cần khai căn (điều này tránh sự cần thiết của dấu ngoặc quanh biểu thức cần khai căn). Các hàm số khác sử dụng dấu ngoặc đơn xung quanh đầu vào để tránh sự mơ hồ. Các dấu ngoặc đôi khi được bỏ qua nếu đầu vào là một đơn thức. Do đó, , nhưng , vì không phải là đơn thức. Một số máy tính và ngôn ngữ lập trình yêu cầu dấu ngoặc đơn xung quanh đầu vào của hàm số, một số khác thì không.

Biểu tượng của nhóm có thể được sử dụng để bỏ qua thứ tự toán tử thông thường. Các biểu tượng được nhóm có thể được coi là một biểu thức duy nhất. Các biểu tượng của nhóm có thể được loại bỏ bằng cách sử dụng các luật kết hợp và phân phối, chúng cũng có thể được loại bỏ nếu biểu thức bên trong biểu tượng của nhóm được đơn giản hóa đủ để không có kết quả mơ hồ từ việc loại bỏ chúng.

=== Ví dụ ===
Một dòng gạch ngang cũng hoạt động như một biểu tượng của nhóm:

Để dễ đọc, các ký hiệu nhóm khác, chẳng hạn như dấu ngoặc nhọn {} hoặc dấu ngoặc vuông [], thường được sử dụng cùng với dấu ngoặc đơn (). Ví dụ:

=== Dấu trừ đơn phương ===
Có các quy ước khác nhau liên quan đến toán tử đơn nguyên - (thường đọc "trừ"). Trong biểu thức toán học viết hoặc in, biểu thức −3 được hiểu là ,

Một số ứng dụng và ngôn ngữ lập trình, đặc biệt là Microsoft Excel (và các ứng dụng bảng tính khác) và ngôn ngữ lập trình bc, các toán tử đơn nguyên có mức độ ưu tiên cao hơn các toán tử nhị phân, nghĩa là phép trừ unary có độ ưu tiên cao hơn lũy thừa, vì vậy trong các ngôn ngữ đó -3 sẽ được hiểu là . Điều này không áp dụng cho toán tử trừ nhị phân -; ví dụ: trong Microsoft Excel trong khi các công thức codice_1, codice_2 và codice_3 trả về kết quả 4, công thức codice_4 và codice_5 trả về kết quả - 4.

=== Hỗn hợp phép chia và phép nhân ===
Tương tự, có thể có sự mơ hồ trong việc sử dụng biểu tượng dấu gạch chéo / trong các biểu thức, chẳng hạn như 1/2"x". Nếu một người viết lại biểu thức này là và sau đó diễn giải biểu tượng chia là biểu thị phép nhân với đối ứng, điều này trở thành:

Với cách giải thích này, bằng . Tuy nhiên, trong một số tài liệu học thuật, phép nhân được biểu thị bằng juxtap vị trí (còn được gọi là phép nhân hàm ý) được hiểu là có độ ưu tiên cao hơn phép chia, do đó bằng , chứ không phải .

Ví dụ, hướng dẫn nộp bản thảo cho các tạp chí "Đánh giá Vật lý" nói rằng phép nhân có độ ưu tiên cao hơn phép chia với dấu gạch chéo, và đây cũng là quy ước được quan sát trong sách giáo khoa vật lý nổi bật như "Khóa học Vật lý lý thuyết" của Landau và Lifshitz và "Bài giảng của Feynman về Vật lý".