[练习] 计算平均值
问题:一个由 1, -1 组成的一个文件,其内容是:
1 1 1 -1 1 1 1 1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 1 1 1 1
每个数字之间有空格隔开,现要逐级的计算每4个数的平均值,
第 1--4 位这4个数平均值,返回数值;
第 2--5 位的4个数返回一个平均值;
第 3--6 位这4个数返回一个平均值。
........
#!/usr/bin/ruby -w
s = DATA.gets.split.map(&:to_i)
puts (0..s.size-4).map {|i| s.inject(:+) / 4.0 } * ', '
__END__
1 1 1 -1 1 1 1 1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 1 1
本帖最后由 rubyish 于 2014-01-23 00:13 编辑
v2count = 20
count_f = count.to_f
array = DATA.gets.split.map(&:to_i)
sum = array.reduce(:+)
last = array
puts ["%.2f" % (sum / count_f)].tap {|me|
array.each do |elem|
me << "%.2f" % ((sum += elem - last) / count_f)
last = elem
end
} * ', '
__END__
1 1 1 -1 1 1 1 1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 1 1 1 1
本帖最后由 rubyish 于 2013-12-25 00:34 编辑
0.5, 0.5, 0.5, 0.5, 1.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, -0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 1.0
请问DATA.gets.split.map(&:to_i)这是什么用法? 回复 5# ddd010
map(&:to_i)
map {|e| e.to_i }
rubyish 发表于 2014-01-17 06:27 static/image/common/back.gif
回复 5# ddd010
map(&:to_i)
兄弟,前面的DATA.gets.这个是什么意思? Sevk 发表于 2014-01-17 15:30 static/image/common/back.gif
DATA 这个常量很少用吧
http://caiustheory.com/why-i-love-data
谢谢。。。。。。。。。。。。。。。
页:
[1]