回复 6# xiehuahere
如果最大数不能大于500的话,最平均的分部应该是50*10.也就是说,如果前面任意出现一个比较大的随机数的话(比如251)将直接导致数字池中可以使用的数字减少,所以会出现1楼中数据越来越小,直致无限接近或等于0.
以下代码只是一个变通,逻辑较简单。
#Include <Date.au3>
#include <array.au3>
$max = 50
Dim $rand[10]
SRandom(_Date_Time_GetTickCount())
$rand[0]=Random(0,$max,1)
$temp=$rand[0]
For $i = 1 To 9
$max=Int((500-$temp)/(10-$i))
ConsoleWrite($max&@TAB&$temp&@CRLF)
$rand[$i] = Random(0, $max, 1)
$temp+=$rand[$i]
Next
Local $add
For $i=0 To UBound($rand)-1
$add+=$rand[$i]
Next
_ArrayDisplay($rand,"结果:"&$add)
|