ag(the silver searcher)でリテラル検索

agは内部でpcreを使っているようで、デフォルトで .ワイルドカードとして扱われてしまう。ドットそのものを検索するには

ag -Q .save ./lib 

のように-Q(--literal、または-F)オプションを指定する。

-Qの代わりに2重のバックスラッシュでエスケープしても良い。正規表現エンジンに \. を渡せばドットはただの文字リテラルとして扱われる。しかし \ はシェル上でも特殊文字なので \ でエスケープしなくてはならない。

ag \\.save ./lib 

$正規表現で末尾を示す記号であるため、Qオプションが必要だが、 $set はシェル変数として展開されてしまうので バックスラッシュでエスケープする必要がある

ag -Q \$set ./lib

-Qなしの場合は、 \$set という文字列を正規表現に渡すため、 \$ の両方をエスケープする必要がある。

ag \\\$set ./lib

\$ がシェル上で展開されないように、シングルクオートで囲っても良い

ag '\$set' ./lib
ag '\.save' ./lib

ボックス=ミューラー法

ボックスミューラー法の養殖された乱数とはww?

10000.times {
  x = rand()
  y = rand()

  z1 = Math.sqrt(-2 * Math.log(x)) * Math.cos(2 * Math::PI * y)
  z2 = Math.sqrt(-2 * Math.log(x)) * Math.sin(2 * Math::PI * y)

  puts "#{z1}\t#{z2}"
}
ruby bm.rb | pbcopy 

googleスプレッドシートに貼り付けてヒストグラムのグラフを作る(重い…)

rand - Google スプレッドシート

f:id:paulownia:20161105120027p:plain

f:id:paulownia:20161105120032p:plain

1万回程度ではあんまり綺麗なグラフにならないすね


おまけ