Một lý do khác là điều này thường không mất tính tổng quát, vì thường xuyên (mặc dù không phải lúc nào - xem bên dưới) sự phức tạp của các chức năng và các vấn đề quyết định là tương đương. Mọi vấn đề quyết định có thể được xem như là một hàm có giá trị duy nhất là 0 và 1. Ngược lại, với hàm , có một số vấn đề quyết định liên quan thường có cùng độ phức tạp như f , ví dụ:ff
- các i chút -thứ của f ( x ) là 1 } .{ ( x , i ) :Tôif( x )}
- (hoặc ≥ ){ ( x , k ) : f( x ) ≤ k }≥
Dưới đây là một ví dụ về độ phức tạp của các lớp chức năng và các lớp ngôn ngữ liên quan của chúng dường như khác nhau: [Wagner 1987 "Log Query Classes",luận án 1987 của Hemaspaandra,Buss & Hay 1991], nhưng nếuFPNP[log]=FP N P t t thìNP=RPvàP=UP[PN P [log]= PN Pt tF PN P [log]= F PN Pt tN P = R PP = U PSelman 1994 ].
(Ở đây, oracle N P [ log ] có nghĩa là máy sẽ thực hiệnN P [log]các truy vấn O ( log n ) cho bất kỳ vấn đề nào trong N P (giả sử SAT). Ký hiệu P N P t t có nghĩa là P với mộttiên tri N P , nhưng trong mà các truy vấn ororykhông thích ứng: trên đầu vào x , nếu y i làchuỗi thứ i được truy vấn cho nhà tiên tri, thì y iO ( nhật kýn )N PPN Pt tPN PxyTôiTôiyTôikhông phụ thuộc vào câu trả lời cho bất kỳ cuộc gọi tiên tri nào trước đó. Tương tự, trên đầu vào máy xây dựng một danh sách y 1 , ... , y m mà không yêu cầu oracle, truy vấn oracle về tất cả các y i và nhận được câu trả lời, sau đó tiến hành tính toán mà không yêu cầu oracle một lần nữa.)xy1, ... , ymyTôi