void Main()
{
string[] str1 = { "a", "b" };
string[] str2 = { "" };
string[] str3 = { "一", "二", "三" };
string[] str4 = { "", "", "" };
string[] str5 = { "", ""};
string[] str6 = { "", "+", "-" };
List<string[]> list = new List<string[]>();
list.Add(str1);
list.Add(str2);
list.Add(str3);
list.Add(str4);
list.Add(str5);
list.Add(str6);
List<string> result = new List<string>();
Descartes(list, , result, string.Empty);
foreach (var item in result)
{
Console.WriteLine(item);
} } // Define other methods and classes here
private static void Descartes(List<string[]> list, int count, List<string> result, string data)
{ // 获取当前数组
string [] curr=list[count];
foreach(var item in curr)
{
if(count+< list.Count)
{
// 跳至下一层
Descartes(list,count+, result, data+item);
}
else
{
// 达到最底层时将拼接的值存入结果列表中
result.Add(data+item);
}
} }

代码二: 思路一致 , 在最后一层输出结果,其他层递归至下一层

 //定义一个全局二维锯齿数组,数据自己想办法往里填吧
int[ ][ ] IntList=new int[N][ ];
for(int i=;i<N;i++)
{
IntList[i]=new int[M[i]];
} //定义一个一维数组存放结果
int[ ] ResultList=new int[N]; void GetNextResult(int step,int MaxStep)
{
for(int i=;i<IntList[step].Length;i++)
{
ResultList[step]=IntList[step][i];
if(step==MaxStep)
{
//输出ResultList
}
else
{
GetNextResult(step+,MaxStep);
}
}
}

C# 笛卡尔积的更多相关文章

  1. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  2. mysql,SQL标准,多表查询中内连接,外连接,自然连接等详解之查询结果集的笛卡尔积的演化

    先附上数据. CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) CHARACTER SET utf8 NOT NULL, `ctime` ) NO ...

  3. 使用Guava来计算笛卡尔积

    以前做项目的时候计算笛卡尔积的时候,总是使用各种for循环来嵌套,最后往往在Sonar代码检查的时候总是会报警说for循环嵌套过深. 今天才知道Guava原来已经为我们提供了优雅的计算笛卡尔积的方法. ...

  4. MySQL的多表查询(笛卡尔积原理)

    先确定数据要用到哪些表. 将多个表先通过笛卡尔积变成一个表. 然后去除不符合逻辑的数据(根据两个表的关系去掉). 最后当做是一个虚拟表一样来加上条件即可. 注意:列名最好使用表别名来区别. 笛卡尔积 ...

  5. js 生成笛卡尔积

    其实生成 笛卡尔积的方法原本很简单,for循环就可以了, function discarts() { //笛卡尔积 var twodDscartes = function (a, b) { var r ...

  6. 【SQL】SQL中笛卡尔积、内连接、外连接的数据演示

    SQL的查询语句中,常使用到内连接.外连接,以及连接的基础--笛卡尔积运算. 在简单的SQL中,也许我们还分辨清楚数据如何连接,一旦查询复杂了,脑子也犯浆糊了,迷迷糊糊的. 本文,简单以数据形式记录连 ...

  7. OR导致笛卡尔积

    近期监控数据库,发现以下语句跑得很慢,原来运行计划走了导致笛卡尔积,来看以下语句: SQL> explain plan for 2 SELECT COUNT(*) 3 FROM "GD ...

  8. php计算多个集合的笛卡尔积实例详解

    笛卡尔积 笛卡尔积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X*Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员. 假设集合A ...

  9. Oracle中的多表查询(笛卡尔积原理)

    本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一 ...

  10. mysql(2)—— 由笛卡尔积现象分析数据库表的连接

    首先,先简单解释一下笛卡尔积. 现在,我们有两个集合A和B. A = {0,1}     B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2 ...

随机推荐

  1. Hadoop修改SSH端口号

    hadoop-env.sh export HADOOP_SSH_OPTS="-p 16022"

  2. ubuntu英文乱码解决

     ubuntu英文乱码: vi /etc/default/locale LANG="en_US.UTF-8" LANGUAGE="en_US:en" 配置更 ...

  3. 十步让你调试mvc源码

    1.下载 mvc 当前版本的源码,地址:http://aspnetwebstack.codeplex.com/SourceControl/latest 2.编译源码,参考:http://www.cnb ...

  4. 动手学servlet(四) cookie和session

    Cookie   cookie是保存在客户端的一个“键值对”,用来存储用户的一些信息 cookie的应用: -在电子商务会话中标识用户 -对网站进行定制,比如你经常浏览哪些内容,就展示哪些页面给你 - ...

  5. mysql和oracle的mybatis操作

    1.Oracle.MySQL插入时返回下一个主键的操作 Oracle:<insert id="insert" parameterClass="ROLE"& ...

  6. Visual Studio 2010 C++ 工程文件解读

    在 VS2010 中,C++ 的工程文件已经和 2005 / 2008 有了很大的不同,而是完全采用 MSBUILD 的属性方式进行表达,并且可以让用户通过一次性的配置而对所有的属性进行自定义: 根据 ...

  7. 全选Form > Grid 的所有行

    在AX的Grid 按Ctrl+A,并不一定能选择到grid 的所有行,比如你要将当前grid的数据复制到Excel,你需要全部选择所有行. 但AX自身的数据缓存机制,数据量非常大的时候当前grid只装 ...

  8. C# 清空sessin

    Session.Abandon();//清除全部Session//清除某个SessionSession["UserName"] = null;Session.Remove(&quo ...

  9. JavaScriptSerializer.MaxJsonLength属性问题

    JavaScriptSerializer.MaxJsonLength属性用于获取或设置接受的JSON字符串的最大长度,超出设定值时序列化或反序列化会失败.常见的出错的场景有: 1.序列化: 以下代码在 ...

  10. MYSQL--事务处理

    1.用begin,rollback,commit来实现 begin 开始一个事务 rollback 事务回滚 commit  事务确认 2.直接用set来改变mysql的自动提交模式 MYSQL默认是 ...