2016-09-16 12 views
-2

質問:ルビーの行合計奇数法の解を理解する必要があります

この三角形の行合計を行インデックスから計算します。

row_sum_odd_numbers(1); # 1 
row_sum_odd_numbers(2); # 3 + 5 = 8 
row_sum_odd_numbers(3); # 7 + 9 + 11 = 27 

...

Test.assert_equals(row_sum_odd_numbers(1), 1) 

Test.assert_equals(row_sum_odd_numbers(2), 8) 

Test.assert_equals(row_sum_odd_numbers(13), 2197) 

Test.assert_equals(row_sum_odd_numbers(19), 6859) 

Test.assert_equals(row_sum_odd_numbers(41), 68921) 

次のように質問を解決するには、次のとおりです。

def row_sum_odd_numbers(n) 
    return n**3 
end 

私はこのコードが答えを返すことを理解しています。私はそれが答えを返す方法を理解していない。なぜnの3番目の指数が奇数の行の合計を返しますか?

+0

これは単なる数学的なトリックです。それは説明することはできませんが、あなたはパターンを得ることができます! –

+1

おそらく、三角形や問題の定義を表示するのに役立ちます。この単純な答えに解決するのは三角形の性質です。おそらく、三角形の設計からの** 3が得られない場合は、maths.stackexchangeに問題を適応させることができます。 –

+4

私はプログラミングではなく、数学についての話題なので、この質問を議論の対象外とすることにしました。 –

答えて

2

です:)

最初の加数が何であるかを知ることができます: 最初の加数の前に我々は1 + 2 + 3 + ... + n-1奇数を持って、その量は((n-1)*n)/2です。ですから、最初のsummandは
((n-1)*n)/2 * 2 + 1 = (n-1)*n + 1です。行の前に
row_sum_odd_numbers(n)= (n-1)*n + 1 + (n-1)*n + 3 + (n-1)*n + 5 +...+ (n-1)*n + 2*n - 1 =
(n-1)*n*n + 1 + 3 + 5 + ... + 2*n -1 = n^3 - n^2 + n^2 = n^3

+0

読みやすいようにフォーマットしてください。それはOPと同様の解決策を探している人を助けるでしょう。 –

0

最初に、k番目の行が始まる番号を計算する必要があります。あなたが三角形を描く場合、三角形の対応する行の数の和

1 + \sum_{j=1}^{k-1}2*j = 
         = 1 + (2 + ... + 2*(k-1)) 
         = 1 + (2 + 2(k-1))/2*(k-1) 
         = k^2 - k + 1 

であることを認識することは難しいことではありません、その後2の増加とk^2 - k + 1始まるk数の和に等しいです。したがって、結果はそれだけで数学の計算だ

k*(k^2 - k + 1 + k^2 - k + 1 + (k-1)*2)/2 = k*k^2 = k^3 
1

N 1+2+..+(n-1)奇数番号があります

今、私たちは私たちの合計を計算する必要があります。これは等差数列の要素の和であるとして、それは行nの最初の数は、従ってn(n-1)/2 + 1番目の奇数

n(n-1)/2 

を合計します。

n番目の奇数

2n - 1 

あるので、行nにおける最初の(奇数)の数が、この結果を用いて

2(n(n-1)/2 + 1) - 1 = n(n-1) + 1 

で、行nの最後の(奇数)の数に等しいです最初の行番号n+1マイナス2

(n+1)n + 1 - 2 = n(n+1) - 1 

(代数的進行を形成する)行nn奇数の和は、したがって、アサーションを証明

n(n(n-1) + 1 + n(n+1) - 1)/2 = n^3 

あります。

関連する問題