36选7,能不能用VB写出所有的排列组合?

XING979020 2007-09-07 12:16:01
如题?可以的话.给我写出代码好吗?我是新手.不太知道.谢谢.
...全文
618 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
XING979020 2007-09-09
  • 打赏
  • 举报
回复
首先非常感谢zzyong00(阿勇)
chewinggum(口香糖·个人二五计划第一年)
clear_zero(clear_zero),及给我信息参考的朋友.其它看到大家给我的代码让我很感动.因为我想了很久.没有一个很好的代码,自己写的很长可以没有能实现目的.但现在"chewinggum(口香糖·个人二五计划第一年)"的代码只有简单的几行就已经实现了.所以我会好好学习.
我也不知道我现在有几分,反正就给最有用的人吧.chewinggum(口香糖·个人二五计划第一年),
zzyong00(阿勇)的代码也不错,只是好像要把36个数都用数组写出来.在此谢谢两位了.我所有的身家只有这20分了.就分给你们两吧.
daisy8675 2007-09-07
  • 打赏
  • 举报
回复
是新手更不应该伸手来要代码了

数学的问题,自己按数学思路去做
熊孩子开学喽 2007-09-07
  • 打赏
  • 举报
回复
能选出来又如何呢?
这个问题是一个纯概率问题,任何分析都不可能预测下一次的中奖数字。对于概率事件来说,任意两次抽样都没有关联。
再回到问题上来,即使写程序列出了所有数字组合,对于楼主又会有什么帮助呢?放到数组里只怕内存有问题,打印到窗体里,只怕没有人会从头到底看一遍。
如果是用来分析的话,也根本不必做这个全排列。只要按照你的算法去抽样,在抽样到某个数字的时候直接计算出来就可以了。

因此毫无必要全部列出所有组合
wxrwan 2007-09-07
  • 打赏
  • 举报
回复
以前的帖子中我发过一个排列组合的类
脆皮大雪糕 2007-09-07
  • 打赏
  • 举报
回复
这种东西用递归最容易了

Option Explicit

Const glngMax = 100 '最大生成几组,所有可能性生成够呛
Const gintNum = 36 '待选
Const gintGroup = 7 '每组几个
Dim gCount As Long

Private Sub test(ByVal intStart As Integer, ByVal intLev As Integer, Optional strOutput As String)
Dim i As Integer
DoEvents
If intLev > gintGroup Then Debug.Print strOutput: gCount = gCount + 1: Exit Sub
If gCount > glngMax Then Exit Sub
For i = intStart + 1 To gintNum
Call test(i, intLev + 1, strOutput + " " + Str(i))
Next
End Sub


Private Sub Command1_Click()
gCount = 0
Call test(0, 1)
End Sub
zzyong00 2007-09-07
  • 打赏
  • 举报
回复
Dim a(4) As Integer, i As Integer, j As Integer, m As Integer, k As Integer
a(0) = 2: a(1) = 3: a(2) = 5: a(3) = 7
Dim s As String
For n = 0 To 3
For m = 0 To 3
If a(n) <> a(m) Then
For j = 0 To 3
If Not (a(n) = a(j) Or a(m) = a(j)) Then
For i = 0 To 3
If Not (a(n) = a(i) Or a(m) = a(i) Or a(j) = a(i)) Then
s = CStr(a(i)) & CStr(a(j)) & CStr(a(m)) & CStr(a(n))
List1.AddItem s
End If
Next i
End If
Next j
End If
Next m
Next n
参考一样吧,4个数的全排列!
clear_zero 2007-09-07
  • 打赏
  • 举报
回复
这个就是简单的排列组合问题啊
36*35!/(35-6)!/6!=58433760
你缩小到6选2怎么弄
程序就写出来了
weipt 2007-09-07
  • 打赏
  • 举报
回复
DING
  • 打赏
  • 举报
回复
因为36选7 其中一个号码作为特别项目号码
所以总共有36*35!/(35-6)!/6!=58433760 种可能
具体算的时候 可以先直接选出7个号码作为1组数 然后依次让每个选出的数作为特别号码 那么选出1组数后 产生7种组合

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧