登录  /  注册
博主信息
博文 176
粉丝 1
评论 0
访问量 432264
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP笛卡尔积
dxp2tq的博客
原创
1725人浏览过

笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。
简单的说就是两个集合相乘的结果。
具体的定义去看看有关代数系的书的定义。
直观的说就是
集合A{a1,a2,a3} 集合B{b1,b2}
他们的 笛卡尔积 是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}
任意两个元素结合在一起

/**

  • 计算多个集合的笛卡尔积
  • @param Array $sets 集合数组
  • @return Array
    */
    function CartesianProduct($sets){
    // 保存结果
    $result = array();
    // 循环遍历集合数据
    for($i=0,$count=count($sets); $i<$count-1; $i++){
    1. // 初始化
    2. if($i==0){
    3. $result = $sets[$i];
    4. }
    5. // 保存临时数据
    6. $tmp = array();
    7. // 结果与下一个集合计算笛卡尔积
    8. foreach($result as $res){
    9. foreach($sets[$i+1] as $set){
    10. $tmp[] = $res.$set;
    11. }
    12. }
    13. // 将笛卡尔积写入结果
    14. $result = $tmp;
    }
    return $result;
    }

//定义集合
$sets = array(
array(‘白色’,’黑色’,’红色’),
array(‘透气’,’防滑’),
array(‘37码’,’38码’,’39码’),
array(‘1款’,’2款’)
);
$result = CartesianProduct($sets);
print_r($result);

输出:

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学