Python/other/fischer_yates_shuffle.py
2018-10-19 17:14:25 -05:00

23 lines
658 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/python
# encoding=utf8
"""
The FisherYates shuffle is an algorithm for generating a random permutation of a finite sequence.
For more details visit
wikipedia/Fischer-Yates-Shuffle.
"""
import random
def FYshuffle(LIST):
for i in range(len(LIST)):
a = random.randint(0, len(LIST)-1)
b = random.randint(0, len(LIST)-1)
LIST[a], LIST[b] = LIST[b], LIST[a]
return LIST
if __name__ == '__main__':
integers = [0,1,2,3,4,5,6,7]
strings = ['python', 'says', 'hello', '!']
print ('Fisher-Yates Shuffle:')
print ('List',integers, strings)
print ('FY Shuffle',FYshuffle(integers), FYshuffle(strings))