【blog.hellorusk.net に移行しました】

旧・技術メモ(blog.hellorusk.net に移行しました)

Python

Scrapbox API のラッパーを書いてみた

よく使わせてもらっている Scrapbox が, 実は API を提供していることを昨日知った. scrapbox.io 前から一度APIラッパーというものを書いてみたいなと思っていて, Mastodon とか Last.fm とかやろうとして規模の大きさに挫折していたけど, この Scrapbox API…

線形計画ソルバー PuLP で強双対性・相補性の確認

線形計画問題はなんとなくエクセルとかで解くイメージがあったけれど, Python にもちゃんとライブラリがあった github.com ちょっと使いたくなったので触ってみます 線形計画問題において, (主問題) (双対問題) のそれぞれの実行可能な最適解を とすると…

Monadic Memoization in Python

関数の再帰呼び出しにおいて値を保持しておくことで計算が高速化されるメモ化という手法が知られています. 例えば以下のようにして80番目のフィボナッチ数が高速に求まります. d = [0 for i in range(100)] def fib(n): if n <= 1: return n if d[n] != 0: r…

NFAをDFAに変換して状態数最小化する

大学の試験で「与えられた言語を認識するような状態数最小の有限オートマトンを答える」問題が頻出されているため, 検算用のプログラムを書いてみます. NFA の入力形式 input.txt として以下のように与えます. 2 0 0,0 1,0, 1,2,2, 2,3,3, 3,,,1 一行目は[入…

tf-idfでアイドルマスターシンデレラガールズの楽曲の歌詞を分析してみる

はじめに BoWについて なぜtf-idfが必要なのか? scikit-learnでtf-idf 歌詞におけるtf-idfとは? アイドルマスターシンデレラガールズの楽曲の歌詞を分析する 歌詞からBoWを作る tf-idf が大きい単語は? idf が小さい単語は? おわりに はじめに 大学の授…

2018年度センター試験数学IAをPythonで解く

実行環境はJupyter Notebook 5.0.0 (+ Python 3.6.0) です. Jupyter上でSymPyのinit_printing()を使うと出力の数式が自動でTeX表記になってとても良いです. 問題: https://www.toshin.com/center/q/sugaku-1a.pdf 解答: http://www.dnc.ac.jp/albums/abm.php…

シンプレクティック法をシミュレーションで理解する

なんでこんな記事書いたの? やること 調和振動子 シンプレクティック性とは バネ振り子 シンプレクティック法の弱点 なんでこんな記事書いたの? 解析力学をやっていたときシンプレクティック数値積分という考え方を知り興味を持った 簡単な力学系をシミュ…