ホームページ > バックエンド開発 > PHPチュートリアル > 0 ~ 8 の数字の順列はいくつありますか?PHP でそれらを生成するにはどうすればよいですか?

0 ~ 8 の数字の順列はいくつありますか?PHP でそれらを生成するにはどうすればよいですか?

DDD
リリース: 2024-12-23 20:41:11
オリジナル
757 人が閲覧しました

How Many Permutations Are There of the Numbers 0-8, and How Can I Generate Them in PHP?

考えられるすべての順列の計算

数学において、順列とは、オブジェクトを特定の順序で並べたものです。この概念は、潜在的な配置の数が膨大になる可能性がある数値のセットを扱うときによく発生します。

次のシナリオを考えてみましょう: 0 から 8 までの数値のセットがあります。目的は、すべてを生成することです。これらの数値の可能な順列を計算し、各セットがすべての数値を 1 回だけ利用するようにします。

順列の数を計算するには、次の順列を使用します。式:

nPk = n!/(n-k)!
ログイン後にコピー

ここで、n は要素の総数を表し、k は選択された要素の数を表します。この例では、要素 n = 9、k = 9 となり、次のようになります。

9P9 = 9! = 362880
ログイン後にコピー

PHP で順列を生成するには、O'Reilly の「PHP Cookbook」(レシピ) で概説されているアルゴリズムを利用できます。 4.26):

function pc_permute($items, $perms = array()) {
    if (empty($items)) { 
        print join(' ', $perms) . "\n";
    }  else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
             $newitems = $items;
             $newperms = $perms;
             list($foo) = array_splice($newitems, $i, 1);
             array_unshift($newperms, $foo);
             pc_permute($newitems, $newperms);
         }
    }
}

pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));
ログイン後にコピー

このコードを実行すると、362880 個の可能な順列が生成されます。 0 から 8 までの数字。

以上が0 ~ 8 の数字の順列はいくつありますか?PHP でそれらを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート