介绍
这篇文章将为大家详细讲解有关PHP中笛卡尔积的实现原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
笛卡尔积是指在数学中,两个集合X和Y的笛卡尔积(笛卡儿积),又称直积,表示为X * Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
假设集合={A、b},集合b={0 1 2},则两个集合的笛卡尔积为{(A, 0)、(A, 1), (, 2), (b, 0)、(b, 1), (b) 2)}
<强>实现思路强>
先计算第一个集合和第二个集合的笛卡尔积,把结果保存为一个新集合。
然后再用新集合与下一个集合计算笛卡尔积,依此循环直到与最后一个集合计算笛卡尔积。
例如有以下几个集合,需要计算笛卡尔积
& lt;及# 63;PHP
引用>
$集=数组(
数组(& # 39;白色& # 39;,& # 39;黑色& # 39;,& # 39;红色& # 39;),
数组(& # 39;透气& # 39;,& # 39;防滑& # 39;),
数组(& # 39;37码& # 39;,& # 39;38码& # 39;,& # 39;39码& # 39;),
数组(& # 39;男款& # 39;,& # 39;女款& # 39;)
);
, # 63;在
代码如下:
& lt;及# 63;PHP/* * * php计算多个集合的笛卡尔积 *日期:2017-01-10 *作者:fdipzone *版本:1.0 * *函数 * CartesianProduct计算多个集合的笛卡尔积 *//* * *计算多个集合的笛卡尔积 * @param数组$集集合数组 * @return数组 */函数CartesianProduct(集){//保存结果 $=结果数组();//循环遍历集合数据 (i=0美元,美元数=count($集);i<把1美元;$我+ +){//初始化 if ($ i==0) { 结果=美元集($ i); }//保存临时数据 数组$ tmp=();//结果与下一个集合计算笛卡尔积 结果美元foreach (res) { foreach(美元($ i + 1]美元集){ tmp美元[]=>设置美元; } }//将笛卡尔积写入结果 $=$ tmp结果; } 返回结果美元; }//定义集合 $集=阵列( 数组(& # 39;白色& # 39;,& # 39;黑色& # 39;,& # 39;红色& # 39;), 数组(& # 39;透气& # 39;,& # 39;防滑& # 39;), 阵列(& # 39;37码& # 39;,& # 39;38码& # 39;,& # 39;39码& # 39;), 数组(& # 39;男款& # 39;,& # 39;女款& # 39;) ); 结果=CartesianProduct美元(美元); print_r(结果); ,# 63;在输出:
数组 ( [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中笛卡尔积的实现原理是什么