女生宿舍n个人,有几个微信群?

一般情况,建一个微信群,至少需要3个人,因为两个人,可以直接聊天,没必要建群。

考虑到女生们的关系是如此复杂,假如有6个人,那么6个人一个总群,每5个人排除出一个,建一个群则有6个,每4个人排除掉2个建一个群,C6,4=15个,每3个人再建一个群:C6,3=20 总共1+6+15+20 = 42 个

Ruby代码:

class Integer
    def qun
        self.downto(3).map{|x| (1..self).to_a.combination(x).size }
    end
end

Test

2.4.0 :020 > 3.qun
 => [1] 
2.4.0 :021 > 4.qun
 => [1, 4] 
2.4.0 :022 > 5.qun
 => [1, 5, 10] 
2.4.0 :023 > 6.qun
 => [1, 6, 15, 20]

6人宿舍总群数:

2.4.0 :025 > 6.qun.sum
 => 42

列出所有的群组:

class Integer
    def qun
        self.downto(3).flat_map{|x| (1..self).to_a.combination(x).to_a }
    end
end
2.4.0 :012 > 5.qun
 => [[1, 2, 3, 4, 5], [1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 4, 5], [1, 3, 4, 5], [2, 3, 4, 5], [1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 3, 4], [1, 3, 5], [1, 4, 5], [2, 3, 4], [2, 3, 5], [2, 4, 5], [3, 4, 5]] 
2.4.0 :013 > 5.qun.size
 => 16
相关文章
相关标签/搜索