どう書く2

取り敢えず、まずはシンプルに。
Collatz予想(角谷予想)

#! /usr/bin/python

def g(i, r):
  r = r + 1
  if i == 1:
    return r
  if i % 2 == 0:
    return g(i / 2, r)
  if i % 2 == 1:
    return g(3 * i + 1, r)

if __name__=='__main__' :
  h = k = j = 0
  for i in range(1, 101):
    k = g(i, 0)
    if h < k:
      h = k
      j = i
print "h(100) = " + str(j) + ", g("+ str(j) +") = " + str(h)

何か思いついたらまた書く。