Rövid szöveges bemutatás:
A bonyolultságelmélet (complexity analysis) területe a problémákat elemzi. A problémák bonyolultságának két legfontosabb osztálya a P (polinom időben megoldható) és az NP (nemdeterminisztikus polinom idejű problémák). Ez a két osztály egy adott kérdés eldöntésére törekszik, tehát igen-nem választ adhat. Léteznek azonban NP-beli döntési problémáknak megfelelő számlálási problémák, melyek megoldásai egész számok. Ezeket a problémákat tartalmazza a #P osztály.