[を]偏差値の計算をRubyで書き換えてみました。当然ですが,実行結果は同じになります。
ss.rb
#!/usr/bin/env ruby # -*- coding: utf-8 -*- dat = [] while line = gets dat << line.to_i end ave = dat.inject(0) {|result, i| result + i} ave /= dat.length.to_f sd = dat.inject(0) {|result, i| result + (i - ave)**2} sd = Math.sqrt(sd / dat.length.to_f) print "点数\t偏差値\n"; dat.each do |x| ss = (x - ave) / sd * 10 + 50 # 偏差値 print "#{x}\t#{ss}\n" end
実行結果
$ cat a.txt 12 67 25 37 52 40 13 29 5 93 $ ./ss.rb a.txt 点数 偏差値 12 40.2272886968473 67 61.4723132689184 25 45.2488399593368 37 49.8841180477887 52 55.6782156583535 40 51.0429375699017 13 40.613561870885 29 46.7939326554875 5 37.5233764785837 93 71.5154157938974