以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  实现按比例生成随机数的方法  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134050)

--  作者:ls93005
--  发布时间:2019/4/26 8:30:00
--  实现按比例生成随机数的方法
比如说我想在某一列中按比例生成随机数:

100个数,(位置在一列中完全随机)
5%(也就是5个,如果可以浮动更好)生成 10以下的数(0-9)随机。
95%(也就是95个)生成10及以上的随机数。

这样的有什么实现思路呢?

--  作者:有点蓝
--  发布时间:2019/4/26 9:54:00
--  
Dim c As Integer = 5
For i As Integer = 1 To c
    Output.Show(Rand.Next(0,10))
Next

For i As Integer = c+1 To 100
    Output.Show(Rand.Next(10,10000))
Next

--  作者:ls93005
--  发布时间:2019/4/26 11:37:00
--  
老师你好,那么如何让这些数字完全随机排列?
--  作者:ls93005
--  发布时间:2019/4/26 11:39:00
--  
还有一个问题,就是,申明变量时可以用For next 循环把变量名连起来用吗?

比如 Dim drs & Index As String = "drs" & Index 这样子,但是这样测试不成功。

For Index As Integer =  0 To 2
Dim drs & Index As String = "drs" & Index

                Dim drs  As new List (of String)
                Dim drx (9) As String
                For i1 As Integer = 0 To drx .Length-1
                    drx1(i1) = sheetn(i)(7,8+i1).Text
                Next
                For Each dr  As String In drx 
                    If dr .Length <> 0  Then
                        drs .Add(dr )
                    End If
                Next
                For Each drsj  As String In drs 
                    Dim nrow   As DataRow = DataTables("路缘石检查数据").AddNew
                    nrow ("公里桩") = glz.TrimEnd("","x","l","s",".","左","右","_","侧").Replace("-","~")
                    nrow ("百米桩") = sheetn(i)(3,2).Text
                    nrow ("项次") = 1
                    nrow ("数据内容") = drsj 
                    nrow ("分表号") =  1 + i
                    nrow ("工程部位") = sheetn(i)(3,4).Text
                Next
Next

--  作者:有点蓝
--  发布时间:2019/4/26 11:53:00
--  
以下是引用ls93005在2019/4/26 11:37:00的发言:
老师你好,那么如何让这些数字完全随机排列?

本来就是随机的
--  作者:有点蓝
--  发布时间:2019/4/26 11:53:00
--  
回4楼。不能这样定义,只能一个个定义。使用数组或者集合不就行了
[此贴子已经被作者于2019/4/26 11:54:30编辑过]

--  作者:ls93005
--  发布时间:2019/4/26 11:58:00
--  
这样应该是,先生成第一个小于10的,再生成大于10的吧?
--  作者:有点蓝
--  发布时间:2019/4/26 12:04:00
--  
以下是引用ls93005在2019/4/26 11:58:00的发言:
这样应该是,先生成第一个小于10的,再生成大于10的吧?

没看懂,截图详细说明一下
--  作者:ls93005
--  发布时间:2019/4/26 12:07:00
--  
就是这些 大于10和小于10的数字,要在整个数列中的位置完全随机
--  作者:ls93005
--  发布时间:2019/4/26 12:24:00
--  
其实也就是有没方法把一个数组或集合全部打乱顺序