studies

いろいろ勉強用備忘録的な感じ

python

高速化フィボナッチの計算量の理想と現実

前回書いた高速化フィボナッチでは、計算量をと見積もった。 今回はこの見積もりの妥当性を検討する。まず、 >>> from my import fib >>> from timeit import timeit >>> from matplotlib import pyplot as plt >>> x = range(2**7) >>> y = [ timeit('fib({…

pythonでフィボナッチ高速化

激しく既出という気がするけど、行列を使ってフィボナッチを高速化する。その前に、の計算を高速化するアルゴリズムを確認しておく。 def my_pow(x, n): if n == 0: return 1 elif n % 2: return x * my_pow(x, n-1) else: half_pow = my_pow(x, n/2) return…

pythonとhaskell, perl6で加重平均

python。 最後はnumpyの内積(ドット積)を使っている(ずるい?) >>> weight = [ 0.22, 0.14, 0.04, 0.12, 0.22, 0.26 ] >>> record = [ 64, 51, 132, 24, 19, 11 ] >>> sum( a * x for (a, x) in zip(weight, record) ) 36.42 >>> sum(map(lambda a, x: a…

pythonで順序を保つグルーピング

恒例の?問題をpythonでやってみる。 使うアルゴリズムは、perlで最後にやったのと同じ(いちおうバケットソートといえるだろうか?) studies.hatenablog.compythonのcollectionモジュールにあるOrderedDict(順序付き辞書)を使うと楽に書ける。 OrderedDi…

pythonとhaskellで素数のリストを作ってみる

今回はメモ程度。 リスト内包表記と、filter, mapを使った書き方。python。 >>> [n for n in range(2,100) if 0 not in [n%d for d in range(2,n)]] [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] >>>…

フィボナッチ数をたくさん出力すると放物線が現れる件

前回、pythonを使ってフィボナッチ数の第n項を返す関数をいくつかのバリエーションで実装した。 ところで、pythonではメモリが許す限りいくらでも大きな整数を扱うことができる。 調子に乗って、前回作った関数でフィボナッチ数を(各項の間にスペースを一個…

python3はじめました:とりあえずフィボナッチ数列を書いてみる

ふと読み返してみると、いつからこのブログは旅行記になったのだろう、という感じである。 最近マンネリ気味だったので仕方がない。さて、なんとなく仕事も閑散期を抜けそうな気がするので、私も心新たに新しい言語を試してみている。 python3である。とりあ…