Estoy buscando un algoritmo eficiente para el problema:
Entrada : El entero positivo (almacenado como bits) para algún entero n ≥ 0 .
Salida : el número .
Pregunta : ¿Podemos calcular partir de los bits de 3 n en el tiempo O ( n ) ?
Esta es una pregunta teórica motivada por mi respuesta a una pregunta matemática. ¿ Cómo encontrar una fórmula para esta biyección? . En esta pregunta, el autor quería encontrar una biyección de y los números naturales N = { 1 , 2 , ... } . Propuse 2 m 3 n ↦ 2 m ( 2 n + 1 )
Con mi solución propuesta, si conocemos y m , podemos calcular fácilmente 2 m ( 2 n + 1 ) (escribir los dígitos binarios de n seguido de 1 seguido de m ceros). Esto lleva tiempo O ( n + m ) .