0

Click here to check question image

こんにちは、私はこの質問を持って、この関数の実行時に分析することはできませんが、私は間違って持って、私はちょうどこれを理解していません。 これは、このネストされたループの正確なランタイムを取得しようとしています。

具体的には、「for i = 2、inner loop runtime:2n-2」まで理解できます。しかしその後、私は理解できません。

質問1)

まず、それはFor i=n, inner loop runtime is n+1を言います。しかし、これは私の見解からはわかりません。 j = 3 = n < 2 * n = 2 * 3 = 6なので、n = 3とし、i = 3のときに外側ループが最後のループを実行すると、jは3回(3から5まで)内部ループを実行します。しかし、答えはinner loop runtime is n+1と書いてありますが、n+1に3を入れると4倍になります。なぜこの答えが正しいのか分かりません。

質問2)

がどのように私は答え 2n+(2n-1)+(2n-2)+...+(n+1)から 1.5n^2 + 0.5nの最後のフォームを得ることができますか?どのように前者が数学的にどのようになるのか全体的なステップを教えてくれますか?具体的にどのように 2n + (2n-1) + (2n-2) + ... + (n+1) n*n + (1+2+3+...+n)になるのですか?私は式が n=(n+1)とここで使用されていると思うが、それは私にとっては役に立たない。

ここには数式はありますか?

+0

を参照してください。これは理解する方がはるかに簡単です最初の和を 'n +(n + 1)+(n + 2)+ ... +(n + n)'と書くと、次のステップにどのように到達するかがはっきりしているはずです。 – Dukeling

答えて

0

質問1

あなたは内部ループランタイムi番目のために、正しいですが、2N-Iする必要があり、したがって、I = nに、内部ループのランタイムがn個でなければなりません。答えは間違っています。

質問2

正解はあるべき

2N +あなたが別の合計を構築することができますされて何ができるか(2N-1)+ ... + nは

シーケンス

N +(N + 1)+ ... + 2N

すべてのi = 0..n に対して2n-iをn + iと一致させます。したがって、(n + 1)項が3nなので、2つの全く同じシーケンスの合計が3n(n + 1)したがって、1列の合計が1.5N(N + 1)である

それとも、単に算術演算の進行の合計のための式を適用することができ、wikiページに https://en.wikipedia.org/wiki/Arithmetic_progression