excel 生成5*5的不重复随机数,范围在1-5

2024-11-22 18:42:19
推荐回答(3个)
回答1:

5×5个不重复的1-5的数,这说起来有点不可思议,就5个整数,要它变成25个不重复的数可能吗,只要是相同的你都要增加一次循环,它能不花很长时间吗,因为重复的数太多了,你用5个数写成25格,你能写吗。把“Cells(j, i) = Int(Rnd() * 5) + 1”改成“Cells(j, i) = Rnd() * 5 ”就可以了,这样25个格里就是1-5之间的数了。
代码是可行,至于提高速度那就是算法的问题,你可以思考一下,用什么算法好,因为我的数学比较差,所以无能为力了。
看着办,给点分吧!
确实用数组会快些,定义一个二维数组,如a(1 to 5,1 to 5)也是一个5×5的格子。给数组赋值后,再将数组的内容写到EXCEL单元格里,会快一些。因为定义的数组是在内存里的一块区域,计算机访问速度很快的,而计算机读取和写入EXCEL单元格的速度相对会慢得多,你在生成随机数的时候它会频繁读取和写入EXCEL单元格。
你可以把Cells(j, i) 改成a(j,i)就可以了,再在最后用两层循环数组赋值给单元格:
for i=1 to 5
for j=1 to 5
cells(j,i)=a(j,i)
next j
next i
这样,计算机访问单元格就这一次,所以大大提高运算速度。

回答2:

不明白你要表达的意思

回答3:

楼主试试用数组,会快一些.