タグ

ブックマーク / www.kmonos.net (12)

  • [KMP77] を読んでみた - d.y.d.

    17:53 14/12/22 ソートの逆流れ クイックソートってあるじゃないですか、クイックソート。 配列、たとえば [4,2,1,7,0,6,5,3] があったときに、 小さい方を左に、大きい方を右にまず適当に集める。 この「小さい方」と「大きい方」への二分割を、いわゆる再帰的に、 分かれたブロック両方で同じ事を繰り返していくと… なんと、小さい順に並んだ配列 [0,1,2,3,4,5,6,7] が出来上がるというアルゴリズムです。 逆向き! このデータの流れを「逆向きに」見てみたい。つまり、ソートが終わった最終状態から話が始まります。 しかも、さっきから説明なしで意味ありげにくっついていた、 「入力配列で元々どの位置にあったか」を表す値に注目していきます。 0の上に[4]がくっついているのは、最初は値0は配列のインデックス[4]の位置にあった、 ということを意味しています。(上のソート

    [KMP77] を読んでみた - d.y.d.
    kenichiice
    kenichiice 2014/12/27
    「値に関するクイックソートの流れを逆向きから眺めてみると、 [元々値が存在した位置] を基準にマージソートした動きになっていることがわかりました。」
  • d.y.d. 文字コード&ベイズ推定

    12:21 06/05/28 うたひめ 先日の記事に書いたように KOKIA にハマりまして、 とりあえず片っ端から聴いてみることにしました。まずは 1st アルバムの 『songbird』 から … …4曲目の "白い雪" ヤバい。超ヤバい。なんだこれ。ツボすぎる。 ベスト盤を聴いたとき感じた揺らぎなく落ち着いた歌唱力的な曲を期待して聴きはじめたら、 予想外の声質の歌が飛び込んできてびっくりしました。もちろん抜群に巧いのに かわりはないんですが、ずっと儚げな、ガラス細工みたいなイメージの、ああ、その、 つまり白い雪みたいな雰囲気の綺麗な声で。その声と奇跡的にマッチしたメロディ。 すごいなあ。9曲目の "ありがとう…" もベスト盤でのリテイクと比べて同じ印象で、 Amazonのreview で TenderBerry さんという方が近いことを書いておられました。 しかし書いてて自分の語彙の

    kenichiice
    kenichiice 2012/03/04
    「「直観主義命題論理という論理体系の命題 ⇔ 単純型付きλ計算の型」そして「自然演繹という証明システムでの証明 ⇔ 単純型付きλ計算のプログラム」の間の対応関係のことが Curry-Howard 対応 と呼ばれています。」
  • 正規表現しちへんげ! 第二夜

    09:25 10/12/31 年末まとめ 今年何やったっけ、と日記を読み返していました。何もやってないな…。 Polemy 作りました、くらい。 言語処理系作るのはやっぱり楽しいですね。 汎用言語として使う格的なものを作ろうとすると懲りすぎて一歩も進まなくなってしまう自分が見えるので、 来年は、そうだなあ、TopCoder/ICPC風コンテストに特化した言語というかC++へのトランスレータ、 くらいに絞って作ってみようかなあ。 書いた記事だと 最短性チェックの話 が自分では割と気に入っています。 これのもっとバグを許容するバージョン作れないか。 読んだ論文で面白かったのは "A Pearl on SAT Solving in Prolog" と "When Simulation Meets Antichains" (PDF) など。 あとは、今年読んで面白かったベスト5(順不同): 『

    kenichiice
    kenichiice 2011/04/01
    「正規表現しちへんげ! まとめ」
  • w.l.o.g. ギャップバッファ

    04:40 04/06/04 ピーステーブル PieceTable とも言う。文字列の Piece(小片)を繋げて、 一つの巨大な文書を表現する方式。 検索すると引っかかる文書のほとんどが AbiWord 関係なので、 このワープロソフトの主要な内部データ構造ということなのかな。 他に、MS-WordやOpenOffice.org関連の文書にも登場していて、 基的に単なるテキストエディタよりは、文字に付加情報をくっつける系の 編集ソフトに使われる場面が今のところ多いみたいです。 余談ですがAbiWordは、綱渡り的にですがBeOS版の開発が続いている貴重なワープロソフトなのです。感謝感謝。 概要 ファイルを読み込んだとしましょう。ABCDEFG、という7文字のファイル。 とりあえず、7文字分のOrigという名前のバッファを用意して、そこに格納します。 それと別に、Addという名前の空のバ

    kenichiice
    kenichiice 2011/01/05
    「特徴としては、文字列と文字列の結合が猛烈に速いのと、部分文字列を切り出す演算 (いわゆるsubstring)がかなり速いのと、 文字列のコピーが恐ろしく速いという点があります。」
  • d.y.d. 2倍だけじゃない

    10:01 10/07/20 それでも2倍だ 先日のvectorの伸長度合いの記事に関して 当に1.5倍のほうがメモリ効率がよいのか という反応をいただきました。とても興味深い。みんな読みましょう。 自分の理解メモ: 「再利用ができるから嬉しい」等の議論をするなら、 今までに確保したメモリ (1 + r^1 + ... + r^k) のうち、 有効に使えてるメモリ r^{k-1} (バッファ拡大直後) や r^k (次のバッファ拡大直前) の割合で評価してみようじゃないかという。 まず簡単のために再利用をしない場合を考えると、この割合はそれぞれ (r-1)/r^2、 (r-1)/r になります(途中計算略)。 この利用率が最悪になる瞬間 (r-1)/r^2 を最善にしよう、 という一つの指標で考えてみると、式を微分なりなんなりしてみると r = 2 で最大(25%)となることがわかります

    kenichiice
    kenichiice 2010/08/12
    「どうも、1.5 倍と 2 倍が人気があるようです。 1.5 の方がメモリ効率はいいけどコピー回数は多い、2 の方がメモリ効率は悪いけど、コピー回数は少なくて済む。」
  • NYSL(煮るなり焼くなり好きにしろライセンス)

    English NYSL Version 0.9982 A. ソフトウェアは Everyone'sWare です。このソフトを手にした一人一人が、 ご自分の作ったものを扱うのと同じように、自由に利用することが出来ます。 A-1. フリーウェアです。作者からは使用料等を要求しません。 A-2. 有料無料や媒体の如何を問わず、自由に転載・再配布できます。 A-3. いかなる種類の 改変・他プログラムでの利用 を行っても構いません。 A-4. 変更したものや部分的に使用したものは、あなたのものになります。 公開する場合は、あなたの名前の下で行って下さい。 B. このソフトを利用することによって生じた損害等について、作者は 責任を負わないものとします。各自の責任においてご利用下さい。 C. 著作者人格権は ○○○○ に帰属します。著作権は放棄します。 D. 以上の3項は、ソース・実行バイナリの双

    kenichiice
    kenichiice 2010/05/24
    「煮るなり焼くなり好きにしろライセンス。 」
  • テキストエディタを作るメモ

    初出:2001/12/12 最終更新:2005/07/25 私がGreenPadを作ろうとしたときに 調べてまわって作ったリンク集です。OSやToolkit提供のコンポーネントを 使うのではなく、「独自のテキスト編集コンポーネントを一から作る」場合に 参考となるものを集めました。Windows系に偏っている感が無きにしもあらず。 ソースコードの公開されているエディタやコンポーネント C GNU Emacs (色々な環境) JED (Unix,VMS,MSDOS,OS/2,BeOS,QNX,Win) Meadow (Win) nedit (Win) ne (Unix) Ng (AMIGA,Human68k,MSDOS,Unix) TextMaid (Win/GTK+) tolstoj (Win) vim (色々な環境) C++ Alpha (Win) GreenPad (Win) kajer

  • d.y.d. - 最短性をチェックする

    17:31 10/01/26 言語雑談会 言語雑談会 なるものに行ってきました。 自分は主に最近のD言語の話題 [PDF] [PPTX] についてと、 最近読んだ Pattern Calculus がイマイチ心に響かなかったという話と、 これも最近読んだ Prolog で SAT ソルバ という論文が格好良すぎて卒倒しそうです、などの話題を雑談していました。 SAT の話をしていてふと突然気づいたんですが、私が今までSATソルバに落としてみたことのある問題は、 すべて割と簡単に CNF(SATソルバがそのままべてくれる綺麗な形式の論理式) ができあがる問題だったようです、数独とか。 任意の命題論理式をCNFに変換できる指数爆発しない方法をそういえば知らないぞ俺!としゃべってたら soutaro さんが素晴らしい解説 をして下さいました。ありがたや。 あと shinhさんの 「コンピュータ

    kenichiice
    kenichiice 2010/01/28
    「返す解が本当に最短であることのチェックまでしてくれる迷路ソルバを作ろう。」
  • アルゴリズムコンテストの挑み方 (3) - d.y.d.

    17:19 08/11/27 TopCoder Code Jam の練習に……と思ってしばらく前から TopCoder のSRMに参加してたのですが、 せっかくなので cafelier@SRM に記録をつけることにしました。 どういう試行錯誤をしながら提出した時のコードにいたったのかを、 できるだけ詳細にメモろうと思っています。 426以前のは記憶から掘り起こして書いたのでちょい大ざっぱですが。 これまで何回かここで書いたような整然とした考え方を当に自分がしているかいうと、 してないよなー、と薄々思ってしまっているので、じゃあどういう風にやっているんだろうかと。 自分のふり見て我がふり直す。 20:26 08/11/24 論文 PLAN-X 2009 通ったみたいです。ばんざい。 ただでさえD論まったく間に合う気がしないのに、camera ready版なんて作ってる時間が… オートマト

    kenichiice
    kenichiice 2008/11/11
    「問題を見たらとりあえずグラフ化してみよう」
  • イヌネコ - d.y.d.

    03:14 08/08/31 LLFuture 行ってきました。まとめ記事は何百人も書いてそうなので、以下、これにかこつけて自分語りをする。 ☆ Larry Wall の基調講演。ひたすら Parser の話をしてて素晴らしかった。 ☆ 100年の言語…は、 Ypsilon の藤田さんが、エラーメッセージのわかりやすさについて考えてますか?という問いかけを されてたのが印象に残っています。個人的に この頃 から気になってるんですけども、 言語内DSL のようなものを作ること&そのDSLが正常動作するときに 裏でホスト言語で何が起きているかをまったく気にしなくていいようにすることは簡単でも、 そのDSLがそのDSLのシンタックスや静的セマンティクスとして間違っているときに適切なエラーを 出せるようにするのは非常に面倒、という感覚があります。ホスト言語の意味でのエラーを 出されてもユーザ側とし

  • C++ Library Links

    このページの他に、岡野原さんの "C++の便利ツール・ライブラリ" がオススメです。 標準ライブラリ STL その1。主に、リストやマップなどのコレクションに関する generic なデータ構造とアルゴリズム。 iostream その2。ストリーム入出力。 C.std その3。まだまだ現役。 boost 準標準。上の3つを超強力にした/するライブラリ達の集合体。 並列・ネットワーク・XML TBB (Thread Building Blocks) スレッドセーフなコンテナやスレッドをフル活用した並列アルゴリズムなど TinyXML 名前の通り軽量でまとまってるXMLパーザ。 MiX Minimalists XML parser。同じくXMLパーザ。 libcurlpp FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE, LDAP によるフ

  • Let's Boost

    Boost C++ Libraries の紹介サイトです。 :: by Google はじめに ご挨拶 Boost のインストール方法 参考リンク集 ニュース ◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14) 新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器) ◆ RSS つけました (2009/08/28) ◆ Version 1.40.0 と 1.39.0 対応 (2009/08/28) 新規ライブラリに関する Let's Boost のページ…: Signals2 (Signal/Slotライブラリ改良版) ◆ Version 1.38.0 と 1.37.0 対応 (2009/02/22) 新規ライブラリに関する Let's Boost のペー

  • 1