求助一个小算法

caolinganyang 2003-09-18 10:04:43
那位大虾能给想个好的算法,在20个数中任选出五个,五个数中不能重复,且不考虑顺序,即1 2 3 4 5 和5 4 3 2 1视为一种情况。
我的信箱:caoling_anyang@sina.com
...全文
65 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
luolovegui 2003-09-23
  • 打赏
  • 举报
回复
TO huobao2003():
你比我还感兴趣这个问题呀,两个地方都晕了呀。不要这样吧。有时间和我聊聊呀。
My QQ Number: 33761697,加我呀。
luolovegui 2003-09-23
  • 打赏
  • 举报
回复
我其实知道大家会这样说我的,但方便呀。当然用递归也不错。但是要全部打出来,时间总不会少。
little_sophy 2003-09-19
  • 打赏
  • 举报
回复
up
lwm1977 2003-09-19
  • 打赏
  • 举报
回复
一看,脑袋就迅速膨胀
caolinganyang 2003-09-19
  • 打赏
  • 举报
回复
感谢几为大哥 ,选数的方法当然很好,单还要将全部情况一次打印出来呀
Gelim 2003-09-19
  • 打赏
  • 举报
回复
产生随机数的方法就能实现啊!
northwolves 2003-09-19
  • 打赏
  • 举报
回复
这样比较简单:
Private Sub Command1_Click()
Dim x As New Collection, a(0 To 4) As String
For i = 1 To 20
x.Add i
Next
For i = 0 To 4
Randomize
num = Int(Rnd * x.Count + 1)
a(i) = Str(x(num))
x.Remove num
Next
MsgBox Join(a(), ","), 64, "5 random number between 1 and 20"
End Sub
northwolves 2003-09-19
  • 打赏
  • 举报
回复
呵呵,五层循环
Private Sub Command1_Click()

For i = 1 To 16
For j = i + 1 To 17
For k = j + 1 To 18
For m = k + 1 To 19
For n = m + 1 To 20
List1.AddItem i & "," & j & "," & k & "," & m & "," & n
Next
Next
Next
Next
Next
MsgBox List1.ListCount
End Sub
huobao2003 2003-09-19
  • 打赏
  • 举报
回复
楼上的,你没事吧!五层循环!亏了是20个数选五个!你那里毕业的?!
captainivy 2003-09-19
  • 打赏
  • 举报
回复
luolovegui 2003-09-19
  • 打赏
  • 举报
回复
怎么又是一道,早说就行了呀
再看一次。先将20个数排序,然后来段程序就行了,看下面的。
for i= 1 to 20
for j= i+1 to 20
for k= j+1 to 20
for m= k+1 to 20
for n= m+1 to 20
print a[i],a[j],a[k],a[m],a[n]
next
next
next
next
next

就可以了呀。要把中间相同的数设一个记号就行了。也就是说要注意 a[i]=a[i+1]的情况。自己想办法吧。有问题就留一个email
xysome 2003-09-18
  • 打赏
  • 举报
回复
同意zsq70()的观点。
zsq70 2003-09-18
  • 打赏
  • 举报
回复
1、生成一个随机数 设为x,0<x <=1
2、x * 20并取整 = i
3、i 与已经选取的数比较,如果相等则重新选,否则选下一个数
allangoing 2003-09-18
  • 打赏
  • 举报
回复
作五个循环不就行了么~~~
仔细想想用递归也能做~~好好看书把,自己的作业应该自己做,又不是什么有价值的题目,还拿来这里献丑~~
rednod 2003-09-18
  • 打赏
  • 举报
回复
想想

7,763

社区成员

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

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