查看: 2339|回复: 4

[已经解决] 筛选数学

[复制链接]
梦石
0
星屑
50
在线时间
322 小时
注册时间
2011-6-24
回帖
133
发表于 2016-8-3 08:24:47 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
怎么在这里选出有两个以上的数学  [ 8,8,6,5,8,2,5],这里的是8,5然后存起来,再把剩下的另外存起来
@a=[8,5] @b=[6,2]

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
1788
在线时间
1313 小时
注册时间
2012-8-4
回帖
724
发表于 2016-8-3 11:13:18 | 显示全部楼层
本帖最后由 夜狠简单 于 2016-8-3 11:17 编辑
  1. n= [ 8,8,6,5,8,2,5]
  2. #取重复的元素,#取单独的元素
  3. x=[];y=[]
  4. n.each do |i|
  5. a=n.size;n1=n.dup
  6. n1.delete(i);b=n1.size
  7. if a-b>1  
  8.   x.push i;x=x&n
  9. else
  10.   y.push i
  11. end
  12. end
  13. p x,y
复制代码


可以用,就是有点绕了。对数组功能不怎么熟悉。

点评

好想学  发表于 2016-8-7 10:46

评分

参与人数 1星屑 +90 收起 理由
RyanBern + 90 据说一行就能写完

查看全部评分

回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2016-8-5 07:12:39 | 显示全部楼层
  1. a = [8,8,6,5,8,2,5]
  2. b = a.uniq
  3. c = [] #重复元素
  4. d = [] #不重复元素
  5. for x in b
  6.    a.rindex(x) != a.index(x) ? c.push(x) : d.push(x)
  7. end
复制代码

评分

参与人数 2星屑 +201 收起 理由
RyanBern + 200 认可答案
sblkhgm + 1 认可答案

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 1 0

使用道具 举报

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2016-8-5 10:56:43 | 显示全部楼层
  1. num_counter = Hash.new { |h, k| h[k] = 0 }

  2. [8,8,6,5,8,2,5].each { |e| num_counter[e] += 1}

  3. p num_counter.select { |h, k| k >= 2 }.keys
复制代码

评分

参与人数 1星屑 +90 收起 理由
RyanBern + 90 触瞎 据说状元一行就能解决

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部