コードでの操作の数をカウントしようとしています

galmquist:

私は最近、Sedgewickのアルゴリズムブックを読んでいる、と私はかなり理解していなかった例に出くわしました...

問題のコード

このコードを使用して、Sedgewickは、if文が正確に実行されていることを言及してN X(N-1)(N-2)/ 6回

それは、なぜ私はかなり理解していない....私はトリプルネストされたループ、増加していることを上限とそれぞれがあることがわかり、なぜ6で割った値はありますか?

J4BEZ:

説明が少し安っぽいかもしれので、私は、私は数学が得意ではないだとご理解をお願いいたします。

「するために、if(a[i] + j[i] + k[i])コード内の文の」変数I、J、およびKを実行する配列のループのためのトリプルにおける「」インデックスアウトポイントは、文の条件に適合しなければならないことを(0<= i <j<k <N)右、?

例えば、Nは4であり、ここでは、画像の説明を入力します。選択は、4つの3が、4「I」に選択された場合、上記画像に示すように、あなたはその進行状況を見ることができる順列(4P3 = 4 ^ 3)を介して利用可能であると思われますforループ'J'でブロックされている(J = 4 + 1、J <4; J ++)。

私たちは、回数を取得することはできませんので、if文は、簡単な手順で実行されます。

必要なのは、ある組み合わせ(NCR

インデックスは0からN-1、ケースの数(I、J、K)に流れるときに満たすことは、i < j < k(=>ステートメントを実行できるかどうか)式NC3によって得ることができます。

ここでは、画像の説明を入力します。この式によれば、ステートメントであれば、正確にN X(N-1)(N-2)/ 6回実行します

私はあなたがそれをよく理解してほしいとそうでない場合は、コメントを残してください!ごきげんよう!

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=280156&siteId=1