标题:点击招钮在右边的text7显示结果
只看楼主
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
结帖率:100%
已结贴  问题点数:20 回复次数:9 
点击招钮在右边的text7显示结果

求高手指点一下,我是VB菜鸟
如图,
上面是输入上期开奖号码
下面两个按钮是“随机选号”“掐指神算”
我想要的效果是,按随机选号,然后1-50随机选出6个号码在右边TEXT7里或者弹出一个新的窗口显示结果,
或者掐指神算,同样,在右边TEXT7里或者弹出一个新的窗口显示结果,但显示的结果同样是随机排序的,
如我输入
 ?n1+1
? n2+2
?n1+3
...
但是全部公式都输入完成之后,在右边TEXT7里不按顺序显示结果,随机排序
请高手请点
搜索更多相关主题的帖子: 开奖号码 
2015-07-01 20:55
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:20 
回复 楼主 wenchen1987
产生6个互不相等的1-50内的数
程序代码:
Private Sub Command1_Click()
  Dim i As Integer
  Dim j As Integer
  Dim a(1 To 6) As Integer
  Randomize
  For i = 1 To 6
    a(i) = Int((50) * Rnd + 1)
    For j = 1 To i
      If j <> i Then
        While (a(i) = a(j))
          a(i) = Int((50) * Rnd + 1)
        Wend
      End If
    Next
    Text1.Text = Text1.Text & a(i) & " "
  Next
  Text1.Text = Text1.Text & vbCrLf
End Sub
第2个按钮是不是手动输入6个数,再自动排序?
如果是这样,建1个数组a(1 to 6),分别赋值1 to 6。
进行6次选择,每次选择后,剔除被选元素,得到新数组,再进行下一次随机选择。
第n次(n是1至6)在1至7-n中随机选1个数。
还有一个办法,先全排列1至6,总共720种,再在720种里随机得到你需要的互不相等的组合的种数。
不知道n1+1 n2+2 n1+3是什么意思。

[ 本帖最后由 lianyicq 于 2015-7-2 09:24 编辑 ]

大开眼界
2015-07-02 09:20
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
得分:0 
回复 2楼 lianyicq
是这样的,第二个按钮是手工的
我想要的效果是
如:我输入n1=1,n2=2,n3=3,n4=4,n5=5,n6=6
然后按下第二个按钮,在右边text7显示我输入的公式的结果,如我输入“下期开奖号码可能会出:”n1+1,n1-1......一直到n6+1,n6-1,
但是显示的结果不是n1+1-n6+1这样按顺序的,是随机顺序的,如有可能是n6+1,n6-1,也有可能是先n3或n4+1-1,这样在效果
2015-07-02 15:15
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
得分:0 
回复 2楼 lianyicq
谢谢高手指点,第一个是我要的效果,但是如果可以,帮我回复一下第二个按钮效果,我的分全给你了
2015-07-02 15:35
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
回复 3楼 wenchen1987
..
如:我输入n1=1,n2=2,n3=3,n4=4,n5=5,n6=6
然后按下第二个按钮,在右边text7显示我输入的公式的结果,如我输入“下期开奖号码可能会出:”n1+1,n1-1......一直到n6+1,n6-1,
...

什么是输入的公式?是不是对于每个输入的n有一个n+1和n-1。
比如输入3,8,14,17,36,42
结果包括2,4,7,9,13,18,35,37,41,43,然后再随机排列这组输出?


大开眼界
2015-07-02 16:22
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
得分:0 
回复 5楼 lianyicq
对对对,就是这样的效果,但全部输入完之后,要点击按钮然后是在TEXT7显示结果的
2015-07-03 15:18
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
回复 6楼 wenchen1987
好歹把自己写的代码贴上来看看。

大开眼界
2015-07-03 16:20
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
还想到一个用交换的办法来随机打乱有序数组,效率更高。
...
这样做可以打乱数组,但仔细分析了一下,各种可能组合机会不均等,不适合。


[ 本帖最后由 lianyicq 于 2015-7-3 17:08 编辑 ]

大开眼界
2015-07-03 16:49
wenchen1987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-7-1
得分:0 
回复 7楼 lianyicq

再简单的说吧
如,我想让TEXT1.TEXT=A
TEXT2.TEXT=B
,然后单击按钮,在
TEXT3.TEXT里示的结果是
a+b,a-b,a+1,b-1然后每个结果都用“,”隔开
我现在没有分数了,如果有,我一定会把所有分数都给你
2015-07-03 19:33
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
回复 9楼 wenchen1987
写了一个输出乱序的过程
Sub Output(x() As Integer)
  Dim i As Integer
  Dim j As Integer
  Dim temp As Integer
  For i = 0 To UBound(x)
    Randomize
    j = Int(Rnd * (UBound(x) + 1))
    temp = x(i)
    x(i) = x(j)
    x(j) = temp
  Next
End Sub

自己完善避免输出相同的情况。

大开眼界
2015-07-04 10:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-454957-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081184 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved