X resuelve el problema de la Torre de Hanoi, primero con n discos en el tiempo t1 y luego con n + 2 discos en el tiempo t2. Suponiendo que él toma la misma cantidad de tiempo para cada movimiento de disco y resuelve el problema en los menores pasos posibles, ¿cuál será la relación entre t1 y t2?

La solución recursiva popular simple al problema de Hanoi es

def moveTower(height,fromPole, toPole, withPole):
if height >= 1:
moveTower(height-1,fromPole,withPole,toPole)
moveDisk(fromPole,toPole)
moveTower(height-1,withPole,toPole,fromPole) def moveDisk(fp,tp):
print("moving disk from",fp,"to",tp) moveTower(4, "A","B","C")

def moveTower(height,fromPole, toPole, withPole):
if height >= 1:
moveTower(height-1,fromPole,withPole,toPole)
moveDisk(fromPole,toPole)
moveTower(height-1,withPole,toPole,fromPole) def moveDisk(fp,tp):
print("moving disk from",fp,"to",tp) moveTower(4, "A","B","C")

def moveTower(height,fromPole, toPole, withPole):
if height >= 1:
moveTower(height-1,fromPole,withPole,toPole)
moveDisk(fromPole,toPole)
moveTower(height-1,withPole,toPole,fromPole) def moveDisk(fp,tp):
print("moving disk from",fp,"to",tp) moveTower(4, "A","B","C")

El código anterior se toma de aquí: Resolución de problemas con algoritmos y estructuras de datos

Deje que el tiempo para mover una torre de altura [matemáticas] n [/ matemáticas] sea [matemáticas] T (n) [/ matemáticas].
También permita que el tiempo para mover un disco sea 1.

Entonces el algoritmo anterior lleva tiempo: [matemática] T (n) = 2T (n-1) + 1 [/ matemática]
[mates]
\ por lo tanto \ T (n) = 2T (n-1) + 1 = t_ {1} \ as \ defined \ in \ problem
\\
=> T (n + 1) = 2T (n) + 1 = 2t_ {1} + 1
\\
=> T (n + 2) = 2T (n + 1) + 1 = 2 (2t_ {1} + 1) +1
\\
=> t_ {2} = 4t_ {1} + 3
[/mates]

More Interesting

¿Cuál es la intuición detrás de los algoritmos aleatorios y la aleatorización en general?

¿Cuáles son los problemas en informática para los cuales se conoce con certeza la mejor complejidad computacional absoluta?

¿Cómo le iría a Donald Knuth como competidor en TopCoder hoy?

¿Es el principio de equivalencia computacional de Stephen Wolfram simplemente una extensión de la tesis de Church-Turing y la máquina universal de Turing de Turing?

¿Cómo es UMass para un estudiante universitario en ciencias de la computación para estudiantes interesados ​​en IA? ¿Con qué otras universidades se compara?

¿Alguien puede explicar paso a paso cómo se puede resolver el siguiente problema?

¿Los programadores de computadoras usan Pi para crear un número 'aleatorio'?

¿Cuál es la mejor manera de transformar una secuencia de 0 y 1 en otra secuencia que tenga el mayor número posible de 0 y exista una forma de revertir la nueva secuencia?

¿Cuáles son los departamentos de investigación más sólidos para la teoría de la computabilidad (recursividad) en el mundo en este momento?

Cómo mostrar una universidad Seré una gran adición a su programa

¿Por qué soy bueno en cursos intensivos de programación, pero sigo reprobando en cursos de teoría de informática? ¿Estoy en condiciones de ser ingeniero de software?

¿Existe alguna analogía en la vida real con el concepto de expresiones regulares?

¿Cuál es la mejor aplicación de la teoría de grafos en la vida real que conoces?

¿Podrán los robots hacer pruebas matemáticas e investigar todas las leyes físicas del universo mejor que los humanos?

¿Cuál es la razón por la cual las instalaciones no cambian su esquema de cifrado, de modo que cuando se publique una prueba de P = NP no se verán afectados?