赞 | 0 |
VIP | 12 |
好人卡 | 42 |
积分 | 7 |
经验 | 44348 |
最后登录 | 2024-4-1 |
在线时间 | 791 小时 |
- 梦石
- 0
- 星屑
- 687
- 在线时间
- 791 小时
- 注册时间
- 2011-10-20
- 帖子
- 2394
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 end55rpg 于 2012-5-26 01:49 编辑
064148waqmvmwg6qwg4mvl.jpg
(298.23 KB, 下载次数: 0, 售价: 20 星屑)
统计分析又回来来了,,,
看见了吗,那个帖子作废了:这次:
1。修复众数BUG2 | (不止1个了,次数不满不算了) | 2。添加返回 | 极差,方差
| 3。传入数据可以运算了! | (比如 + - *)= =!
|
代码如下:
- def tongji(a)
- eval "a = %w(#{a})"
- a.each_with_index{|num,index|
- if num.index('*')
- a[index]
- a[index]=Array.new(a[index].split('*')[1].to_i,a[index].split('*')[0].to_f.to_s)
- end
- a[index] = (eval(num).to_s rescue a[index]) if !num.index("*")
- };a.flatten!
- sum=0
- hash = {}
- a.each{|n|hash[n] = hash[n].to_i+1}
- a.each{|n|sum+=n.to_f}
- win,mode = [],[]
- max = hash.values.max
- cha = (max - hash.values.min).abs
- hash.each{|h1,h2|mode << h1 if h2 == max and max != 1}
- a.each{|n|n}
- array = a.sort!{|aa,bb|aa.to_f<=>bb.to_f}
- id = (-1)**array.size == -1 ? array.size/2 : (array.size+1)/2
- if (-1)**array.size == -1
- median = (array[id].to_f + array[id+1].to_f) / 2
- else
- median = array[id].to_f
- end
- pinjun = (sum / a.size);cha2 = 0
- a.collect!{|i|(i.to_f - pinjun)**2}.each{|i|cha2 = cha2.to_f+i}
- return mode,pinjun,median,cha,cha2 / pinjun
- end
- p("Mode","平均数","中位数","极差","方差")
复制代码
返回数据顺序 ---- 众数","平均数","中位数","极差","方差"
又是例子:
比如传入:
p("Mode","平均数","中位数","极差","方差")
p tongji("1*2 3-1 1+1 2*1")
猜一猜,众数是多少?
|
评分
-
查看全部评分
|