--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2007/07/01

[今日のスクリプト] 3n+1問題

B4 Wiki - 問題集より、3n+1問題。

 1 #!/usr/bin/python
 2 #coding:utf-8
 3 
 4 def maxlength(val1, val2):
 5     def calc(val, cnt = 0):
 6         cnt += 1
 7         if val == 1:
 8             return cnt
 9         elif val % 2 == 0:
10             return calc(val / 2, cnt)
11         else:
12             return calc(3 * val + 1, cnt)
13     return max([calc(n) for n in range(val1, val2 + 1)])
14 
15 def main():
16     print maxlength(1,10)
17 
18 if __name__ == "__main__":
19     main()

結果

$ python 3nplus1.py
20
  • 関数のネーミングが苦しい。センスのなさが伺える。
  • 記事を投稿してから、こうすればもっと簡潔じゃん、という理由の訂正を3回ほど行った。投稿する前にもうちょっとソースコードを眺めて、その訂正を施してから投稿しよう。
スポンサーサイト

comment

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。