以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何随机取数?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=28871)

--  作者:lihe60
--  发布时间:2013/2/21 9:10:00
--  如何随机取数?

运行窗口1,目的是每次10个数里随机取4个数。

多运行“button1"按钮,有时不能取4个随机数,有时只取3个随机数。如何是每次都能取4个随机数。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:随机取数.foxdb


--  作者:lin_hailun
--  发布时间:2013/2/21 9:21:00
--  
 因为随机数会有重复的,你对第二列再加一下查找判断吧。
--  作者:lihe60
--  发布时间:2013/2/21 9:27:00
--  

如果随机在10个数里取9个数,又如何判断?

望小林上传一个例子。


--  作者:lin_hailun
--  发布时间:2013/2/21 9:28:00
--  
 代码。

For Each r As Row In Tables("表A").Rows
    r("第二列")=Nothing
    r.save()
Next

Dim count As Integer = 0
Dim ls As New List(Of Integer)
Do While count < 4
    Dim Val3 As Integer = Rand.Next(1,10)
    If ls.Contains(val3) = False Then
        Dim dr As DataRow=DataTables("表A").FINd("第一列=" & val3)
        ls.Add(val3)
        If dr IsNot Nothing
            dr("第二列")=val3
            dr.save()
            count += 1
        End If
    End If
Loop

Dim t As Table=e.Form.controls("table1").Table
Dim cmd As New SQLCommand
cmd.commandtext="select 第二列 from {表A} where 第二列 Is not null"
t.DataSource=cmd.ExecuteReader()

--  作者:lin_hailun
--  发布时间:2013/2/21 9:33:00
--  
以下是引用lihe60在2013-2-21 9:27:00的发言:

如果随机在10个数里取9个数,又如何判断?

望小林上传一个例子。


不过如果是 10个取9个,又不重复的话,最好倒过来思考。剔除某一个值。

或者你自己打乱这10个值,然后按顺序获取。