gpt4 book ai didi

algorithm - 元素删除可交换的改组算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:18 26 4
gpt4 key购买 nike

对于我正在编写的应用程序(使用函数式语言),我想实现一个确定性改组算法,以便在给定相同种子的情况下,它将返回相同的改组数组,其中 X 位置的某些元素被删除为如果该元素一开始就不在数组中,那将会是这样。示例:如果 shuffle([1,2,3,4,5], seed) = [4,2,3,1,5] then shuffle([1,3,4 ,5], seed) 应该返回 [4,3,1,5]。但在我尝试重新发明轮子之前,我必须问:这样的算法是否存在? (还想知道这个属性是否有名字)。感谢您的任何输入。

最佳答案

如果您的随机播放产生原始列表或反转的列表(取决于种子),它将具有您描述的属性。其他任何东西,而不是所有的子列表,当与它们相应的洗牌匹配时,都会使元素以相同的方式移动。例如,考虑 shuffle([1,2,3])。在下表中,每一列都是不同的shuffle;对于每种情况,3 个子列表中的一个都有一个洗牌,它以不同于其他两个的方式移动元素。

shuffle([1,2,3])  = [1,3,2]  [2,1,3]  [2,3,1]  [3,1,2]
shuffle([1,2]) = [1,2] [2,1]* [2,1] [1,2]*
shuffle([1,3]) = [1,3] [1,3] [3,1] [3,1]
shuffle([2,3]) = [3,2]* [2,3] [2,3]* [3,2]

关于algorithm - 元素删除可交换的改组算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com