25. Fisher-Yates

Implementa el algoritmo de desordenamiento de Fisher-Yates (también conocido como Knuth Shuffle).

Crea una función que reciba una lista y la desordene aleatoriamente de manera uniforme. La función debe modificar la lista en su lugar (o devolver una nueva lista desordenada si prefieres, pero justifica tu elección).

import random

def fisher_yates_shuffle(lista: list) -> list:
    # Tu código aquí
    pass

# Ejemplo (el resultado será aleatorio)
lista_ejemplo = [1, 2, 3, 4, 5]
fisher_yates_shuffle(lista_ejemplo)
# Posible resultado: [3, 1, 5, 2, 4]

Ratoncito

Implementa el algoritmo Fisher-Yates. Asegúrate de que el desorden sea verdaderamente aleatorio y uniforme.

Dragón

Investiga cómo generar números aleatorios "verdaderos" o criptográficamente seguros en tu lenguaje de programación (si es relevante) y discute las implicaciones de usar un PRNG (generador de números pseudoaleatorios) para el desordenamiento. Considera si la implementación es destructiva (modifica la lista original) o no.

Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.

¿Me invitas a un café?

Visitantes en tiempo real

Estás solo: 🐱