TheAlgorithms-Python

Форк
0
/
fischer_yates_shuffle.py 
26 строк · 730.0 Байт
1
#!/usr/bin/python
2
"""
3
The Fisher–Yates shuffle is an algorithm for generating a random permutation of a
4
finite sequence.
5
For more details visit
6
wikipedia/Fischer-Yates-Shuffle.
7
"""
8

9
import random
10
from typing import Any
11

12

13
def fisher_yates_shuffle(data: list) -> list[Any]:
14
    for _ in range(len(data)):
15
        a = random.randint(0, len(data) - 1)
16
        b = random.randint(0, len(data) - 1)
17
        data[a], data[b] = data[b], data[a]
18
    return data
19

20

21
if __name__ == "__main__":
22
    integers = [0, 1, 2, 3, 4, 5, 6, 7]
23
    strings = ["python", "says", "hello", "!"]
24
    print("Fisher-Yates Shuffle:")
25
    print("List", integers, strings)
26
    print("FY Shuffle", fisher_yates_shuffle(integers), fisher_yates_shuffle(strings))
27

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.