笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。

简单的说就是两个集合相乘的结果。

具体的定义去看看有关代数系的书的定义。

直观的说就是

集合A{a1,a2,a3} 集合B{b1,b2}

他们的 笛卡尔积 是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}

任意两个元素结合在一起

/**

* php 计算多个集合的笛卡尔积

* Date: 2017-01-10

* Author: fdipzone

* Ver: 1.0

*

* Func

* CartesianProduct 计算多个集合的笛卡尔积

*/

/**

* 计算多个集合的笛卡尔积

* @param Array $sets 集合数组

* @return Array

*/

function CartesianProduct($sets){

// 保存结果

$result = array();

// 循环遍历集合数据

for($i=0,$count=count($sets); $i

// 初始化

if($i==0){

$result = $sets[$i];

}

// 保存临时数据

$tmp = array();

// 结果与下一个集合计算笛卡尔积

foreach($result as $res){

foreach($sets[$i+1] as $set){

$tmp[] = $res.$set;

}

}

// 将笛卡尔积写入结果

$result = $tmp;

}

return $result;

}

// 定义集合

$sets = array(

array('白色','黑色','红色'),

array('透气','防滑'),

array('37码','38码','39码'),

array('男款','女款')

);

$result = CartesianProduct($sets);

print_r($result);

输出:

Array

(

[0] => 白色透气37码男款

[1] => 白色透气37码女款

[2] => 白色透气38码男款

[3] => 白色透气38码女款

[4] => 白色透气39码男款

[5] => 白色透气39码女款

[6] => 白色防滑37码男款

[7] => 白色防滑37码女款

[8] => 白色防滑38码男款

[9] => 白色防滑38码女款

[10] => 白色防滑39码男款

[11] => 白色防滑39码女款

[12] => 黑色透气37码男款

[13] => 黑色透气37码女款

[14] => 黑色透气38码男款

[15] => 黑色透气38码女款

[16] => 黑色透气39码男款

[17] => 黑色透气39码女款

[18] => 黑色防滑37码男款

[19] => 黑色防滑37码女款

[20] => 黑色防滑38码男款

[21] => 黑色防滑38码女款

[22] => 黑色防滑39码男款

[23] => 黑色防滑39码女款

[24] => 红色透气37码男款

[25] => 红色透气37码女款

[26] => 红色透气38码男款

[27] => 红色透气38码女款

[28] => 红色透气39码男款

[29] => 红色透气39码女款

[30] => 红色防滑37码男款

[31] => 红色防滑37码女款

[32] => 红色防滑38码男款

[33] => 红色防滑38码女款

[34] => 红色防滑39码男款

[35] => 红色防滑39码女款

)

笛卡尔积 php,PHP 笛卡尔积相关推荐

  1. mysql 笛卡尔积_Mysql(笛卡尔积、等值连接、自然连接、外连接)

    1.笛卡尔积 笛卡尔积的元素是元组,关系A和B的笛卡尔积可以记为(AXB),如果A为a目,B为b目,那么A和B的笛卡尔积为(a+b)列.(a*b)行的元组集合. (1)学生表和分数表中的信息: 学生表 ...

  2. 笛卡尔积 php,PHP笛卡尔积实现算法示例

    本文实例讲述了PHP笛卡尔积实现算法.分享给大家供大家参考,具体如下: $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1,0)); /** ...

  3. 用java实现笛卡尔积_Java实现笛卡尔积

    public class Singleton { private static Singleton intance; private Singleton() {} public static Sing ...

  4. java笛卡尔积算法_Java 笛卡尔积算法的简单实现

    笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列. (2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前 ...

  5. oracle的笛卡尔积的用处,笛卡尔积的解释和作用

    一:笛卡尔积的解释 例 给出二个域: 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}..类似的例子有, ...

  6. 笛卡尔积 mysql_DB中笛卡尔积的用途

    DB中笛卡尔积的作用 学习过数据库和SQL知识的程序员都应该知道笛卡尔积是什么,就是将两张表中数据进行组合然后返回.我一直觉得笛卡尔积没啥鸟用,只是学术上的东西,直到通宵加班时,遇到一个祖传系统的需求 ...

  7. 11、CROSS JOIN:交叉连接(笛卡尔积)

    前面所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询.多表查询就是同时查询两个或两个以上的表. 在 MySQL 中,多表查询主要有交叉连接 ...

  8. 离散数学知识点总结(10)“关系” 知识的总结 <1>:关系的基础概念 —— 有序 n 元组,集合的笛卡尔积,集合的关系(二元关系)的定义,关系的集合运算, 关系的基本性质

    文章目录 有序 n 元组和集合的笛卡尔积 序偶关系 有序二元组 序偶相等 有序三元组 有序n元组 有序 n 元组相等 集合的笛卡尔积 集合笛卡尔积的性质 集合的二元关系及其表示方法 相关 关系的定义 ...

  9. 数据库的传统集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除运算)

    转载:https://blog.csdn.net/zgcr654321/article/details/82077809 正文如下: 各种运算符如下: 数据库中每行就是一个元组,每列就是一个属性. 数 ...

最新文章

  1. SQL Server 2008不能修改表的解决方法
  2. 打印Show Atend and Tell编码器的优化器
  3. linux 文件及目录结构体系
  4. jquery对radio的操作汇总
  5. 光伏市场抢装潮6月底前或重现
  6. Test live writer
  7. windows 提权 cve-2018-8897
  8. QtCreator 如何将开发的程序打包成exe
  9. 信息学奥赛C++语言:成绩等级
  10. Linux常用命令大全(归类)
  11. ES6学习之路10----Symbol
  12. 无法更新标识列 wechatid_天津塘沽企业标识标牌设计制作安装的过程
  13. PVE使用USB蓝牙直通配置
  14. Appium基础 — uiautomatorviewer定位工具
  15. 广东省推出居民身份电子凭证,忘带身份证也能住酒店了
  16. CSP报错运行错误?
  17. oracle提示ORA-00979: 不是 GROUP BY 表达式
  18. numpy、pandas操作
  19. 如何保障邮件内容安全
  20. Ubuntu使用心得

热门文章

  1. socket分块接收_分块WebSocket传输
  2. redis学习-主从-哨兵集群-redis-cluster简单日记
  3. 重定向 请求转发 与cookie
  4. DataAnalysis:基本概念,环境介绍,环境搭建,大数据问题
  5. Intent的数据传输
  6. 再一次源码编译caffe2的血泪史
  7. 两个服务器之间项目通过nginx内网映射
  8. 导出多个sheet页面
  9. 职场新人出奇制胜的9大职场观
  10. Docker基础使用