对n个随机排列的十位数,等距离取四个数字出来

题目:

对n个随机排列的十位数,等距离取四个数字出来(包括正向间隔1个距离取数、反向1个距离取数、正向2个距离取数和反向2个距离取数。间隔一个数子,称为1个距离,间隔2个数字,称为2个距离。就取这两种距离就够了)。比如给你一个十位数,01 02 03 07 08 09 06 05 04 10(随机排序的),然后按照按照以上说的四种间隔取数,先做“正向间隔1个距离取数”01 03 08 06,02 07 09 05,03 08 06 04,07 09 05 10,08 06 04 01,09 05 10 02,06 04 0,1 03,05 10 02 07,04 01 03 08,10 02 07 09;再做“反向1个距离取数”10 05 09 07,04 06 08 03,05 09 07 02,06 08 03 01,09 07 02 10,08 03 01 04,07 02 10 05,03 01 04 06,02 10 05 09,01 04 06 08;再做“正向2个距离取数”01 07 06 10,02 08 05 01...........;再做“反向2个距离取数”10 06 0


代码:

 String[] allSen = {"01","02","03","04","05","06","07","08","09","10"};
      Random random = new Random();
      //将十个数随机排序
      for(int i=0;i<allSen.length;i++){
      int aaa = random.nextInt(allSen.length);
      String temp = allSen[i];
      allSen[i] = allSen[aaa];
      allSen[aaa] = temp;
      }
//       LinkList linkList = new LinkList();
      String[] one = new String[4];
      for(int i=0;i<allSen.length;i++){
     System.out.println(allSen[i]);
      }
      System.out.println("正1个");
      for(int i=0;i<allSen.length;i++){
//      if(i == 0) {
//      linkList.addFirstNode(allSen[i]);
//      }else {
//      linkList.add(i-1, allSen[i]);
//      }
     int k = i;
     for(int j=0;j<4;j++) {
     if(j == 0) {
     one[j] = allSen[i];  
     }else {
     k += 2;
     one[j] = allSen[k%10];
     }
     System.out.print( one[j]);
     }
     System.out.println();
      }
      System.out.println("负1个");
      
      for(int i=allSen.length-1;i>= 0;i--){
   
     int k = i;
     for(int j=0;j<4;j++) {
     if(j == 0) {
     one[j] = allSen[i];  
     }else {
     k -= 2;
     one[j] = allSen[(k+10)%10];
     }
     System.out.print( one[j]);
     }
     System.out.println();
      }
      System.out.println("正2个");
      for(int i=0;i<allSen.length;i++){
     
     int k = i;
     for(int j=0;j<4;j++) {
     if(j == 0) {
     one[j] = allSen[i];  
     }else {
     k += 3;
     one[j] = allSen[k%10];
     }
     System.out.print( one[j]);
     }
     System.out.println("");
      }
      System.out.println("负2个");
      for(int i=allSen.length-1;i>=0;i--){
     
     int k = i;
     for(int j=0;j<4;j++) {
     if(j == 0) {
     one[j] = allSen[i];  
     }else {
     k -= 3;
     one[j] = allSen[(k+10)%10];
     }
     System.out.print(one[j]);
     }
     System.out.println("");
      }

猜你喜欢

转载自blog.csdn.net/u010015933/article/details/80513987