gpt4 book ai didi

c# - 查找列表的组合

转载 作者:行者123 更新时间:2023-11-30 14:40:06 25 4
gpt4 key购买 nike

我正在实现 Apriori 算法。我需要计算列表的组合例如我有一个列表包含美国广播公司DEFGHIJKL它的输出应该是这样的ABCDEFABCGHIABCJKL

请告诉我我可以得到这样的输出......

最佳答案

它被称为 cartesian product

简单的方法

var inputs = new [] { "ABC", "DEF", "GHI", "JKL", "MNO" };
var combi = from first in inputs
from second in inputs
select first+second;

灵活的方法(由 Eric Lippert 发布)

static IEnumerable<IEnumerable<T>> CartesianProduct<T>(this IEnumerable<IEnumerable<T>> sequences) 
{
IEnumerable<IEnumerable<T>> emptyProduct = new[] { Enumerable.Empty<T>() };
return sequences.Aggregate(
emptyProduct,
(accumulator, sequence) =>
from accseq in accumulator
from item in sequence
select accseq.Concat(new[] {item}));
}

像这样使用

var combi = new [] { inputs, inputs }.CartesianProduct();

力量来自于能做

var combi = new [] { inputs, inputs, somethingelse, inputs }.CartesianProduct();

同样容易

关于c# - 查找列表的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770442/

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