Przed Czytałem o Fisher-Yates, jest to algorytm wymyśliłem:Dlaczego ten algorytm tasowania jest nieprawidłowy?
def sort(arr):
for i in range(len(arr)):
swap(arr, i, rand.randint(0, len(arr) - 1))
Z mojego zrozumienia, jedyną różnicą między tym i Fisher-Yates jest to, że zamiast:
swap(arr, i, rand.randint(0, len(arr) - 1))
powinienem napisać:
swap(arr, i, rand.randint(i, len(arr) - 1))
mógłby ktoś wyjaśnić jak pierwszy algorytm jest błędna? (tj. nie powoduje losowego przetasowania).