init=100
for i=1 to 9
    randmize
    d(i)=init*rnd
    init=init-d(i)
    sum=sum+d(i)
next
d(10)=100-sum

解决方案 »

  1.   

    以上有误,算来以上sum之和大于100,难道要负数
    应对所取的数作控制,
    dim max,min
    randmize now
    num1=max-min+rnd-1'max为控制范围内最大数,min为最小数
    其他如楼上
      

  2.   

    随便产生10个随机数 s1,s2...,将它们加起来,和为sum,
    所求序列为         t1,t2,.., 和为100,
    则: t1 = 100 * s1 / sum 
    (需要园整)
      

  3.   

    onestab的方法比较合理,这样才是真正的随机数,园整后多或少的数可以再使用一个(1-10)之间的随机数分配下去。
      

  4.   

    一个数值的精度高的数据,通过一定的算法变成精度低点的叫园整,其实象INT等也可以叫园整。
      

  5.   

    很简单啊。 用从午夜流失的秒数做种子。 得到的随机数的范围,可以这样
     第一次 0--100      产生  N1
     第一次 0--100-N1   ..    N2
     第一次 0--100-N2   ..    N3
     第一次 0--100-N3   ..    4N4
     第一次 0--100-N4.  ..    N5就可以了。当然,你要控制几个数的生成,当然有范围了。