0

この例で可能な組み合わせの数を見つけるための式は何ですか:AZと0-9から4文字を生成しますが、それらは交互になります。例:L7W8、Q6N6、H3P1など。

PHPコードで説明するには:

$length = 4;

$pool_1 = explode(',', 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z');
$pool_2 = explode(',', '1,2,3,4,5,6,7,8,9,0');

$s = '';

for ($i = 0; $i < $length; $i++)
    $s.= ($i % 2) ? $pool_2[array_rand($pool_2)] : $pool_1[array_rand($pool_1)];        

echo $s;

$ lengthが4の場合、可能な組み合わせの数を取得するための式は何ですか?

4

4 に答える 4

1

交代は、選択肢の総数には影響しません。

単純に26*10 * 26*10です。

文字の繰り返しを禁止すると、26 * 10 * 25*10になります。

于 2012-10-03T11:23:30.860 に答える
1

答え26 * 10 * 26 * 10length = 4

説明:

最初のポジションでは、26の選択肢があります。2番目に、あなたは10を手に入れました。可能なバリエーション:3番目の位置に26 * 10、あなたは再び26の選択肢を手に入れました。したがって、可能なバリエーションが得られます:(26 * 10)* 26

等々..

これは基本的な組み合わせ論です。26から1を選択すると、数学的には26C1に等しいことが示され26/1 = 26ます。

NCR = (N.N-1.N-2 .. N-R-1)/(1.2.3 .. R)

于 2012-10-03T11:31:35.693 に答える
0

最終的な文字列の文字ごとに、可能な挿入の数を乗算します。

Choice of A-Z = 26
Choice of 0-9 = 10

Combining A-Z and 0-9:  26 * 10 = 260
Combining A-Z and A-Z:  26 * 26 = 676
Combining 0-9, A-Z, 0-9: 10 * 26 * 10 = 2600
于 2012-10-03T11:09:11.373 に答える
0

独自の組み合わせを探している場合、式は次のようになります。

(26 * 25)/ 2!*(10 * 9)/ 2!= 14625

分析:

上記の数式は、文字と数字の両方に一意の組み合わせが必要であることを前提としています。たとえば、B1A0がシーケンスの最初の値になり、Z9Y8が最後の値になります。A0B1、A1B0、またはB0A1はすべて重複しており、上記の式には反映されていません。これらも許可できる場合、式は次のようになります。

26 * 25 * 10 * 9 = 58500

文字と数字の重複を許可できる場合、たとえばAA00の場合、式は次のようになります。

26 * 26 * 10 * 10 = 67600

また、$lengthを2つの別々の変数に分割することをお勧めします。1つの変数は文字用で、もう1つの変数は数字用です。したがって、たとえば、一意の組み合わせを探している場合、コードは次のようになります。

$NumLetters = 26;
$NumNumbers = 10;
$LettersLen = 2;
$NumbersLen = 2;

$NumCombos = $NumLetters * ($NumLetters-1) / gmp_fact($LettersLen) * $NumNumbers * ($Numbers-1) / gmp_fact($NumbersLen);

$NumbersLenまたは$LettersLenが常に2であることがわかっている場合は、gmp_factの呼び出しを削除して、番号2に置き換えることができます。

于 2012-10-03T15:23:27.713 に答える