多数组求笛卡尔积
来源:互联网 发布:崛起平台网络兼职骗局 编辑:程序博客网 时间:2024/05/06 12:36
/*--------------------------------------
*+多数组求笛卡尔积
*--------------------------------------
*/
笛卡尔(Descartes)乘积又叫直积。设A、B是任意两个集合,在集合A中任意取一个元素x,在集合B中任意取一个元素y,组成一个有序对(x,y),把这样的有序对作为新的元素,他们的全体组成的集合称为集合A和集合B的直积,记为A×B,即A×B={(x,y)|x∈A且y∈B}。
$t = func_get_args(); if(func_num_args() == 1){ return call_user_func_array( __FUNCTION__, $t[0] ); } $a = array_shift($t); if(! is_array($a)){ $a = array($a); } $a = array_chunk($a, 1); do { $r = array(); $b = array_shift($t); if(! is_array($b)){ $b = array($b); } foreach($a as $p){ foreach(array_chunk($b, 1) as $q){ $r[] = array_merge($p, $q); } } $a = $r; }while($t); return $r;}//示例$arr = array( array('a1','a2','a3'), 'b', array('c1','c2'), array('d1','d2','d3'), //......省略其它元素(也可以是数组),);$r = Descartes( $arr );var_dump($r);exit;/*array(18) { [0]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d1" } [1]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d2" } [2]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d3" } [3]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d1" } [4]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d2" } [5]=> array(4) { [0]=> string(2) "a1" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d3" } [6]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d1" } [7]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d2" } [8]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d3" } [9]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d1" } [10]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d2" } [11]=> array(4) { [0]=> string(2) "a2" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d3" } [12]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d1" } [13]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d2" } [14]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c1" [3]=> string(2) "d3" } [15]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d1" } [16]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d2" } [17]=> array(4) { [0]=> string(2) "a3" [1]=> string(1) "b" [2]=> string(2) "c2" [3]=> string(2) "d3" }}*/
0 0
- 多数组求笛卡尔积
- 求笛卡尔积
- Python求笛卡尔积
- 求笛卡尔积的php代码
- 排列组合 包含求集合笛卡尔积
- 【Python】求笛卡尔乘积
- 数据结构和算法数组系列---求数组的笛卡尔积
- c++求若干个集合的笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 笛卡尔积
- 编译安装zabbix3.0 agent端
- android错误之android.content.res.Resources$NotFoundException:
- 2016hdu多校赛第5场(hdu5790) 主席树(Persistent Segment Tree)
- github上关于iOS的各种开源项目集合
- Host 'admin-PC' is not allowed to connect to this MySQL server
- 多数组求笛卡尔积
- hdu 5793 A Boring Question (数学 + 快速幂 + 乘法逆元)
- 调制与解调
- 大数据性能调优之HBase的RowKey设计
- leetcode_c++:ZigZag Conversion(006)
- zookeeper原理(转)
- Ceph Rest Api 文档
- 《Java源码分析》:ReadWriteLock(第二部分)
- 前端开发人员必须了解的七大技能图谱