久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      PHP實(shí)現(xiàn)笛卡爾積算法

      概念

      在數(shù)學(xué)中,兩個(gè)集合X和Y的笛卡兒積(Cartesian product),又稱直積,表示為 X × Y。設(shè)A、B是任意兩個(gè)集合,在集合A中任意取一個(gè)元素x,在集合B中任意取一個(gè)元素y,組成一個(gè)有序?qū)Γ▁,y),把這樣的有序?qū)ψ鳛樾碌脑?,他們的全體組成的集合稱為集合A和集合B的直積,記為A×B,即 A×B={(x,y)|x∈A且y∈B}。

      假設(shè)集合 A={a, b},集合 B={0, 1, 2},則兩個(gè)集合的笛卡爾積為 {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

      舉例

      給出三個(gè)域:

      D1 = { 張清玫,劉逸 } D2 = {計(jì)算機(jī)專業(yè),信息專業(yè)} D3 = {李勇,劉晨,王敏}

      則 D1,D2,D3 的笛卡爾積 D = D1×D2×D3,等于:

      {     (張清玫, 計(jì)算機(jī)專業(yè), 李勇),     (張清玫, 計(jì)算機(jī)專業(yè), 劉晨),     (張清玫, 計(jì)算機(jī)專業(yè), 王敏),     (張清玫, 信息專業(yè), 李勇),     (張清玫, 信息專業(yè), 劉晨),     (張清玫, 信息專業(yè), 王敏),     (劉逸, 計(jì)算機(jī)專業(yè), 李勇),     (劉逸, 計(jì)算機(jī)專業(yè), 劉晨),     (劉逸, 計(jì)算機(jī)專業(yè), 王敏),     (劉逸, 信息專業(yè), 李勇),     (劉逸, 信息專業(yè), 劉晨),     (劉逸, 信息專業(yè), 王敏) }

      這樣就把D1、D2、D3這三個(gè)集合中的每個(gè)元素加以對應(yīng)組合,形成龐大的集合群。本個(gè)例子中的D中就會(huì)有 2X2X3=12 個(gè)元素,如果一個(gè)集合有1000個(gè)元素,有這樣3個(gè)集合,他們的笛卡爾積所組成的新集合會(huì)達(dá)到十億個(gè)元素。假若某個(gè)集合是無限集,那么新的集合就將是有無限個(gè)元素。

      PHP代碼 – 輸出數(shù)組形式

      function Descartes() {     $t = func_get_args();                                    // 獲取傳入的參數(shù)     if (func_num_args() == 1) {                               // 判斷參數(shù)個(gè)數(shù)是否為1         return call_user_func_array(__FUNCTION__, $t[0]);  // 回調(diào)當(dāng)前函數(shù),并把第一個(gè)數(shù)組作為參數(shù)傳入     }     $a = array_shift($t);        // 將 $t 中的第一個(gè)元素移動(dòng)到 $a 中,$t 中索引值重新排序     if ( !is_array($a)) {         $a = [$a];     }     $a = array_chunk($a, 1);     // 分割數(shù)組 $a ,為每個(gè)單元1個(gè)元素的新數(shù)組     do {         $r = [];         $b = array_shift($t);         if ( !is_array($b)) {             $b = [$b];         }         foreach ($a as $p) {             foreach (array_chunk($b, 1) as $q) {                 $r[] = array_merge($p, $q);             }         }         $a = $r;     } while ($t);     return $r; }

      使用:

      $arr = [     [         '張清玫',         '劉逸'     ],     [         '計(jì)算機(jī)專業(yè)',         '信息管理與信息系統(tǒng)專業(yè)',         '電子商務(wù)專業(yè)'     ],     [         '2018級',         '2017級'     ] ]; $r = Descartes($arr);

      效果:

      array(12) {   [0]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(15) "計(jì)算機(jī)專業(yè)"     [2]=>     string(7) "2018級"   }   [1]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(15) "計(jì)算機(jī)專業(yè)"     [2]=>     string(7) "2017級"   }   [2]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(33) "信息管理與信息系統(tǒng)專業(yè)"     [2]=>     string(7) "2018級"   }   [3]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(33) "信息管理與信息系統(tǒng)專業(yè)"     [2]=>     string(7) "2017級"   }   [4]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(18) "電子商務(wù)專業(yè)"     [2]=>     string(7) "2018級"   }   [5]=>   array(3) {     [0]=>     string(9) "張清玫"     [1]=>     string(18) "電子商務(wù)專業(yè)"     [2]=>     string(7) "2017級"   }   [6]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(15) "計(jì)算機(jī)專業(yè)"     [2]=>     string(7) "2018級"   }   [7]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(15) "計(jì)算機(jī)專業(yè)"     [2]=>     string(7) "2017級"   }   [8]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(33) "信息管理與信息系統(tǒng)專業(yè)"     [2]=>     string(7) "2018級"   }   [9]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(33) "信息管理與信息系統(tǒng)專業(yè)"     [2]=>     string(7) "2017級"   }   [10]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(18) "電子商務(wù)專業(yè)"     [2]=>     string(7) "2018級"   }   [11]=>   array(3) {     [0]=>     string(6) "劉逸"     [1]=>     string(18) "電子商務(wù)專業(yè)"     [2]=>     string(7) "2017級"   } }

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號