最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用php計算排列組合的方法

 更新時間:2013年11月13日 09:48:33   作者:  
本文用PHP要解決的數學問題是算出C(a,1) * C(b, 1) * ... * C(n, 1)的組合情況,其中C(n, 1)代表從n個元素里任意取一個元素
前些天因為業(yè)務需要寫了一段計算排列組合的代碼,今天整理了一下,以備后用
復制代碼 代碼如下:

<?php
/**
 * 要解決的數學問題    :算出C(a,1) * C(b, 1) * ... * C(n, 1)的組合情況,其中C(n, 1)代表從n個元素里任意取一個元素
 *
 * 要解決的實際問題樣例:某年級有m個班級,每個班的人數不同,現在要從每個班里抽選一個人組成一個小組,
 *                       由該小組來代表該年級參加學校的某次活動,請給出所有可能的組合
 */
/* ################################### 開始計算 ################################### */
/**
 * 需要進行排列組合的數組
 *
 * 數組說明:該數組是一個二維數組,第一維索引代表班級編號,第二維索引代表學生編號
 */
$CombinList = array(1 => array("Student10", "Student11"),
                    2 => array("Student20", "Student21", "Student22"),
                    3 => array("Student30"),
                    4 => array("Student40", "Student41", "Student42", "Student43"));
/* 計算C(a,1) * C(b, 1) * ... * C(n, 1)的值 */
$CombineCount = 1;
foreach($CombinList as $Key => $Value)
{
    $CombineCount *= count($Value);
}
$RepeatTime = $CombineCount;
foreach($CombinList as $ClassNo => $StudentList)
{
    // $StudentList中的元素在拆分成組合后縱向出現的最大重復次數
    $RepeatTime = $RepeatTime / count($StudentList);
    $StartPosition = 1;
    // 開始對每個班級的學生進行循環(huán)
    foreach($StudentList as $Student)
    {
        $TempStartPosition = $StartPosition;
        $SpaceCount = $CombineCount / count($StudentList) / $RepeatTime;
        for($J = 1; $J <= $SpaceCount; $J ++)
        {
            for($I = 0; $I < $RepeatTime; $I ++)
            {
               $Result[$TempStartPosition + $I][$ClassNo] = $Student;
            }
            $TempStartPosition += $RepeatTime * count($StudentList);
        }
        $StartPosition += $RepeatTime;
    }
}
/* 打印結果 */
echo "<pre>";
print_r($Result);
?>

相關文章

  • CodeIgniter中實現泛域名解析

    CodeIgniter中實現泛域名解析

    這篇文章主要介紹了CodeIgniter中實現泛域名解析的方法,需要的朋友可以參考下
    2014-07-07
  • Laravel框架中的路由和控制器操作實例分析

    Laravel框架中的路由和控制器操作實例分析

    這篇文章主要介紹了Laravel框架中的路由和控制器操作,結合實例形式分析了laravel框架路由和控制器相關概念、原理及基本使用方法,需要的朋友可以參考下
    2019-12-12
  • php批量修改表結構實例

    php批量修改表結構實例

    下面小編就為大家?guī)硪黄猵hp批量修改表結構實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • PHP array_reduce()函數的應用解析

    PHP array_reduce()函數的應用解析

    這篇文章主要介紹了PHP array_reduce()的應用,本文通過代碼舉例給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • ThinkPHP通過AJAX返回JSON的兩種實現方法

    ThinkPHP通過AJAX返回JSON的兩種實現方法

    這篇文章主要介紹了ThinkPHP通過AJAX返回JSON的兩種實現方法,分析了ThinkPHP中內置的ajaxReturn函數的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • yii2 resetful 授權驗證詳解

    yii2 resetful 授權驗證詳解

    這篇文章主要介紹了yii2 resetful 授權驗證詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • PHP的imageTtfText()函數深入詳解

    PHP的imageTtfText()函數深入詳解

    這篇文章主要介紹了PHP的imageTtfText()函數深入詳解,圖文講解的很清楚,有感興趣的同學可以學習下
    2021-03-03
  • 實用的簡單PHP分頁集合包括使用方法

    實用的簡單PHP分頁集合包括使用方法

    收集了三個PHP分頁方法,總會有一個適合你用的。
    2013-10-10
  • php結合GD庫簡單實現驗證碼的示例代碼

    php結合GD庫簡單實現驗證碼的示例代碼

    這篇文章主要介紹了php結合GD庫簡單實現驗證碼的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 淺談php命令行用法

    淺談php命令行用法

    這篇文章主要介紹了淺談php命令行用法的相關資料,需要的朋友可以參考下
    2015-02-02

最新評論

英吉沙县| 阳山县| 志丹县| 望谟县| 荆州市| 华阴市| 库车县| 新郑市| 新竹市| 台山市| 五原县| 乌拉特前旗| 成武县| 琼中| 山东| 乌恰县| 嘉峪关市| 翼城县| 康平县| 乡宁县| 杂多县| 连江县| 平陆县| 芜湖市| 泸定县| 确山县| 黄梅县| 汕头市| 德昌县| 德安县| 固安县| 公主岭市| 邵阳县| 隆安县| 乐平市| 新竹市| 虞城县| 宁国市| 三江| 威海市| 胶南市|