描述:对一个特定序列的列表,进行随机排序(多次),可得到不同的排序列表。
例如:一个班级的考试座位排序,注意力训练排序...
输入:1,2,3,4,5,6,7,8,9,10 输出:这10个数的随机排序
常规思路:多次随机取值+交换
比如1-10,第一次取rand()%10+1 例如5 把5放在最前面,再从 1-4,6-10中取rand()%9+1
其他思路:
把这个输入当成一列,那么我给他加上另外一列随机值,并对这个随机值进行一次排序,即可。
例如:
1 x7 2
2 x1 -----> 1
3 x9 3
while read i
do
echo "$i $RANDOM"
done<1_25.txt | sort -k2n | cut -d" " -f 1 | awk '
BEGIN{
c=0
}
{
a[c]=$0
c=c+1
}
END{
j=0
for (i in a){
x[j]=a[i]
j=j+1
if( j >4){
print x[0]"\t"x[1]"\t"x[2]"\t"x[3]"\t"x[4]
j=0
}
}
}'