以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样产生的随机数,科学吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114981)

--  作者:xxfoxtable
--  发布时间:2018/2/27 10:35:00
--  这样产生的随机数,科学吗?
Dim Val3 As Integer = Rand.Next(200,300)实际应用中,有的数字产生的几率特别大
--  作者:有点甜
--  发布时间:2018/2/27 10:55:00
--  

肯定靠谱的,你可以这样测试

 

For i As Integer = 1 To 50
    Dim Val3 As Integer = Rand.Next(200,300)
    output.show(val3)
Next


--  作者:xxfoxtable
--  发布时间:2018/2/27 11:01:00
--  
    Dim drs =Tables("公司档案").DataTable.SQLSelect("地区=\'"& cb4.text & "\' and 属性=\'" & cb2.text &"\' And 是否停用<>\'是\'")
    If drs.count>0
        Dim Val3 As Integer = Rand.Next(0,drs.count-1)
        Dim text3 As WinForm.TextBox = e.Form.Controls("TextBox3")
        text3.text=drs(val3)("公司名称")
我是这样写的,客户反应,有一个公司被抽中了六次

Dim Val3 As Integer = Rand.Next(0,drs.count-1)
Dim Val3 As Integer = Rand.Next(1,drs.count)
是不是应该第二个写的对?

--  作者:有点甜
--  发布时间:2018/2/27 11:24:00
--  

1、要这样写 Dim Val3 As Integer = Rand.Next(0,drs.count) \'0到drs.count-1都有可能被抽到

 

2、抽取是随机的,比如有10个人,抽取5次,并不能保证5次都是不同的人的。

 

3、如果你希望抽过的不重复抽取,你应该把抽取的记录起来,如果再抽到,就继续抽

 

http://www.foxtable.com/webhelp/scr/2963.htm