Pythonでいくつかアルゴリズムを記述してみる。
総和
総和は非常に基本的なアルゴリズムです。ここでは1から10までの総和を計算するアルゴリズムを示してみます。
1 for i in range(1,11):
2 summation += i
これは単純すぎます。通常は以下になります。
1 n = 10
2 summation = n * (n + 1) / 2
built-in function の sumを利用する手もあります。
1 summation = sum(range(1, 11))
初期値からの連続する値であれば、2番目の方法がもとも速度的には早いです。また rangeはあまりおおきな値をあつかえませんし、xrangeには python-Bugs-1003935(python2.4では修正済み)がありますので巨大数では2番目の方法以外は選択できません。
再帰
再帰は通常メモリを多量に消費しますが、アルゴリズムの表現には非常に便利です。
素数判定
1 def subprime(n, m):
2 if ((m * m) > n):
3 return True
4 elif ((n % m) == 0):
5 return False
6 else:
7 return subprime(n, (m + 1))
8
9 def prime(x):
10 if ((type(x) == int) and (abs(x) > 1)):
11 return subprime((abs(x)), 2)
12 else:
13 return False
1 for i in range(0, 100):
2 if (prime(i) == True):
3 print i
などとすれば素数が表示されます。