我正在寻找一种算法,它只计算可能排列的一半。例如,元素a、b、c具有以下排列:A、c、bB c aC b a
当一个排列与另一个排列相反(按相反顺序)时,它们被认为是相同的。我只需要这个算法来计算一半的排列。在这种情况下,可以是(a B c) (a C b) (b A c)或(c B a) (b C a) (c A b)。我想,根据算法的不同,也可能有不同的3组。我已经尝试过搜索这个算法,所有
这是我在这里提出的问题的进一步。
open System;
| Node of int * Color * tree * tree let rec innerBlackHeight accm = function | Node(_, B, l, r) -> List.max [(innerBlackHeight (a