pub fn get_permutation_for<T>(
objects: &[T],
degree: usize,
x: usize,
) -> Result<Vec<&T>, &str>Expand description
Get permutation at specific location.
If objects is [1, 2, 3, 4] and degree is 2 then
all possible permutation will be [1, 2], [1, 3],
[1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2],
[3, 4], [4, 1], [4, 2], [4, 3].
§Parameters
objectsa set of data that is a based for permutation.degreenumber of element per each location.xis a location to get a permutation
§Examples
use permutator::get_permutation_for;
let nums = [1, 2, 3, 4];
get_permutation_for(&nums, 2, 0); // return Result([1, 2])
get_permutation_for(&nums, 3, 0); // return Result([1, 2, 3])
get_permutation_for(&nums, 2, 5); // return Result([2, 4])
get_permutation_for(&nums, 2, 11); // return Result([4, 3])
get_permutation_for(&nums, 2, 12); // return Err("parameter x is outside a possible length")
get_permutation_for(&nums, 5, 0); // return Err("Insufficient number of object in parameters objects for given parameter degree")