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 | 1886 total (11 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] |