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

Bách khoa toàn thư mở Wikipedia
Bước tới điều hướng Bước tới tìm kiếm

Trong toán họclậ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.[1][2] Như vậy, biểu thức 2 + 3 × 4 được diễn dịch thành 2 + (3 × 4) = 14, thay vì (2 + 3) × 4 = 20. 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.[1] Do đó 3 + 52 = 28 và 3 / 52 = 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)2 = 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[sửa | sửa mã nguồn]

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]

  1. lũy thừakhai căn
  2. nhânchia
  3. cộngtrừ

Đ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ánkế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ánkế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 3 ÷ 4 = 3 × 1/4 nói cách khác, 3 chia 4 tương đương với tích của 3 và 1/4 Ngoài ra 3 − 4 = 3 + (−4); 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, 1 − 3 + 7 có thể được coi như là tổng của 1 + (−3) + 7 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 đó, sin 3x = sin(3x), nhưng sin x + y = sin(x) + y, vì x + y không phải là đơn thức.[1] 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.[1] 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ụ[sửa | sửa mã nguồn]

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[sửa | sửa mã nguồn]

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 −32 được hiểu là 0 − (32) = − 9,[1][3]

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ữ đó -32 sẽ được hiểu là (−3)2 = 9.[4] Đ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 =-2^2, =-(2)^2=0+-2^2 trả về kết quả 4, công thức =0-2^2=-(2^2) trả về kết quả - 4.

Hỗn hợp phép chia và phép nhân[sửa | sửa mã nguồ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/2x.[5] Nếu một người viết lại biểu thức này là 1 ÷ 2x 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:

1 ÷ 2 × x = 1 × 1/2 × x = 1/2 × x.

Với cách giải thích này, 1 ÷ 2x bằng (1 ÷ 2)x.[1][6] 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 đó 1 ÷ 2x bằng 1 ÷ (2x), chứ không phải (1 ÷ 2)x.

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,[7] 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ý.

Ghi chú[sửa | sửa mã nguồn]


Tham khảo[sửa | sửa mã nguồn]

  1. ^ a ă â b c d đ Bronstein, Ilja Nikolaevič; Semendjajew, Konstantin Adolfovič (1987) [1945]. “2.4.1.1.”. Trong Grosche, Günter; Ziegler, Viktor; Ziegler, Dorothea. Taschenbuch der Mathematik (bằng tiếng Đức) 1. Weiß, Jürgen (ấn bản 23). Thun and Frankfurt am Main: Verlag Harri Deutsch (and B. G. Teubner Verlagsgesellschaft, Leipzig). tr. 115–120. ISBN 3-87144-492-8.  Đã bỏ qua tham số không rõ |translator-last= (trợ giúp); Đã bỏ qua tham số không rõ |translator-first= (trợ giúp) Lỗi chú thích: Thẻ <ref> không hợp lệ: tên “Bronstein_1987” được định rõ nhiều lần, mỗi lần có nội dung khác
  2. ^ “Ask Dr. Math”. Math Forum. Ngày 22 tháng 11 năm 2000. Truy cập ngày 5 tháng 3 năm 2012. 
  3. ^ Allen R. Angel. Elementary Algebra for College Students (ấn bản 8). Chapter 1, Section 9, Objective 3. 
  4. ^ “Formula Returns Unexpected Positive Value”. Support.microsoft.com. Ngày 15 tháng 8 năm 2005. Truy cập ngày 5 tháng 3 năm 2012. 
  5. ^ Ball, John A. (1978). Algorithms for RPN calculators (ấn bản 1). Cambridge, Massachusetts, USA: Wiley-Interscience, John Wiley & Sons, Inc. tr. 31. ISBN 0-471-03070-8.  Đã bỏ qua tham số không rõ |url-access= (trợ giúp)
  6. ^ “Rules of arithmetic” (PDF). Mathcentre.ac.uk. Truy cập ngày 2 tháng 8 năm 2019. 
  7. ^ “Physical Review Style and Notation Guide” (PDF). American Physical Society. Section IV–E–2–e. Truy cập ngày 5 tháng 8 năm 2012. 

Liên kết ngoài[sửa | sửa mã nguồn]