2010-09-10から1日間の記事一覧

“最も簡単に fib を高速化する方法”を Squeak Smalltalk で

二つ値を返せば良いんですよ。メモ化なんてしなくていい。def fib_i(n) if n == 1 [1, 1] else x1, x0 = fib_i(n-1) [x1 + x0, x1] end enddef fib(n) fib_i(n)[0] end 最も簡単に fib を高速化する方法 - ドレッシングのような Squeak Smalltalk でも試して…

斜め方向から fib を高速化する方法

id:sumim:20100910:p1 に絡めて、せっかくなら Smalltalk ならではの変わった方法もひとつ…とひねり出してみたのがこちら。 Integer >> fib | temp1 temp2 mine me sender | temp1 := 0. temp2 := 1. self > 1 ifTrue: [(self - 1) fib]. mine := temp1 + te…