2)自然数の和
アルゴリズム比較
1)鶴亀算
-
課題
つるとかめの合計と足の合計からそれぞれの数をもとめる解き方について
-
方法1
すべてがウサギと仮定した場合、足の数の和に差が生じ、これはウサギと亀の足の数の差の2本から生まれたものである。よって、この足の数の差を2で割れば亀の数を求めることができるというプログラム
-
方法2
ウサギの数を1とすると、ウサギと亀の足の数の和は4×1+2×亀の数になる。そこで、ウサギを2、3,4・・・進めていき、足の数の和が一致するところを見つけるプログラム
-
課題
自然数1からNまでの自然数の和を求める解き方について
-
方法1
1+2+3・・・(n-2)+(n-1)+n
式の通りに順番に足していくというプログラム -
方法2
「1から100までの自然数を足すといくつになるか計算しましょう。」という問題に対してガウス少年が先生を驚かせた計算方法
1 + 2 + 3 ・・・ (n-2)+ (n-1)+ n
n +(n-1)+(n-2) ・・・ 3 + 2 + 1
------------------------------------------------
(n+1)+(n+1) + (n+1)
・・・ (n+1) + (n+1) + (n+1)
上記のように、式を入れ替えて足すとn+1がn個できるので、目的の自然数の和は2で割ると求めることができるというプログラム
3)最大公約数
-
課題
2つの数の最大公約数を求める解き方について
-
方法1
最大公約数は小さい方の数を越えることがないので、小さい数から始めて、1つずつ減らしていった数で2つの数を割る。それぞれ割ったときの余りが両方とも0になるまで繰り返して見つけるプログラム
-
方法2
大きい方の数を小さい方の数で割って余りを求め、この余りで小さい方の数を余りで割る。このことを余りが0になるまで繰り返して見つける(ユークリッド互除法)プログラム
4)並べ替え
-
課題
データを小さい順に並べ替える方法について
-
バブルソート
データの先頭から順に、隣り合う2つの要素を比較して、大小が逆になっていたら交換する。ことを最後まで繰り返して整列させるプログラム
-
挿入ソート
先頭から2つの要素を比較して小さい方を先頭に、大きい方を2番目に置く。次に3番目の値を取り出し、先頭・2番目と順に比較し、適切な位置に挿入する。4番目以降を同様にして最後まで繰り返して整列させるプログラム
5)検索