免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11082 | 回复: 3
打印 上一主题 下一主题

[练习] 分布统计 [复制链接]

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-01 06:09 |只看该作者 |倒序浏览
本帖最后由 rubyish 于 2013-12-01 02:11 编辑

问题:
有一个文件,内容如下:

>a1;30266 K: 25 length: 7764
>a2;21197 K: 25 length: 1303
>a3;19639 K: 25 length: 6523
>a4;21559 K: 25 length: 1051
>a5;9715 K: 25 length: 815
>a6;60114 K: 25 length: 49
>a7;9601 K: 25 length: 1387
>a8;11933 K: 25 length: 1662
>a9;28016 K: 25 length: 96
>a10;5612 K: 25 length: 1879
>a11;12713 K: 25 length: 916
>a12;13947 K: 25 length: 442
>a13;5887 K: 25 length: 2657
>a14;2346 K: 25 length: 9605
>a15;9119 K: 25 length: 405
>a16;2507 K: 25 length: 4692
>a17;18192 K: 25 length: 100
>a18;8527 K: 25 length: 1909
>a19;2477 K: 25 length: 6703
>a20;12117 K: 25 length: 949
>a21;27978 K: 25 length: 49
>a22;10051 K: 25 length: 1189
>a23;6358 K: 25 length: 470
>a24;5987 K: 25 length: 3481
>a25;15254 K: 25 length: 94
>a26;2738 K: 25 length: 1960
>a27;6649 K: 25 length: 603
>a28;11581 K: 25 length: 543
>a29;4613 K: 25 length: 1895
>a30;6662 K: 25 length: 811
>a31;22138 K: 25 length: 35
>a32;8808 K: 25 length: 372

length最少有 1。
统计最后一列的分布个数,以10为一单位,
按照 1~10 之间出现的个数,11~20 之间出现的个数...以此类推

最后排序分布从小到到大输出:

分布  个数

example:
10 5
20 2
30 6
50 8
70 12

论坛徽章:
0
2 [报告]
发表于 2013-12-20 16:12 |只看该作者
  1. a = {}
  2. File.open(ARGV[0],'r').each do |x|
  3.         case x.rstrip[-2,2][0]
  4.         when /0|\s/
  5.            a[0] = a[0].to_i + 1
  6.         when "1"
  7.            a[1] = a[1].to_i + 1
  8.         when "2"
  9.            a[2] = a[2].to_i + 1
  10.         when "3"
  11.            a[3] = a[3].to_i + 1
  12.         when "4"
  13.            a[4] = a[4].to_i + 1
  14.         when "5"
  15.            a[5] = a[5].to_i + 1
  16.         when "6"
  17.            a[6] = a[6].to_i + 1
  18.         when "7"
  19.            a[7] = a[7].to_i + 1
  20.         when "8"
  21.            a[8] = a[8].to_i + 1
  22.         when "9"
  23.            a[9] = a[9].to_i + 1
  24.         end
  25. end

  26. 9.times {|x| puts "#{x}0 range #{a[x]} count"}
复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
3 [报告]
发表于 2013-12-25 03:59 |只看该作者
  1. #!/usr/bin/ruby -w

  2. hN = DATA.map {|e| e.scan(/\S+/).last.to_i / 10 + 1 }
  3.         .group_by {|g| 10 * g }

  4. hN.keys.sort.each do |k|
  5.   print k, ?\t, hN[k].size, ?\n
  6. end

  7. __END__
  8. >a1;30266 K: 25 length: 5
  9. >a2;21197 K: 25 length: 6
  10. >a3;19639 K: 25 length: 11
  11. >a4;21559 K: 25 length: 15
  12. >a5;9715 K: 25 length: 22
  13. >a6;60114 K: 25 length: 44
  14. >a7;9601 K: 25 length: 33
  15. >a8;11933 K: 25 length: 22
  16. >a9;28016 K: 25 length: 96
复制代码
  1. 10      2
  2. 20      2
  3. 30      2
  4. 40      1
  5. 50      1
  6. 100     1
复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
4 [报告]
发表于 2013-12-25 04:08 |只看该作者
v2:
  1. #!/usr/bin/ruby -w
  2. DATA.map {|e| e.scan(/\S+/).last.to_i / 10 + 1 }
  3.     .group_by {|g| 10 * g }
  4.     .sort.each {|k,v| print k, ?\t, v.size, ?\n }

  5. __END__
  6. >a1;30266 K: 25 length: 5
  7. >a2;21197 K: 25 length: 6
  8. >a3;19639 K: 25 length: 11
  9. >a4;21559 K: 25 length: 15
  10. >a5;9715 K: 25 length: 22
  11. >a6;60114 K: 25 length: 44
  12. >a7;9601 K: 25 length: 33
  13. >a8;11933 K: 25 length: 22
  14. >a9;28016 K: 25 length: 96
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP