你是要用RAND()函数对其他列的数据随机排序吧。RADN()函数默认输出0至1之间的随机数(有六位小数)。也可将公式改为:
=INT(RAND()100) 得到1至100之间的随机自然数
=INT(RAND()1000) 得到1至1000之间的随机自然数
将公式向下复制。然后再按该列排序,你的数据就是随机排序了。
问题或许可以是这样:产生m个随机正整数,要求范围是从1到n,平且它们互不相同 问题或许可以这样解决:假设我们已经有了经过排序的(升序),且满足要求的k个正整数,我们继续: 1、在从1到n-k的区间范围内,产生一个随机的正整数i1; 2、统计在已有序列中比i1小的数,将其个数加到i1上,得到i2;再统计从i1到i2数的个数,得到i3;一直循环,直到i不变为止然后,把i插入已有的序列这个过程相当于从头数出i1个空白,以此来保证新的数是随机的 3、这时得到了k+1个满足要求的数,然后就循环吧 上面的方法适用于n很大,但是m很小的时候 如果m和n都很大,并且希望一次性的产生,那么: 1先产生有一定冗余的随机正整数,然后排序,然后去掉相同的数 如果,产生了超额的数,可以将数列再打乱顺序,然后,取出符合规定的数目的数 当然,也可以两种方法相结合,就是: 1、先产生超过需求的、有一定冗余的随机正整数,然后排序,然后去掉相同的数,并且保存下来记录它的数目m1>m; 2、当要用时,在产生一个从1到m的随机数j,然后取出数据库中第j个数,输出,并且把它从数据库中删除到
#include <stdioh>
#include <timeh>
int main()
{
int cn[100] = {0},i=0;
srand(time(NULL));
for (i=0;i<10;i++)
{
cn[rand()%100]++;
}
for (i=0;i<100;i++)
{
while(cn[i]--!=0)
{
printf("[%d]",i);
}
}
return 0;
}
[9][23][36][44][48][52][56][58][60][84]
可以考虑用数据库中的随机排序的方法来实现:
select top 3 colmname from tablename order by newid()
这个语句会在MSSQL中将所得到的记录进行随机排序,而每次会得到不同的结果!
以上就是关于excel中的随机排序问题全部的内容,包括:excel中的随机排序问题、如何生成位于0至n-1之间的k个不同的随机顺序的随机整数、数据库语言编随机产生10个100以内的数存入数组A[1]-A[10],并对数组中的元素从小到大排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)