Se capisco le tue definizioni, questo può essere fatto in tempo lineare con spazio costante. Questo è ovviamente il limite più basso, perché dobbiamo almeno leggere l'intero input.
La risposta fornita in questa domanda è soddisfacente.
È impossibile eseguirlo con meno tempo o spazio e l'aggiunta di tempo o spazio extra è inutile, quindi non c'è compromesso spazio-tempo qui. (Osserva che , quindi il compromesso che hai osservato non si mantiene asintoticamente, in ogni caso.)n=O(n/k)
Per quanto riguarda la tua domanda generale, non conosco i teoremi simpatici che ti aiuteranno a dimostrare i compromessi spazio-temporali. Questa domanda sembra indicare che non esiste una risposta (nota) facile. Fondamentalmente:
Supponiamo che una certa lingua sia decidibile in tempo (usando una certa quantità di spazio) e s spazio (usando una certa quantità di tempo). Possiamo trovare f , g tale che L sia decidibile per M che corre nello spazio f ( t , s ) e nello spazio g ( t , s ) ?tsf,gLMf(t,s)g(t,s)
è sconosciuto, e una risposta forte risolverebbe molti problemi aperti (in particolare su SC), il che implica che non esiste una soluzione facile.
EDIT: Ok, con ripetizione (ma sto ancora supponendo che con un input di dimensione il numero massimo possibile sia n + 1 ).nn+1
Osserva che il nostro algoritmo deve essere in grado di distinguere tra almeno possibili risposte. Supponiamo che ad ogni passaggio attraverso i dati possiamo ottenere al massimo k pezzi di dati. Quindi avremo bisogno di n / k pass per differenziare tutte le risposte. Supponendo che k = n / s corriamo in nnkn/kk=n/stempo. Quindi penso che questo provi quello che vuoi.nn/sn=sn
La difficoltà sta nel mostrare che ogni volta che otteniamo solo bit. Se supponi che la nostra unica operazione legale sia =, allora siamo a posto. Tuttavia, se consenti operazioni più complesse, sarai in grado di ottenere maggiori informazioni.k