タグ

ブックマーク / aike.hatenablog.com (3)

  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
    tanku
    tanku 2011/11/17
    "当の本人の竹内です"
  • Rubyでもっとも重要なライブラリは何か?PageRankで計算してみた - aike’s blog

    最近、PageRankを計算するPHPソースコードを公開している人がいたので、Rubyで書き直してみました。 PHPからRubyへは移植というよりほとんど写経のような感じでそのままポーティングできます。 pagerank.rb #!/usr/bin/ruby # original PHP source http://phpir.com/pagerank-in-php def calculatePageRank(linkGraph, dampingFactor = 0.15) pageRank = Hash.new tempRank = Hash.new nodeCount = linkGraph.length linkGraph.each {|node, outbound| pageRank[node] = 1/nodeCount tempRank[node] = 0 } change =

    Rubyでもっとも重要なライブラリは何か?PageRankで計算してみた - aike’s blog
    tanku
    tanku 2009/12/23
    "えーと、なんというか、ごめんなさい。"
  • Ruby1.9が入っていないと端末に「アナログ」と表示する.bashrc - aike’s blog

    Ruby1.9がいよいよ安定してきたようで、そろそろ試さなくてはと思っています。でも、なんというか必要に迫られないのでなかなか全面的な導入に踏みきれません。 というわけで、Rubyを1.9にするよう促すプロンプト設定を考えました。Rubyのバージョンがまだ1.8の場合、端末の右上に「アナログ」と表示されます。どうぞご利用ください。 .bashrcの最後に以下の内容を書くと設定できます。 ruby -v | egrep '^ruby 1\.9' >/dev/null if [ $? -ne 0 ]; then PS1="\033[s\033[1;72H\033[37mアナログ\033[39m\033[u$PS1" fi ※Ruby1.9は旧バージョンと互換性のない機能が一部あります。導入には充分注意してください。

    Ruby1.9が入っていないと端末に「アナログ」と表示する.bashrc - aike’s blog
    tanku
    tanku 2009/01/19
    地デジと違って、Ruby1.9 には乗り換えた方が幸せになれる!(といいなぁ)
  • 1