Project1

标题: 完整简单统计数据分析啦~~~ [打印本页]

作者: end55rpg    时间: 2012-5-26 01:36
标题: 完整简单统计数据分析啦~~~
本帖最后由 end55rpg 于 2012-5-26 01:49 编辑

统计分析又回来来了,,,
看见了吗,那个帖子作废了:这次:

1。修复众数BUG2(不止1个了,次数不满不算了)
2。添加返回极差,方差
3。传入数据可以运算了!(比如 + - *)= =!

代码如下:

  1. def tongji(a)
  2. eval "a = %w(#{a})"
  3. a.each_with_index{|num,index|
  4. if num.index('*')
  5. a[index]
  6. a[index]=Array.new(a[index].split('*')[1].to_i,a[index].split('*')[0].to_f.to_s)
  7. end
  8. a[index] = (eval(num).to_s rescue a[index])  if !num.index("*")

  9. };a.flatten!
  10. sum=0
  11. hash = {}
  12. a.each{|n|hash[n] = hash[n].to_i+1}
  13. a.each{|n|sum+=n.to_f}
  14. win,mode = [],[]
  15. max = hash.values.max
  16. cha = (max - hash.values.min).abs
  17. hash.each{|h1,h2|mode << h1 if h2 == max and max != 1}
  18. a.each{|n|n}
  19. array = a.sort!{|aa,bb|aa.to_f<=>bb.to_f}
  20. id = (-1)**array.size == -1 ? array.size/2 : (array.size+1)/2
  21. if (-1)**array.size == -1
  22. median = (array[id].to_f + array[id+1].to_f) / 2
  23. else
  24. median = array[id].to_f
  25. end
  26. pinjun = (sum / a.size);cha2 = 0
  27. a.collect!{|i|(i.to_f - pinjun)**2}.each{|i|cha2 = cha2.to_f+i}
  28. return mode,pinjun,median,cha,cha2 / pinjun
  29. end
  30. p("Mode","平均数","中位数","极差","方差")
复制代码

返回数据顺序  ---- 众数","平均数","中位数","极差","方差"

又是例子:
比如传入:

复制代码

p("Mode","平均数","中位数","极差","方差")
p tongji("1*2 3-1 1+1 2*1")
猜一猜,众数是多少?

  



作者: Luciffer    时间: 2012-5-26 01:59
泥煤。。。老子脚本还没入门呢。。。
作者: orzfly    时间: 2012-5-26 06:56
乱的了……困……不看了……
楼主以后早点睡觉……
作者: 小餐馆    时间: 2012-5-26 13:18
无聊的说
作者: c248611    时间: 2012-6-22 10:30
请问这是什么脚本啊??




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1