发布于 1970-01-01 08:00
  • 2 个回答
    • 没有什么公式可以实现,公式其实就是算法,算法就可能会有循环

      <?php
      $arr = [
          'a'=>[0,1,2,3],
          'b'=>[0,1,2,3,6,7],
          'c'=>[1,2,3,4,7,8,9],
          'd'=>[6,8,1,3,5]
      ];
      
      $arr_len = array();
      foreach($arr as $item) {
          $arr_len[] = count($item);
      }
      // 以上循环可以统计字数组的长度
      
      $res = 0; // 要输出的结果
      $c_arr_len = $arr_len;
      foreach($arr_len as $k1=>$v1) {
          unset($c_arr_len[$k1]); // 处理了一个数之后删除
          if(count($c_arr_len)>0) {
              foreach($c_arr_len as $k2=>$v2) {
                  $res += ($v1*$v2);
              }
          }
      }
      var_dump($res);//得到结果,其实不需要产生你那个$new数组
      2022-12-01 14:59 回答

    • 2*(a1*a2 + a1*a3 + ... + a2*a3 ...) === ( a1 + a2 + a3 + ... )**2 - (a1**2 + a2**2 + ...)
      然後你可以用map和reduce來避免寫循環
      但是計算複雜度不變的, 還是n^2

      2022-12-01 14:59 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有