for 100
traceprint n分成m份(10,1,10,1,10)
next
function n分成m份(n,minm,maxm,mink,maxk)
/*
功能:把整数n分成m份,每份k
返回值:字符串:中间用","连接,分不了返回null
例子:traceprint n分成m份(10,1,10,1,10)
*/
dim sj,返回值,a,b,c
a=(maxk+(minm-1)*mink)-n
b=n-(mink+(maxm-1)*maxk)
c=maxk-mink
if a>0 and a<=c then
maxk=maxk-a
end if
if b>0 and b<=c then
mink=mink+b
end if
if a>c or b>c then
exit function
else
sj=取随机数(mink,maxk)
maxm=maxm-1
n=n-sj
end if
if n=0 then
n分成m份=sj
exit function
else
n分成m份=sj&","& n分成m份(n,minm,maxm,mink,maxk)
end if
end function
Function 取随机数(最小值, 最大值)
取随机数 = Int((最大值 - 最小值 + 1) * Rnd() + 最小值)
End Function