Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

偏差値の計算

[を]偏差値の計算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