Saltar al contenido

La barajada del mago

Enunciado

En el teatro del pueblo, el mago Aurelio baraja siempre igual y jura que, si repite la barajada las veces justas, el mazo vuelve solo a su orden. Nadie le cree. Tú vas a contar esas veces.

El mazo tiene las cartas del 1 al n, en orden. Una barajada lo parte en dos mitades iguales, la primera y la segunda, y arma un mazo nuevo tomando una carta de cada mitad por turnos: la primera de la primera mitad, la primera de la segunda, la segunda de la primera, y así.

Escribe una función que reciba n (entero par, 2 o más) y regrese, como entero, cuántas barajadas hacen falta para que vuelva a quedar del 1 al n. La primera barajada ya cuenta, así que nunca regresas 0.

Con 6: [1, 2, 3] y [4, 5, 6] dan [1, 4, 2, 5, 3, 6], luego [1, 5, 4, 3, 2, 6], [1, 3, 5, 2, 4, 6] y [1, 2, 3, 4, 5, 6]. Regresas 4.

Ejemplos

  • El ejemplo

    6 → 4

  • Cuatro cartas

    4 → 2

  • Ocho cartas

    8 → 3

  • Un mazo completo

    52 → 8

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def barajadas(n):
    pass

JavaScript

function barajadas(n) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n²)

Ver todos los retos →