最初の10個の自然数について, その二乗の和は,
12 + 22 + ... + 102 = 385
最初の10個の自然数について, その和の二乗は,
(1 + 2 + ... + 10)2 = 3025
これらの数の差は 3025 - 385 = 2640 となる.
同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.
プログラムを作成しなくても解けそうですが, 折角なので計算機を使います.
- 1から100までの自然数のリストを求める.
- すべての要素の和を求め, その結果を2乗する.
- それぞれを2乗したリストを作り, すべての要素の和を求める.
ここに載せるほどのことはないと思いますが, 定義した手続きは次のようなものです.
(require srfi/1) (define (square n) (* n n))
計算結果は次のようになります.
ようこそ DrRacket, バージョン 5.3.3 [3m]. 言語: Pretty Big; memory limit: 512 MB. > (- (square (fold + 0 (iota 100 1))) (fold + 0 (map square (iota 100 1)))) 25164150 >
0 件のコメント:
コメントを投稿