Python
浮動小数点数の時系列データを圧縮するのに xor encoding という手法があるそうだ。 Gorilla の論文 http://www.vldb.org/pvldb/vol8/p1816-teller.pdf 時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ …
Bloom Filter を実装してみた。簡単な実装なので、速度や空間効率は悪いです。 Bloom Filter というのは、確率的データ構造の一つで、ある要素が集合に含まれるかどうかを試験するものです。空間効率が非常に良いのが利点で、偽陽性、つまり集合に含まれない…
inline_table という名前のソースコードに ASCII テーブルを埋め込むための Python モジュールを作ってみました。 GitHub - fjkz/inline_table: Python module for embedding text tables into source-code 以下のように reStructuredText で書かれたテーブ…
実行可能なテストスクリプト群のディレクトリ構成を定義して、整理するためのフレームワークを作りました。半年ほど前に作ってたやつです。*1塩漬け期間を経たのでリリースとします。 GitHub - fjkz/ttap: ttap: a testing framework with file system hiera…
複雑な世界のありようを理解するのに、「グラフ」の可視化だとか分析はすごく有用なのではと考え始めたので、グラフについて勉強してみる。 動くおもちゃがないと楽しくないので、いいのかどうか知らないが、検索して出てきた graph-tool というツールで可視…
前回: 構造化されたテストスクリプト群の実行ツール - 超ウィザード級ハッカーのたのしみ TT-Runner: テストスクリプトのディレクトリ構造フレームワーク - 超ウィザード級ハッカーのたのしみ TT-Runner の記録 1 - 超ウィザード級ハッカーのたのしみ GitHub…
TT-Runner: テストスクリプトのディレクトリ構造フレームワーク - 超ウィザード級ハッカーのたのしみ GitHub - fjkz/ttap: A Test Scripts Runner TT-Runner (Test scripTs Runner あるいは Tree Tests Runner) というのをシコシコと作っています。*1 以下、…
以前書いたテストツールがある程度できたので、公開する。TT-Runner と名付ける。 GitHub - fjkz/ttap: A Test Scripts Runner 結合テスト以降のユニットテストフレームワークがうまいこと使えなくて、スクリプトをだらだらと書いているような場合を想定した…
テストコードってどんどん増えていく。だらだらスクリプトを書くのは簡単だが、すぐに収拾が付かなくなり、経済的に耐えられないレベルで混乱してくる。何のテストをしているのかももちろんわからないが、動かし方も分からないし、どうなったらpassなのかも…
小さい頃にノートの隅や地面で良く遊んだ○×ゲームを計算機で解いてみた。 ○×ゲーム程度であれば、スクリプト言語を用いて、かつ枝刈りとかせずに終端までミニマックス法で全探索しても十分に解ける。ミニマックス法というのは、要するに負けない手を打てば勝…
KdV方程式を数値的に解いてみた。*1 KdV方程式は、以下の式で表される方程式です。 非線形の偏微分方程式だけれども、手計算で頑張ることができて、よく研究されてきた方程式です。バーガース方程式と同様の非線形項に加えて、3回微分の項がある。この項は…
「Jupyter」という主にPythonのためのWebベースのシェルに感動した。 インストールと起動 Ubuntu14.04なら、 $ sudo apt-get install build-essential python3-dev $ sudo pip3 install jupyter でインストールできるはずです。 $ jupyter notebook と打つと…
コードの行数を測るツールはいろいろあるが、diffで見ることが前提で数えるツールでいいのを知らなかったので手慰みに作った。 GitHub - fjkz/tloc: A trivial code line counter for diff. こんな感じでファイルごとに行数を出してくれる。 $ git diff | ./…
メモ 所要時間を3m10s48msみたいに表示するプログラムがいて(やめてほしい)、この値をミリ秒に変換したい。 こんな感じかな〜? (2015-03-09) ダメだったので直しました。正規表現は苦手だ #!/usr/bin/python """ Convert a time string like 1h2m3s4ms5us…
前回 ニューラルネットワークで囲碁の終局を判定 - 超ウィザード級ハッカーのたのしみ 何パターンか試してみた。 入力値は、終局図から黒石を取り除いたものと白石を取り除いたものを並べたものである。石がある点を1.0、石がない点を0.0としている。黒石が1…
PyBrainでbuildNetwork関数を使わずにネットワークをつくる方法. バイアスパラメータを入れるには,BiasUnitを作って各レイヤーにつなげる必要がある. 例によってXORを学習させる. from pybrain.datasets import SupervisedDataSet from pybrain.supervis…
ニューラルネットワークに囲碁を学習させようとしている.前回はとりあえずニューラルネットワークを使ってみるということをしてみた. 学習を始めるには,学習用のデータが必要となる.棋譜はSGFファイル形式でインターネットに転がっているが,人間の棋譜…
ちょっとニューラルネットワークで試したいことがあるので,最初の段階として,PyBrainを用いてニューラルネットワークというものを使用してみる. 階層型ニューラルネットワークの例題としてXOR演算を学習させる. 以下,コード from pybrain.datasets impo…
前回 数学定数でブラウン運動 - 超ウィザード級ハッカーのたのしみ 1億ステップでやってみた. Mathematical Constants - Millions of Digits から数学定数のデータはもらった. メルセンヌツイスター 2の平方根 3の平方根 自然対数の底 円周率 に加えて,…
擬似乱数を可視化するためにブラウン運動を計算している. 今回は,数学定数の各桁を外力としてみる. 数学定数のn桁目をdとしたときに,時間n-1からnまでに粒子に与える外力を (F_x, F_y) = (cos(2 * pi * d / 10), sin(2 * pi * d / 10) とする. 試した数…
題名の通り.擬似乱数を可視化するために,ランジュバン方程式に基づくブラウン運動を計算してみた.*1 結果の絵. コードは以下. import math import random class Particle(object): ''' A particle moving in 2D space. ''' position_x = 0.0 position_y…
小ネタを仕入れたのでメモ。 PythonのSimpleHTTPServerというモジュールを使用すると、一瞬でHTTPサーバーを立ち上げることができる。 python -m SimpleHTTPServer [Port, default=8000] とコマンドラインで打てばカレントディレクトリを公開するHTTPサーバ…
前回:PyPyを試してみた - 超ウィザード級ハッカーのたのしみ PyPyを試してみたら、爆速だった。この謎を解明すべく論文を読んでみた。あまり理解できないのだが、現状理解できたところまでメモする。頭が整理できていないので、まとまっていない。 PyPyは以…
PyPyというPythonの処理系があるそうな。これが速いらしいので、どんなものか試してみた。 インストールはPyPyのホームページからバイナリをダウンロードしてくるだけです。 [追記]Ubuntuだとapt-getで取れました。 試すのは毎度おなじみのたらい回し関数(…
前回 、『ラムダ式で再帰関数を書く - 超ウィザード級ハッカーのたのしみ 』でラムダ式について、学んでいたらPythonで遅延評価をする方法が理解できた。 実験に使うのは、たらい回し関数だ。 普通のたらい回し関数は以下の通り。 def tarai(x, y, z): retur…
前回『Pythonで遅延評価 - 超ウィザード級ハッカーのたのしみ』に引き続きたらい回し関数で遊んでみる。 今回は、メモ化(memoization)で高速化を試みる。 メモ化で高速化したたらい回し関数は以下のとおり。 memo = {} def memo_tarai(x, y, z): global memo…
Java8で導入されたと話題のラムダ式を勉強中。コーディングの観点からはただの無名関数以上の意味はないが、いろいろ深いみたい。 Pythonだと以下のように書く >>> add = lambda x, y: x + y >>> add(1, 2) 3 では、再帰関数はどうすればよいのだろう? 例え…
『コンピュータは割り算が苦手』の記事で整数の除算演算も乗算・加減算に比べると遅いことを知った。『ハッカーの楽しみ』に普通に書いていた。整数除算について調べたら、もう一つ非常に基本的なことを知らないことを知った。負の整数を割ったときの値につ…
浮動小数点数演算では割り算は遅いからやっちゃだめというのは、数値計算の常識ですが、Pythonで実験してみよう。Pythonで数値計算なんてしねえよ、あるいは速度を考えなきゃならないことをさせないよ、とは思うが、Pythonのが楽なので。実行時間の計測にはt…