根据无限猴子定理,在无限的时间内反复将有限的数列打乱,将必然存在符合给定规则的数列。
关于无限猴子按大小排序的Java代码:
public class Untitled{
static int[] source=new int[10],res=new int[10];
public static void main(String[] args) {
int count = 0;
for(int i=0;i<10;i++){
source[i]=(int)(Math.random()*10);
System.out.print(source[i]);
}//生成一组随机数列
System.out.println();
while(sort()) count++;
for(int i=0;i<10;i++){
System.out.print(res[i]);
}
System.out.println();
System.out.println("共运行了"+count+"次");
}
static boolean sort(){
int[] temp=new int[10];
for(int i=0;i<10;i++) temp[i]=source[i];
for(int i=0;i<10;i++){
int random=(int)(Math.random()*10);
while(temp[random]==10) random=(int)(Math.random()*10);
res[i]=temp[random];
temp[random]=10;
}//将备份的数列打乱
for(int i=0;i<9;i++) if(res[i]>res[i+1]) return true; //从小到大排列
return false;
}
}