TheAlgorithms-Python
26 строк · 730.0 Байт
1#!/usr/bin/python
2"""
3The Fisher–Yates shuffle is an algorithm for generating a random permutation of a
4finite sequence.
5For more details visit
6wikipedia/Fischer-Yates-Shuffle.
7"""
8
9import random
10from typing import Any
11
12
13def fisher_yates_shuffle(data: list) -> list[Any]:
14for _ in range(len(data)):
15a = random.randint(0, len(data) - 1)
16b = random.randint(0, len(data) - 1)
17data[a], data[b] = data[b], data[a]
18return data
19
20
21if __name__ == "__main__":
22integers = [0, 1, 2, 3, 4, 5, 6, 7]
23strings = ["python", "says", "hello", "!"]
24print("Fisher-Yates Shuffle:")
25print("List", integers, strings)
26print("FY Shuffle", fisher_yates_shuffle(integers), fisher_yates_shuffle(strings))
27