中野智文

中野智文(VOYAGE GROUP)のコンピュータなどのメモ

有効数字n桁の計算式(BigQueryなどで)

2015-01-27 11:25:42 | BigQuery
背景 SQLで、有効数字n桁にまとめたいことがある。printfに相当する関数があればよいが、それがないとき。 数行数字n桁にする計算式 xが丸めたい数値、nが丸めたい桁数の時に、BigQueryでは、 round(x,integer(-log10(x)-1+n)) 単にlog10で桁数を求めただけ。微妙に100とか1000のように丁度になったときはintegerによる切り捨 . . . 本文を読む

rubyで重み付きルーレット選択(乱択)のワンライナー

2015-01-06 13:36:39 | ruby
背景 rubyで重み付きルーレット選択をする時のワンライナー。 rubyでルーレット rubyにprefix sumまたはscan(mapとreduceが合わさったような関数)が用意されていればいいが、ないので、sumの部分は外出しで、次のように書いた。 ruby -e 'r=rand;s=0;p [0.1,0.3,0.6].map.with_index{|a,i|[s+=a,i]}. . . . 本文を読む