在excel中160格中随机生成
Sub?随机() '随机产生1——380之间160个整数,且和为35680 Dim?sj(160)?As?Integer,?x?As?Long,?y?As?Integer,?n?As?Integer For?i?=?0?To?159 sj(i)?=?Int((380?-?1? ?1)?*?Rnd? ?1)?'将随机数赋值于数组 x?=?x? ?sj(i) Next?i '---------------------------------------------------------- y?=?Int((35680?-?x)?/?160)?'差值平均的整数 Do?'用y值修正数组 x?=?...全部
Sub?随机() '随机产生1——380之间160个整数,且和为35680 Dim?sj(160)?As?Integer,?x?As?Long,?y?As?Integer,?n?As?Integer For?i?=?0?To?159 sj(i)?=?Int((380?-?1? ?1)?*?Rnd? ?1)?'将随机数赋值于数组 x?=?x? ?sj(i) Next?i '---------------------------------------------------------- y?=?Int((35680?-?x)?/?160)?'差值平均的整数 Do?'用y值修正数组 x?=?0 For?i?=?0?To?159 If?sj(i)? ?y?>=?1?And?sj(i)? ?y??0?Then?'绝对值小于160的差值 y?=?(35680?-?x)?/?Abs(35680?-?x)?'用这个差值修正数组 For?i?=?0?To?159 If?sj(i)? ?y?>=?1?And?sj(i)? ?1? 追答 : 如果在另外列中生成160个数,把这一句修改即可:Cells(i 1, 1) = sj(i) '把数组值输入A1——A160单元格比如:在D2:D161生成,则改为:Cells(i 2, 4) = sj(i)。
收起