excel中的随机排序问题

excel中的随机排序问题,第1张

你是要用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],并对数组中的元素从小到大排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9503368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存