以文本方式查看主题

-  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=142873)

--  作者:dy6608
--  发布时间:2019/11/7 21:10:00
--  [求助]生成随机数
有点甜老师或其他前辈:
随机生成10个数,且生成的10个数之和等于100,求提示或代码
--  作者:有点酸
--  发布时间:2019/11/7 23:17:00
--  
例如生成10个0到20之间的随机数,和为100:

Dim lst As new List(of Integer)
For i As Integer= 0 To 9
    lst.add(rand.Next(0,20))
Next
Dim rd As Integer = lst.sum - 100
Dim sp As Integer = iif(rd>0, -1,1)
Do While rd <> 0
    Dim idx As Integer = rand.Next(1,10)
    If lst(idx) + sp >= 0 Then
        lst(idx) = lst(idx) + sp
        rd = rd + sp
    End If
Loop
For Each val As Integer In lst
    output.show(val)
Next
output.show("合计:" & lst.Sum)

你可以在命令窗口执行上面的代码

--  作者:dy6608
--  发布时间:2019/11/8 10:31:00
--  
谢谢老师图片点击可在新窗口打开查看