急求组合算法
求组合算法.从N个数中选取M个数的组合(M<N),这个算法如何写.就向彩票
问题点数:100、回复次数:6Top
1 楼fxj331072(白天与黑夜)回复于 2006-03-18 13:50:03 得分 0
随便写了一个:
添加2个文本框text1、text2,2个列表框list1、list2
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim i As Integer
a = Text1.Text
For i = 1 To a
List1.AddItem Int(Rnd * a)
Next
c = Text2.Text
For i = 1 To c
List2.AddItem List1.List(Rnd * Text2.Text)
Next
End Sub
text1是你要生成的随机总数,text2是你要在总数中挑选的数量。
list1是你生成的所有随机数,list2是你在list1中随机选出text2.text个数。
Top
2 楼jarryandtom()回复于 2006-03-18 13:56:46 得分 0
大哥,你看清楚问题??Top
3 楼fxj331072(白天与黑夜)回复于 2006-03-18 14:02:34 得分 0
不好意思,看错了
你能把题目说的再详细一点么?Top
4 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-18 14:13:56 得分 0
http://dev.csdn.net/article/49/49245.shtmTop
5 楼jarryandtom()回复于 2006-03-18 14:19:25 得分 0
说具体点就是我有一个数组a(12)里面有13个不同的数字,我要从中选取6个不同的数字,请问如何写算法把所有的6个数字组合给选出来.Top
6 楼tmd007(学而时习之,不亦乐乎。姓菜名了字灌之号蹭之。)回复于 2006-03-18 18:13:52 得分 0
Option Explicit
Private Sub Command1_Click()
Dim a(12), i, i1, i2, i3, i4, i5, i6
For i = 0 To 12
a(i) = i + 1
Next
For i1 = 0 To 12
For i2 = i1 + 1 To 12
For i3 = i2 + 1 To 12
For i4 = i3 + 1 To 12
For i5 = i4 + 1 To 12
For i6 = i5 + 1 To 12
DoEvents
List1.AddItem a(i1) & " " & a(i2) & " " & a(i3) & " " & a(i4) & " " & a(i5) & " " & a(i6)
Next: Next: Next: Next: Next: Next
End Sub
Top




