連続する 1 のないバイナリ文字列を数える概念を説明する例を考えてみましょう。
連続する 1 を含まない、長さ 3 のバイナリ文字列の数を数えたいとします。バイナリ文字列は、0 と 1 だけで構成される文字列です。
長さ 3 の可能なバイナリ文字列は、000、001、010、011、100、101、110、および 111 です。
ただし、カウントする必要があるのは、連続する 1 を持たないバイナリ文字列だけです。したがって、文字列 011、101、および 111 をカウントから除外する必要があります。
残りのバイナリ文字列を分析してみましょう。
000: 連続する 1 がないため、これは有効な文字列です。
001: 連続する 1 がないため、これは有効な文字列です。
010: 連続する 1 がないため、これは有効な文字列です。
100: 連続する 1 がないため、これは有効な文字列です。
110: 1 が連続しているため、これは無効な文字列です。
上記の分析から、連続する 1 のない長さ 3 の有効なバイナリ文字列が 4 つあることがわかります。
Number of binary strings without consecutive 1's: 13
この PHP コードは、動的プログラミングを使用して、連続する 1 を含まない長さ $n のバイナリ文字列の数を計算する countBinaryStrings という関数を定義します。これは、基本ケース $dp[0] = 1 および $dp[1] = 2 で配列 $dp を初期化し、次の文字列のカウントを表します。長さはそれぞれ 0 と 1。次に、ループを使用して、長さ $i - 1 と $i - のカウントを合計することで、長さ 2 から $n までの残りのカウントを埋めます。 2. 最後に、長さ $n のカウントを返し、それを出力します。この特定の例では、コードは長さ 5 で連続 1 のないバイナリ文字列の数を計算し、結果を表示します。
Number of binary strings without consecutive 1's: 13
この PHP コードは、2 つの連続する 1 を含まない、長さ $n の個別のバイナリ文字列の数を計算します。カウントを保存するために、$a と $b の 2 つの配列を定義します。基本ケースは $a[0] = $b[0] = 1 として設定されます。次に、ループを使用して長さ 1 から $ のカウントが計算されます。 n-1。長さ $i のカウントは、配列 $a からの長さ $i-1 のカウントと長さ $[ のカウントを合計することによって取得されます。 &&&]i-1 配列 $b から。さらに、配列 $b の長さ $i のカウントは、配列 $ の長さ $i-1 のカウントから取得されます。 a.最後に、コードは、配列 $a からの長さ $n-1 のカウントと、配列 [ からの長さ $n-1 のカウントの合計を返します。 &&&]$b、連続する 1 を含まないバイナリ文字列の合計数を表します。この特定の例では、コードは長さ 5 のカウントを計算し、結果を表示します。 結論
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3