ホームページ >バックエンド開発 >PHPチュートリアル >連続する 1 を含まないバイナリ文字列の数を数える PHP プログラム
連続しないバイナリ文字列を数える概念を説明する例を考えてみましょう。
###例###長さ 3 の可能なバイナリ文字列は、000、001、010、011、100、101、110、111 です。
ただし、カウントする必要があるのは、連続する 1 を持たないバイナリ文字列だけです。したがって、文字列 011、101、および 111 をカウントから除外する必要があります。
残りのバイナリ文字列を分析してみましょう。
PHP プログラムは、連続する 1 のないバイナリ文字列の数をカウントします。
dp[1] = 2 を使用して配列 $dp を初期化し、カウントが次のものであることを示します。それぞれ長さ 0 と 1 つの文字列。次に、ループを使用して、長さ $i - 1 と $ のカウントを合計することで、長さ 2 の残りのカウントを $n に埋めます。 >i - 2. 最後に、長さ $n のカウントを返し、それを出力します。この特定の例では、コードは、連続する 1 を持たない長さ 5 のバイナリ文字列の数をカウントし、結果を表示します。 方法 2 リーリー ###出力### リーリー コードの説明 この PHP コードは、2 つの連続する 1 を含まない、長さ
$a[0] = $b[0] = 1 に設定されます。次に、ループを使用して長さ 1 から $n-1 を計算します。長さ $i のカウントは、配列 $a の長さのカウント $i-1 を長さ a のカウントに加算することによって取得されます。 >$i-1 は配列 $b から取得されます。また、配列 $b の長さ $i のカウントは配列 ## から取得されます。 #$ 長さ $i-1 のカウントは a によって取得されます。最後に、コードは長さ $n-1 のカウントと長さを配列 に返します。 $a. ##$n-1 のカウントの合計は配列 $b から取得され、連続する 1 を含まないバイナリ文字列の総数を表します。この特定の例では、コードは長さ 5 のカウントを計算し、結果を表示します。 ###結論は### 要約すると、最初の方法は動的プログラミングを利用し、基本ケースで配列を初期化し、より長い長さのカウントを繰り返し計算します。最初の 2 つの長さのカウントを加算することで結果を効率的に計算します。 2 番目のアプローチは、より単純なアプローチで、2 つの配列を使用してカウントを保存し、以前の長さのカウントに基づいて繰り返し更新します。 2 つの配列を個別に合計することなく、合計数を直接計算します。どちらの方法でも、連続するバイナリ文字列を除いてバイナリ文字列を正確にカウントできます。どちらの方法を選択するかは、特定の要件とパフォーマンスの考慮事項によって異なります。
以上が連続する 1 を含まないバイナリ文字列の数を数える PHP プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。