从1-9中选择3个数字的所有组合,如何计算呢?
从1-9中选择3个数字的所有组合,怎么计算呢?急!
有从1到9共计9个数字,请问,如果三个一组,可以组合成多少个“三国联盟”?
备注:213组合和312组合,代表同一个组合,只要有三个数字在一起即可。
请问用vb如何实现,把所有组合都算出來?
------解决方案--------------------
稍改一下:
有从1到9共计9个数字,请问,如果三个一组,可以组合成多少个“三国联盟”?
备注:213组合和312组合,代表同一个组合,只要有三个数字在一起即可。
请问用vb如何实现,把所有组合都算出來?
------解决方案--------------------
稍改一下:
- VB code
Option Explicit Sub Carry(a() As Long, ByVal m As Long, ByVal n As Long) Dim Idx As Long Idx = n While a(Idx) = m Idx = Idx - 1 m = m - 1 Wend a(Idx) = a(Idx) + 1 While Idx < n Idx = Idx + 1 a(Idx) = a(Idx - 1) + 1 Wend End Sub Sub PrintCom(a() As Long, n As Long) Dim i As Long ReDim tmp(n) For i = 1 To n tmp(i) = a(i) Next Debug.Print Trim(Join(tmp)) End Sub Private Sub Command1_Click() Dim m As Long, n As Long Dim i As Long m = 9 n = 3 ReDim a(m) As Long For i = 1 To m a(i) = i Next a(0) = -1 Do DoEvents Call PrintCom(a, n) Call Carry(a, m, n) Loop Until a(0) = 0 End Sub
------解决方案--------------------
问题描述的有点不清楚
到底 "3个一组" 是算整个 "三国联盟" 还是算三国联盟中的一国
你的问题如果意思是 1~9 9个数字中 任取3个数字 有多少种组合 那就是 c(9,3)=84种
我1楼就是按照这个意思来解答的