Di seguito, supponiamo che stiamo lavorando con una macchina Turing a nastro infinito.
Quando ho spiegato la nozione di complessità temporale a qualcuno e perché è misurata in relazione alla dimensione di input di un'istanza, mi sono imbattuto nella seguente affermazione:
[..] Ad esempio, è naturale che avresti bisogno di più passaggi per moltiplicare due numeri interi con 100000 bit, quindi, per esempio, moltiplicando due numeri interi con 3 bit.
L'affermazione è convincente, ma in qualche modo agitando la mano. In tutti gli algoritmi che ho riscontrato, maggiore è la dimensione dell'input, più passaggi sono necessari. In parole più precise, la complessità temporale è una funzione monotonicamente crescente della dimensione dell'input.
È il caso che la complessità temporale sia sempre una funzione crescente nella dimensione dell'input? Se è così, perché è così? Esiste una prova al di là di agitare la mano?