Project1

标题: 筛选数学 [打印本页]

作者: sblkhgm    时间: 2016-8-3 08:24
标题: 筛选数学
怎么在这里选出有两个以上的数学  [ 8,8,6,5,8,2,5],这里的是8,5然后存起来,再把剩下的另外存起来
@a=[8,5] @b=[6,2]
作者: 夜狠简单    时间: 2016-8-3 11:13
本帖最后由 夜狠简单 于 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-5 07:12
  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
复制代码

作者: kuerlulu    时间: 2016-8-5 10:56
  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
复制代码





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