perfect-vector-shuffle: Library for performing vector shuffles
This package contains functions for performing in-place Fisher--Yates shuffles on mutable and immutable vectors along with some related functionality. The shuffles are uniform at random amongst all permuations.
For an example of how to use it:
module Main where import Data.Vector import Immutable.Shuffle main :: IO () main = do { shuffleMyVector >>= print; cycleMyVector >>= print; derangeMyVector >>= print; } myVector :: Vector Int myVector = fromList [1..10] shuffleMyVector :: IO (Vector Int) shuffleMyVector = shuffleM myVector cycleMyVector :: IO (Vector Int) cycleMyVector = maximalCycleM myVector derangeMyVector :: IO (Vector Int) derangeMyVector = derangementM myVector
This gives the following:
>>> main [2,8,1,5,10,9,7,3,6,4] [6,8,4,10,9,2,5,7,3,1] [8,5,4,1,10,9,3,6,2,7] >>> main [7,9,3,5,10,6,8,1,2,4] [2,4,10,7,8,1,5,9,3,6] [4,8,5,2,7,3,9,6,10,1]
Downloads
- perfect-vector-shuffle-0.1.1.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0, 0.1.1, 0.1.1.1, 0.1.1.2 |
---|---|
Change log | CHANGELOG.md |
Dependencies | base (>=4.9 && <4.20), MonadRandom (>=0.5.1.1 && <0.7), perfect-vector-shuffle, primitive (>=0.6.4 && <0.9), random (>=1.1 && <1.3), vector (>=0.12.0 && <0.14) [details] |
License | BSD-3-Clause |
Copyright | 2019 |
Author | Callan McGill |
Maintainer | callan.mcgill@gmail.com |
Category | Random, Vector |
Home page | https://github.com/Boarders/perfect-vector-shuffle |
Bug tracker | https://github.com/Boarders/perfect-vector-shuffle/issues |
Source repo | head: git clone https://github.com/Boarders/perfect-vector-shuffle |
Uploaded | by callanmcgill at 2024-06-11T11:04:26Z |
Distributions | |
Executables | example |
Downloads | 1763 total (20 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |