- 153 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:47:29 ]
- >>148
def collatz(n): while n > 1: yield n n = n % 2 and 3*n + 1 or n/2 >>> f = collatz(13) >>> f.next() 13 >>> f.next() 40 >>> [x for x in f] [20, 10, 5, 16, 8, 4, 2] return [リスト] っぽいけど操作すると要素が消費されてくのね… 部分リストを、返せば計算過程が [[13],[13,40],[13,40,20],[13,40,20,10],…] >>> t_colltz(13) 13 13 -> 40 13 -> 40 -> 20 13 -> 40 -> 20 -> 10 … 便利?
|

|