n-ominoの列挙(Redelmeier's algorithm)

n-ominoとはn個の正方形で構成されるポリオミノ(Wikipedia)。 n-ominoの列挙を行うRedelmeier's algorithmをPythonで実装した。 速度検証 反転・回転を考慮しないn-ominoを列挙し、個数を数えた。所要時間は下記の通りだった。 n n-omino elapsed[s] 1 1 0.0…

ポリオミノの敷き詰め問題をDancing LinksとKnuth's Algorithm Xを使って解く

ポリオミノの敷き詰め問題を解くプログラムを書いた。効率的に解くためにDancing Linksというデータ構造を実装し、Knuth's Algorithm Xを使用した。 ポリオミノの敷き詰め問題とは こういうパズルがAmazonで売っている。結構難しい。 Amazon | 明治ミルクチ…

『選択しないという選択』のメモ

『選択しないという選択』を読んだ。デフォルトをおいてオプトイン・オプトアウト(選択しないという選択)にするか能動的選択を迫るか、どっちがどういうときにいいのか、更にパーソナライズを進めるとどうなるのか書かれている。 選択しないという選択: ビ…

urllibとBeautifulSoupでスクレイピングするときに調べたこと

Python3.6でリクエスト部分にurllib、パース部分にBeautifulSoup4を使って、スクレイピングをするときに調べたことを中心に使い方をまとめた。

メモ: 集合知プログラミング2章 推薦を行う

2章 - 推薦を行う 協調フィルタリングについての章 類似度を求める関数 入力 どのユーザーが、どのアイテムに、何点付けたか。 どのユーザーとどのユーザーの類似度を計算するか。 pref = [ {'A':5, 'B':4, 'C':1, 'D':0}, {'C':1, 'D':0}, {'A':4, 'B':2, '…

Competitive Programming Advent Calendar 2015, 2016まとめ

Competitive Programming Advent Calendar 2015, 2016を中心に、言及されている記事を集めました。 私が特に「いいね」と思ったものについては★を付けています。

Python3, C++11, JavaScriptでの実行時間計測

Python3,C++11,JSの実行時間計測まとめ