読者です 読者をやめる 読者になる 読者になる

正規表現の実装(python)

前回の記事で作ったεNFAを使って正規表現を実装できたのでまとめます。ソースは前回と同じくこのリポジトリに。 実装した正規表現 正規表現のすべての機能を実装するのは大変なので、実装するのは基本的なものだけにしました。 実装したのは 一文字 (“a"など…

pythonで無限リスト

この前pythonのジェネレータを使って作った無限リストには、一度計算した値を覚えておく機能がないため実行速度がとても遅いという問題がありました。SICPを参考にして試行錯誤した結果ラムダ式を使った遅延評価を使うことでメモ化付きの無限リストを作るこ…

ジェネレータで遊ぶ(python)

pythonにはジェネレータという組み込み型が存在し、値を逐次に計算する配列として使うことができます。ジェネレータを使って遊んだので書きます。

オートマトンをpythonで書く(続き)

この前作ったDFAをいくらか拡張したのでまとめます。ソースはgithubに。 NFA 講義ではDFAの次に非決定性有限オートマトン(Nondeterministic Finite Automata, NFA)が出てきたので、最初の拡張としてNFAを作りました。

凸包と記号摂動法

参考文献 図書館でたまたま目に入ったというだけの理由で計算幾何学の本を読みました。この本は説明のわかりやすさもさることながら、文章がうまくて読んでいて楽しかったです。 本の最初に乗っていたアルゴリズムを実装したので解説してみます。コードはgit…

pythonでスクリーンショットを正しくとる(Windows)

問題 pythonの画像処理モジュールPillowにはスクリーンショットをとる関数PIL.Imagegrab.grab()があります。しかしこれはWindowsの一部の環境だとうまく動きません。具体的には、スクリーンショットをとっても左上の部分しか記録されません。 from PIL impor…

オートマトンをpythonで書く

(非)決定性有限オートマトンがチューリングマシンより真に弱い計算能力を持つというのはどのオートマトンの教科書にも書いてあることです。このことが意味するのは、オートマトンでできることは全てチューリングマシンでできるということです。ということで…

VHDLの環境構築

学校の課題でVHDLを書きました。 そのためにQurtus PrimeをインストールしてQuartusとModelSimを使ったのですが、動作が遅かったり文字やボタンが小さかったりウィンドウを頻繁に切り替えたりする必要があったりと、とにかくストレスが溜まりました。 そこで…

絵を描くプログラム

エクセルとシェルとHTMLで絵を描くことができて、コードを少量追加すれば好きなもので絵を描くこともできるプログラムを書きました。 github.com このプログラムで何ができるかはgithubのREADMEに譲るとして、このプログラムの中身がどうなっているかここに…

日本語の文章を解析するためのクラス

前回作ったプログラムで青空文庫のテキストを普通の日本語の文章にすることに成功したので、それを解析するプログラムを書きました。長いプログラムなのでコピペ用のプログラムは張ってません。 github.com 動かす demoフォルダに漱石の文章がいくつか入って…

青空文庫のテキストを簡略化する

漱石没後100年ということで漱石の文章を解析してみようと思い立ちました。しかし青空文庫の文章にはルビや注があって解析ができる状態ではありません。また漱石の文章をなんの装飾もせず公開している物好きなサイトも見当たりません。 そこで解析のための下…

シェルで絵を描く

シェルには背景や文字の色を変える機能があります。通常はデフォルトの色が気に入らない場合に変更するのに使いますが、この機能を使って絵を描くプログラムを書きました*1。 動かす 記事の最後にあるシェルスクリプトを保存し、実行権限を与えて実行すると…

フォルダのサイズを表示するプログラム作った

この記事はIS17er Advent Calendarの18日目が空いていたので、「無いよりはなんかあった方がいいだろう」と思ってその日のうちに書かれたものです。 17日目の記事はこちら。Windows標準のエクスプローラはフォルダのサイズを表示してくれないので、目立たな…

クリッカーゲームを攻略する

クリッカーゲームを攻略しよう!