2007-08-01から1ヶ月間の記事一覧

javascript-modeに乗り換えた。

js

こちらの方が良いかもしれない。 http://web.comhem.se/~u34308910/emacs.html

どう書く?(重複無し乱数)3

追記 これで、偏りが生じるsortなことははっきり分かる。 def myrand (rand+0.5).to_i end p (1..100000).inject(Hash.new(0)){|h,e| h[[1,0].sort_by {myrand}]+=1; h} #結果 #{[1, 0]=>74999, [0, 1]=>25001} 参考までに x=lambda {|arr| arr.each_index {…

関数内関数ってもしかしてふつう使わない?

特殊な書き方なのかな? 関数f内でしか関数gを使わないとき、こう書いている。 def f def g #f内でしか使われない何かの処理 end #gを使った処理 end でも、どこ書く?を見ても、関数の中で関数を宣言している人がいない。 なぜか、常に並列に関数を書いてい…

どう書く?面白い。

投稿しない ただ解くだけで面白いし。 ピラミッドを作る def f1 n; seed=(1..n).map{|i| "*" * (2*i-1))} width=seed[-1].length seed.each{|e| puts e.center(width)} end f1 4 #=> # * # *** # ***** #******* 与えられた文字列でピラミッド def f2_1(str)…

どう書く?(重複なし関数)2

注意 読んでも得することはありせん(ここに書いてあることは間違ってます。) コメントにどこが間違ってあるか書いてくれている人がいます。 元のはじまり sort_by {rand} だと統計的にわずかに偏りが生じるので、シミュレーションで大量のデータのシャッフ…

javascriptをつかった実験。

js

print("hogehoge"); //=> hogehogeこれは問題ない。 a=1; function () { a=2; } print(a); //=> 1関数の中のaは参照されないみたいだ。 階乗の計算(n!) function func(n) { if (n==0){ return 1} else{ return n*func(n-1)} } print(func(7)) //=>5040ここも…

lambda/procを使って読みやすくできる?

今日、ふと思った 今までは、処理を関数で括れば読みやすくなるんじゃないかと思っていた。 でも、1回しか使わないような処理のために、わざわざ関数を作ると逆に読みにくくなるかもしれない。 理由 #腹ぺこの今は、食べ物意外に興味がない。 あいす あひる…

javascript始めました。

js

理由 greasemonkeyが使いたかったのです。 でも、javascriptの文法がよくわかりません。 javascriptの文法自体を覚える必要がありそうです。 めんどくさがりなので、 保存->ブラウザに移動->再読み込み(f5) なんて耐えられません。 そこで、これから探すも…

どう書く?org(重複なし乱数)

こんな所があった>http://ja.doukaku.org/ 「どう書く?org」へようこそ!このサイトは出されたお題をいかに解くか競い合う、プログラマのためのコロシアムです わー、初心者お断りっていう感じかな? なんとなく、入りづらいので日記で問題を解いてみる。 …

rubyの正規表現

ここhttp://rubyist.g.hatena.ne.jp/gaba/20070211をみていたら、 rubyとperlの正規表現は少し違うらしい。 perlの場合は文字列先頭・末尾の意味で「^$」が使えるけど、rubyでは無理という話。 動作を調べる。 perlは使わないから、調べなくていいや。めんど…

webrickを読む件について

やる気が起きなかった。 何もしなかった。(´・ω・`) 明日やれたら良いと思う。

そろそろおっきなものを読んでみようと思います。

対象は「webrick」にした。mongrelより、実装がていねいらしい。 webrickから、大きなモジュールを作るときの方法を学んだ人がいるみたいだし。*1 ひらメソッド*2を使って読んでみることにする 明日にでも、読み始めよう。 ソースコードを読む過程で、調べた…

階乗の計算[ruby][gdgd]

末尾再帰とかいろいろあるみたい。 def func1 n #たぶん末尾再帰 def func_tail(a,b) (a==0)? b : func_tail(a-1, a*b) end func_tail(n,1) end def func2 n #injectを使った一番普通な感じの (1..n).inject(1) {|result,i| result * i} end def func3(n,r=[…

「勉強法]今からrubyをはじめるとしたら

rubyをインストールする 「ruby one-click installer」などで検索すると良いかも 少し設定をする。(日曜日にでも) エディタを見つける OneClickRubyについてくるSciteを使う場合は日本語化する irbでtabキーによる補完ができるようにする しばらくコレを繰…

rubyのコードが書けるようになるまで(後でまとめる)

懐古 プログラミング自体初めての状態から、もうすぐ半年。 そこそこrubyの文法にも慣れ親しんで、気軽にコードも書けるようになってきた気がする。 ここら辺で、過去の自分を振り返ると共に、今から自分がrubyをはじめるとしたらどうするか書いてみようと思…

rubyって

明らかにrails以前とrails後で断絶があるような気がする。 NArrayというライブラリがあることなんて気づかなかった。 (gemでインストールできないし) 以下勘違いしていたこと RAAに存在するライブラリ≠gemでインストールできるライブラリ (後で付け足す)

NArray使ってみた

NArrayという数値計算ライブラリがあるみたい((電脳rubyプロジェクトと言うところ で開発されている。(アカデミックな感じ?) )) どういうもの? 行列/配列処理が高速にできる。 require 'narray' a=(1..10).to_a na=NArray.int(10).indgen+1 require 'ben…

フィボナッチ数列

感想 特に面白いことはなかった 一番素朴な実装が最速な件について #fib(1000)を計算したとき user system total real fib1 0.010000 0.000000 0.010000 ( 0.010997) fib2 0.010000 0.000000 0.010000 ( 0.001816) fib4 0.010000 0.000000 0.010000 ( 0.0106…

パスカルの三角形を作ってみた

こういうの 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 簡単に思いつく方法(再帰) def combination n,k case k when 1 : 1 when n : 1 else combination(n-1, k-1) + combination(n-1, k) end end def pascal depth 1.upto(depth) do |n| 1.upto(n) do |k| print combi…

最近

デザインパターンが知りたい。(GoFしか知りません><) 名前の付け方が思いつかない。 どうやったら、良い名前をつけられるんだろう?

今日はじめて知ったこと

引数の展開 def f1 a,c; p a; p c; end def f2 a,*c; p a; pc; end f1(1,2,3,4,5) #=> ArgumentsError f2(1,2,3,4,5) #=> 1 #=> [2,3,4,5] Hashの[]メソッド クラスメソッドかインスタンスメソッドかで挙動がだいぶ違う refe Hash.[]*1(クラスメソッド) re…

マージソート続き

ブロックが渡せなかった理由 ブロックがうまく渡せなかった理由は、関数をネストしていたからみたい。 どうしてそうなるかは追えてない(あとで調べる) 速度向上。 コードを見ていると、意味もなく何回もlambda(もしくはunless)が呼ばれている。*1これを外…

sortしてみた

作った物 bubble_sort merge_sort code class Array def bubble_sort i=0; max_index=self.size-1 each_index do |i| #p i return self if i >= max_index if self[i] > self[i+1] self[i],self[i+1]=self[i+1],self[i] i = 0 retry end i += 1 end end def …

テトリス?

幼児のボキャブラリー急増メカニズムに新説――米研究 - ITmedia News 何を言っているのかわかりにくい記事。 たぶん元の論文の要約 ■ ■ ■ ■ ■ ■ ■ ■■■ ■ ■ ■■■ ■ ■■■ ■ ■■■ ■ ■■ ■■左のほうがブロックを一気に消せるよね(ryという話。 話せるようになること単…

windowsのirb上でriを使う。

昨日の方法は、One-Click rubyで構築したwindosの環境では動きませんでした。``*1で呼ばれる「exec」がうまく動いてくれないみたいです。 以下のエラーが出力されてしまいます。 Errno::ENOEXEC: Exec format error - ri from (irb):1in ``' from (irb):1出…

.irbrcでrefe(もしくはri)

http://mono.kmc.gr.jp/~yhara/d/?date=20070801#p01より、 現在使っているのは、 タブ補完 リファレンス検索 リファレンス検索の部分はちょっと変更を加えてます。 gemでインストールしたものなどはrefeに乗ってないことがあります。そのような時はriを使っ…

和英検索(Windows)

沢山の単語の意味を調べるために以下のスクリプトを書きました。 blowser='C:/Program Files/Mozilla FireFox/firefox.exe' #firefox url=%w{http://dic.livedoor.com/search/?q= &match=startwith&x=0&y=0&dic=ej} ARGV.each do |word| `#{blowser} #{url.j…

演算子を引数として取る関数の定義の続き(読みにくいかも)

もっと楽ができるかもしれない。 class Hoge < Array def f(op,x) if block_given? inject(x) { |n,i| n.send(op, yield(i))} else inject(x) { |n,i| n.send(op, i)} end end end hoge=Hoge.new.concat((1..10).to_a) p hoge.f(:+,0) #=>55 p hoge.f(:+,0) …

benchmark.rb*1を読んだ

読もうと思った理由 以下のことが知りたいと思った。 (あとで書く) 読み終わって気づいたこと(あとで整理する) procオブジェクトなら配列に格納できる a<

やっぱり戻る[gdgd]

こちらに戻ることにしました。 [ruby][あとでまとめる]