VB求解组合数问题
2018/12/5
组合数:指从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;
从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。
组合数的求解公式如下图:
VB代码求解过程
我们首先要根据组合数的概念及定义,将求解算法分析处理,然后用VB编程来实现本功能。
窗体界面如下图:
代码实现:
Private Sub f(m As Integer, p As Long)'自定义过程求阶乘
Dim i As Integer '声明局部变量
p = 1 '赋初值
For i = 1 To m '求m 的阶乘
p = p * i '结果返给参数p
Next i
End Sub
Private Sub Command1_Click()'求组合数
Dim m As Integer, n As Integer
Dim c As Long, f1 As Long
m = Val(Text2) '取文本框的值
n = Val(Text1)
Call f(m, f1) '调用子过程,求m的阶乘
c = f1 '阶乘的结果存到变量c里
Call f(n, f1) '调用子过程,求n的阶乘
c = c / f1 '阶乘的结果参与运算然后再存回变量c里
Call f(m - n, f1) '调用子过程,求同m-n的阶乘
c = c / f1 '阶乘的结果参与运算然后再存回变量c里
Text3 = c '最后求得的组合数在文本框中输出
End Sub
实际运行结果图:
领取专属 10元无门槛券
私享最新 技术干货