+ -
当前位置:首页 → 问答吧 → 一组数据,如何随机筛选数字?

一组数据,如何随机筛选数字?

时间:2011-02-09

来源:互联网

数据格式如下:

30
53
23  
56
36
21
20
20
89
22
30

数据中的数字有重复,我想随机抽选出 5个数字,如何实现??

作者: vitas333_cu   发布时间: 2011-02-09

回复 vitas333_cu


随机选出的5个不允许重复?

作者: ly5066113   发布时间: 2011-02-09

回复 ly5066113

对,不允许重复。

作者: vitas333_cu   发布时间: 2011-02-09

随机vs不允许  有点乱

作者: dreamingbar   发布时间: 2011-02-09

  1. awk 'BEGIN{srand()}{a[rand()","NR]=$1}END{for(i in a)if(!b[a[i]]++){print a[i];if(++j==5)exit}}' urfile
复制代码

作者: ly5066113   发布时间: 2011-02-09

awk 'NF==1{a[NR]=$1}END{srand();c=0;while(c<5){x=int(rand()*NR);if(b[x]!=1&&a[x]!=""){print a[x];b[x]==1;}}}'

作者: cjaizss   发布时间: 2011-02-09

回复 cjaizss

死循环了。。

作者: vitas333_cu   发布时间: 2011-02-09

回复 ly5066113


可以机选, 但是连续机选的情况会发现 会有很多数字重复。 也就是说第一次机选和第二次机选的数字中,有重复1.2个数字,而且重复的次数很多。

我后来是通过数组的方式,将筛选的数字存到数组中,根据数组的序列 ,调用rand() 函数机选,并且间隔时间,我自己发现rand()函数似乎和时间有关系,时间短,选中的数字相同率会增加。

作者: vitas333_cu   发布时间: 2011-02-09

热门下载

更多