洗涤最大行程距离的列表

时间:2017-08-09 19:14:39

标签: python algorithm list permutation shuffle

说我有一个我希望改组的列表[a, b, c, d, e, f, g]

我想找到一种随机置换数据的算法,其限制是任何元素都不会超过其起始位置的N个空格。因此,对于N = 2a将永远不会出现在起始列表的第三个位置下方。使用N = 0,算法将返回列表而不进行任何更改,而N = len(list) - 1,它的功能与普通的混洗算法完全相同

例如,使用python语法:

>>> restrictedShuffle([a, b, c, d, e, f, g], N=2)
[a, c, b, f, d, g, e] 
>>> restrictedShuffle([a, b, c, d, e, f, g], N=1)
[b, a, c, e, d, f, g]
>>> restrictedShuffle([a, b, c, d, e, f, g], N=0)
[a, b, c, d, e, f, g]

这样的算法是否存在?

0 个答案:

没有答案