算法 双色球组合 ruby 版 (just for fun)

rainchen · 2013年12月30日 · 最后由 love93hate 回复于 2018年08月27日 · 3256 次阅读

周末在家,忽然想到洗牌排牌问题,那用于双色球上就是如何随机取出不重复的数字,目前想到最简单的 ruby 写法如下:

class ColourBalls
  def self.pick
    red_balls    = (1..33).to_a
    blue_balls   = (1..16).to_a
    picked_balls = []
    picked_balls << red_balls.sample(6).sort
    picked_balls << blue_balls.sample(1).first
    picked_balls
  end
end

5.times { p ColourBalls.pick } 运行效果如下 $ ruby color_balls_v1.rb [[2, 4, 5, 6, 11, 32], 7] [[6, 14, 20, 22, 23, 28], 9] [[1, 7, 8, 10, 14, 18], 13] [[1, 3, 7, 18, 27, 30], 3] [[2, 5, 8, 9, 13, 27], 10]

大家有更好的写法吗?

代码没有高亮啊

可以直接打印,省去 变量 picked_balls

双色球要是随机就好了

class ColourBalls
  def self.pick
    [(1..33).to_a.sample(6).sort, (1..16).to_a.sample]
  end
end

#5 楼 @miclle 去掉了变量牺牲了可读,不过倒是提醒了我 sample 是可以不需要参数的

#5 楼 @miclle * 展开还可以省掉 to_a

[[*1..33].sample(6).sort, [*1..16].sample]

机器学习交易——如何使用回归预测股票价格?最近翻译了一篇文章,本人对机器学习应用在量化投资上很感兴趣,希望可以和社区大神一起交流学习。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号