A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. Other complexity measures are also used, such as the amount of communication (used in communication complexity), the number of gates in a circuit (used in circuit complexity) and the number of processors (used in parallel computing). One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do.
What measure of a computational problem broadly defines the inherent difficulty of the solution? What method is used to intuitively assess or quantify the amount of resources required to solve a computational problem? What are two basic primary resources used to guage complexity? What unit is measured to determine circuit complexity? What practical role does defining the complexity of problems play in everyday computing?