ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルを使用して順列と組み合わせを計算する方法

PHP_PHP チュートリアルを使用して順列と組み合わせを計算する方法

WBOY
WBOYオリジナル
2016-07-13 10:25:14974ブラウズ

数日前、ビジネス上の必要性から順列と組み合わせを計算するコードを書きました

コードをコピーしてください コードは次のとおりです:

/**
* 解くべき数学的問題: C(a,1) * C(b, 1) * ... * C(n, 1) の組み合わせを計算します。ここで、C(n, 1) は n 個の要素の数を表します任意の要素を選択してください
*
* 実際に解く問題の例: ある学年には m 個のクラスがあり、各クラスの人数は異なります。各クラスから 1 人を選択してグループを形成する必要があります。 ,
* 学校行事で学年を表すために、考えられる組み合わせをすべて挙げてください
* /
/* ################################## 計算を開始# ######## ######################## */
/**
* 配置して結合する必要がある配列
*
* 配列の説明: この配列は 2 次元配列であり、1 次元のインデックスはクラス番号を表し、2 次元のインデックスは生徒番号を表します
*/
$CombinList = array(1) => array(" Student10", "Student11"),
2 => array("Student20", "Student21", "Student22"),
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;
// それぞれの生徒を介して各ループを開始しますclass
foreach($StudentList as $Student)
{
$TempStartPosition = $StartPosition;
$SpaceCount = $CombineCount / count($StudentList) / $RepeatTime;
for($J = 1; $J


http://www.bkjia.com/PHPjc/825191.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/825191.html

技術記事

数日前、ビジネス上のニーズのため、順列と組み合わせを計算するためのコードを書きました。今日は、そのコードを次のようにコピーします。 ?php /** * 解決すべき数学的問題: C を計算します。 (あ...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。