RUBY小试题,高手们都来式下啊
作者:rainchen题目:
有52张扑克牌要随机发牌给四个玩家,并且四个玩家牌的数量是相同的?
用最精简的ruby语言写出来
结果示例:
=> [, [37, 11, 26, 45, 28, 27
, 35, 29, 41, 15, 5, 20, 21], , [
49, 48, 10, 4, 33, 14, 34, 40, 24, 50, 52, 19, 6]]
其实是一则看到 求职版的这篇 今天面试遇到了雷人面试题求解 所启发,再则是延续下"Ruby每周一测"这个系列,三是活跃下本版气氛。
以下是我的解答版本,欢迎PK :
ruby代码:(1..52).sort_by{rand}.inject(,[],[],[]]){|r,i|r[(r+=1)%4+1]<<i;r}
不是最短,但最清楚:
x=(1..52).sort_by{rand};y=[];0.step(51,13) do |c| y << x end x=(1..52).sort_by{rand};
(0..3).map{|t| x}
页:
[1]