C#中使用笛卡尔积方法得出穷举所有组合
2021-05-15 20:28
标签:cart 卡尔 笛卡尔积 log 输出 参数 pen else gen 借鉴微博:https://blog.csdn.net/zhifeiya/article/details/42919047 核心代码: using System; 这里自己做个记录, C#中使用笛卡尔积方法得出穷举所有组合 标签:cart 卡尔 笛卡尔积 log 输出 参数 pen else gen 原文地址:https://www.cnblogs.com/hangmei/p/14676460.html
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;
public class Descartes
{
///
/// 笛卡尔积
///
/// 将每个维度的集合的元素视为List> dimvalue作为输入
/// 将多维笛卡尔乘积的结果放到List
/// int layer 只是两个中间过程的参数携带变量
/// string curstring只是两个中间过程的参数携带变量,传递""就行
public static void run(List> dimvalue, List
{
if (layer {
if (dimvalue[layer].Count == 0)
run(dimvalue, result, layer + 1, curstring);
else
{
for (int i = 0; i {
StringBuilder s1 = new StringBuilder();
s1.Append(curstring);
s1.Append(dimvalue[layer][i]);
run(dimvalue, result, layer + 1, s1.ToString());
}
}
}
else if (layer == dimvalue.Count - 1)
{
if (dimvalue[layer].Count == 0) result.Add(curstring);
else
{
for (int i = 0; i {
result.Add(curstring + dimvalue[layer][i]);
}
}
}
}
}
上一篇:c# 时间区间求并集
下一篇:windows快捷键
文章标题:C#中使用笛卡尔积方法得出穷举所有组合
文章链接:http://soscw.com/index.php/essay/85940.html