Prove n! é totalmente construtível no tempo

8

Acabamos de terminar nossa lição "Construtibilidade do tempo" na aula na semana passada e, por exemplo, mostramos que nk,2n são totalmente construtíveis no tempo, ou seja, existe uma máquina de Turing (determinística para várias fitas) que, para n dado, pára após exatamente f(n) etapas, e apenas perguntei se poderíamos provar agora n! é totalmente construtível por tempo (e seguiu em frente).

Não sei ao certo como é a prova, mas acho que ela deve usar nk construtividade temporal, em certa medida, ou alguma identidade envolvendo fatoriais, pois mostramos nk é (totalmente) tempo construtível usando nk=n+i=1i=k1(n1)nEu.

Dicas também seriam apreciadas, realmente. Desde já, obrigado.

coptus
fonte

Respostas:

1

Vamos supor que encontramos n! na entrada n. Nossa complexidade é em termos de comprimento da entrada (assumimos que sejaL=O(logn)) Multiplicação de umk pouco a pouco l número de bits via multiplicação padrão leva O(keu) operações (também após o número de multiplicação de bits no resultante se O(k+eu)) Multiplicamos linearmente em um loop de1 para n para obter n!. Portanto, o número de operações realizadas é delimitado por#=eu2(1+2...(n-1))=eu2n(n-1)2=O(eu22O(eu))=o(eu!). Assim, é espaço e tempo construtíveis.

sashas
fonte
1
O problema é que você precisa provar (construir uma máquina, fornecer "uma descrição" de suas etapas - e depois contá-las) que, se n for um comprimento de entrada, a máquina será interrompida após exatamente f (n) etapas. O limite superior é, nesse caso, irrelevante (porque, de fato, segue imediatamente a partir de uma prova).
Coptus #
@coptus De acordo com a Wikipedia, parece que existem 2 definições diferentes para a função construtível no tempo. É necessário apenas que a função seja interrompida após exatamentef(n) passos, enquanto o outro exige a interrupção O(f(n)) etapas, mas também requer que a saída seja a representação binária de f(n). Parece-me como Sashas provado de acordo com a segunda definição
Dean Gurvitz