Nếu hàm f nằm trong #P, thì được cho một chuỗi đầu vào x có độ dài N, giá trị f (x) là một số không âm được giới hạn bởi . (Điều này tuân theo định nghĩa, về số lượng đường dẫn chấp nhận của trình xác minh NP.)2poly(N)
Điều này có nghĩa là nhiều hàm f nằm ngoài #P vì lý do không thú vị --- vì f là âm hoặc trong trường hợp bạn đề cập, vì hàm này phát triển nhanh hơn . Nhưng đối với vấn đề -queens như được mô hình hóa trong bài báo, đây chỉ là một sự giả tạo trong quyết định của tác giả để cho giá trị đầu vào được mã hóa thành nhị phân. Nếu đầu vào dự kiến là chuỗi đơn , thì (số lượng cấu hình -queen hợp lệ ) chắc chắn sẽ ở #P, bởi trình xác minh NP đơn giản kiểm tra tính hợp lệ của cấu hình đã cho.2poly(N)nn1nf(1n):=n
Nếu bạn muốn khám phá một số chức năng (theo phỏng đoán) nằm ngoài #P vì những lý do thú vị hơn, hãy xem xét ví dụ:
- UNSAT: nếu là công thức Boolean không thỏa mãn, nếu không thì . Hàm này không có trong #P, trừ khi NP = coNP. Nó có lẽ cũng không nằm trong lớp đếm tổng quát hơn GapP; đó là, UNSAT có lẽ không phải là sự khác biệt f - g của hai hàm #P. Tuy nhiên, nó nằm trong lớp phức tạp đếm tổng quát hơn , trong thực tế có chứa toàn bộ Phân cấp đa thức theo định lý của Toda.f(ψ):=1ψf(ψ):=0P#P
Bạn có thể không thích ví dụ đó vì đó không phải là "vấn đề đếm" tự nhiên. Nhưng hai cái tiếp theo sẽ là:
f(ψ(x,y)):= số lượng bài tập cho sao cho công thức Boolean phù hợp với một số cài đặt cho .xψ(x,⋅)y
f(ψ(x,y)):= the number of x such that, for at least half of all y, ψ(x,y)=1.
The latter two problems are not known to be efficiently computable even with oracle access to #P. However, they are computable within the so-called "counting hierarchy". For some more natural problems classified within this class, see e.g. this recent paper.
Counting Nash equilibria is apparently #P-hard, see here. Also, even problems where the search problem is easy can be #P hard to count, e.g. counting perfect matchings.