gpt4 book ai didi

hash - 我如何枚举和删除以三元组形式分配给 3 个继承者中的每一个的 9 个项目......以及更多?

转载 作者:行者123 更新时间:2023-12-01 11:54:37 25 4
gpt4 key购买 nike

这个问题与Seeking a solution or a heursitic approxmation for the 3-partition combinatorial situation中描述的上下文相关.任务是将大约 48 件继承的珠宝,每件都有其评估值(value),分配给 3 名继承人,使每个继承人的值(value)相等或接近相等。出于法律目的,该问题已得到充分回答。

这个新问题源于我对通过枚举解决这个问题的追求。在法律上完全没有必要。现在只是一个智力挑战。

现在的问题:

为每个项目分配一个唯一索引:可能只是整数 1 到 48。现在将这 48 分配给 3 个继承者中的每一个并消除重复项。

为了使这个示例案例更简单,断言只有 9 个项目,每个继承人将恰好接收 3 个项目。 (请注意,这与之前使 3 个 bin 的值几乎相等的目标不同。)

如何消除items-to-bins顺序中的重复?

例子:
让 bin 1 包含项目 {1,2,3}
让 bin 2 包含项目 {4,5,6}
让 bin 3 包含项目 {7,8,9}

这个三元组的最终值将有 6 次重复:
{1,2,3}{4,5,6}{7,8,9}
{4,5,6}{1,2,3}{7,8,9}
{4,5,6}{7,8,9}{1,2,3}
{7,8,9}{1,2,3}{4,5,6}
{7,8,9}{4,5,6}{1,2,3}
等等

同样,如何消除 items-to-bins 序列中的重复项?无需枚举整组三元组排列。不,那不太对。我可能不得不暂时研究出所有的三胞胎排列。如何根据已有的先验快速剔除重复的三胞胎组合?

我可以想象像发明一个函数,给定 3 个项目的任意组合,返回一个唯一值。使用质数的东西?除了许多对素数相加为另一个素数。

我在 mathoverflow 上交叉发布了原始问题。对于不理解 stackoverflow 和 mathoverflow 之间的关系,我深表歉意。

最佳答案

可以看出限制分区的总数是

enter image description here , 等于 280。

这可以重新排序为:

enter image description here

您可以通过从九个列表成员中取出三个而获得的(有序)组合的前三分之一和当您从剩余六个中取出三个时获得的组合的前半部分来获得此选择前三个。当然,最后三个不能自由选择。

使用 Mathematica,您可以将其生成为:

list = Range[9];
l1 = Subsets[list, {3}, Binomial[9, 3]/3];
l2 = Subsets[Complement[list, #], {3}, Binomial[6, 3]/2] & /@ l1;
Flatten[
Outer[
Function[{ll1, ll2}, {ll1, ll2, Complement[list, ll1, ll2]}],
{#1}, #2, 1, 1
] & @@@ ({l1, l2}\[Transpose]),
2]

enter image description here

关于hash - 我如何枚举和删除以三元组形式分配给 3 个继承者中的每一个的 9 个项目......以及更多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424841/

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