W rzeczywistości można wykazać, że dla każdego wystarczająco małego (mniej niż 2 n / n ) istnieją funkcje obliczalne dla obwodów o wielkości f ( n ), ale nie przez obwody o wielkości f ( n ) - O ( 1 ) lub nawet f ( n ) - 1 , w zależności od typu dozwolonych bramek.f2n/nf(n)f(n)−O(1)f(n)−1
Oto prosty argument, który pokazuje, że istnieją funkcje obliczalne w rozmiarze ale nie w rozmiarze f ( n ) - O ( n ) .f(n)f(n)−O(n)
Wiemy to:
- istnieje funkcja która wymaga złożoności obwodu co najmniej 2 n / O ( n ) , aw szczególności złożoności obwodu większej niż f ( n ) .g2n/O(n)f(n)
- funkcja taka, że z ( x ) = 0 dla każdego wejścia x jest obliczalne przez obwód o stałej wielkości.zz(x)=0x
- Jeśli dwie funkcje i g 2 różnią się tylko jedno wejście, a ich złożoność obwodu różni się co najwyżej o O ( n )g1g2O(n)
Załóżmy, że jest niezerowe na wejściach N. Zaproszenie takie wejścia x 1 , ... , x N . Możemy rozważyć dla każdego i funkcję g i ( x ), która jest funkcją wskaźnika zestawu { x 1 , … , x i } ; zatem g 0 = 0 a g N = g .gNx1,…,xNigi(x){x1,…,xi}g0=0gN=g
Oczywiście istnieją pewne takie, że g i + 1 ma złożoność obwodu większą niż f ( n ), a g i ma złożoność obwodu mniejszą niż f ( n ) . Ale wtedy g i ma złożoność obwodu mniejszą niż f ( n ), ale większą niż f ( n ) - O ( n ) .igi+1f(n)gif(n)gif(n)f(n)−O(n)