Skip to content

fsssosei/complete_shuffle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

complete_shuffle

PyPI PyPI - Status GitHub Release Date Language grade: Python Codacy Badge PyPI - Downloads PyPI - Python Version PyPI - License

Complete shuffling of lists with true random or pseudo random sequences.

Multiple external true random sources can be accessed to shuffle the list.

In addition to the shuffle function, there are also random cyclic permutation functions, and the derangement function.

Installation

Installation can be done through pip. You must have python version >= 3.8

pip install complete-shuffle

Usage

The statement to import the package:

from complete_shuffle_package import *

Example:

>>> from gmpy2 import bit_mask as gmpy2_bit_mask
>>> prng_period = calculate_number_of_shuffles_required(12, 'prng_period')
>>> seed = 170141183460469231731687303715884105727 & gmpy2_bit_mask((prng_period - 1).bit_length())
#The entropy of the seed must not be less than the number of permutations in the list.(Calculate with "calculate_number_of_shuffles_required" function)

>>> sequence_list = list(range(12))
>>> pr_complete_shuffle(sequence_list, seed)
>>> sequence_list
[6, 0, 9, 11, 2, 1, 7, 5, 3, 10, 4, 8]

>>> sequence_list = list(range(12))
>>> pr_complete_cyclic_permutation(sequence_list, seed)
>>> sequence_list
[6, 11, 0, 9, 2, 1, 7, 5, 3, 10, 4, 8]

>>> sequence_list = list(range(12))
>>> pr_complete_derangement(sequence_list, seed)
>>> sequence_list
[6, 0, 9, 11, 2, 1, 7, 5, 3, 10, 4, 8]

About

Complete shuffling of lists with true random or pseudo random sequences.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages