Prova n! è completamente costruibile nel tempo


8

Abbiamo appena finito la lezione di "Costruibilità del tempo" in classe la scorsa settimana e, per esempio, lo abbiamo dimostrato nK,2n sono completamente costruibili nel tempo, cioè esiste una macchina di Turing (deterministica multi-nastro) che per n dato, si ferma esattamente dopo f(n) passi e ho appena chiesto se ora potessimo provarlo n! è completamente costruibile nel tempo (e spostato).

Non sono sicuro di come vada la prova, ma penso che debba essere utilizzata nK costruibilità temporale in una certa misura, o qualche identità che coinvolge fattoriali, da quando abbiamo mostrato nK è (completamente) utilizzabile nel tempo nK=n+Σio=1io=K-1(n-1)nio.

Anche i suggerimenti sarebbero apprezzati, davvero. Grazie in anticipo.

Risposte:


1

Supponiamo di aver trovato n! su input n. La nostra complessità è in termini di lunghezza dell'input (supponiamo che siaL=O(logn)). Moltiplicazione di aK un po ' l accetta il numero di bit tramite la moltiplicazione standard O(Kl) operazioni (anche dopo il numero moltiplicato di bit nel risultante if O(K+l)). Ci moltiplichiamo linearmente in un ciclo da1 per n ottenere n!. Quindi il numero di operazioni eseguite è limitato da#=L2(1+2...(n-1))=L2n(n-1)2=O(L22O(L))=o(L!). Quindi è spazio e tempo costruibili.


1
Il problema è che è necessario dimostrare (costruire una macchina, fornire "una descrizione" dei suoi passi - e quindi contarli) che, se n è una lunghezza di input, la macchina si ferma dopo esattamente f (n) passi. Il limite superiore è, in questo caso, irrilevante (perché, in effetti, segue immediatamente da una prova data).
coptus,

@coptus Secondo Wikipedia sembra che ci siano 2 diverse definizioni per la funzione costruibile nel tempo. Uno richiede solo che la funzione si arresti dopo esattamentef(n) passi, mentre l'altro richiede di fermarsi O(f(n)) passi ma richiede anche che l'output sia la rappresentazione binaria di f(n). Mi sembra che i sasha siano stati dimostrati secondo la seconda definizione
Dean Gurvitz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.