数学吧 关注:889,508贴子:8,752,127
  • 23回复贴,共1

有没有大神。

只看楼主收藏回复

求例四的解


来自Android客户端1楼2016-03-04 20:51回复



    来自Android客户端2楼2016-03-04 20:52
    回复
      11


      来自Android客户端3楼2016-03-04 20:55
      回复
        dd


        来自Android客户端4楼2016-03-04 20:55
        回复
          作业要自己做...不过。。。
          k = 13
          148
          7 3
          562
          ------------------------------------------
          k = 14
          158
          6 2
          734
          ------------------------------------------
          k = 12
          156
          8 4
          372
          ------------------------------------------
          k = 13
          175
          8 2
          436
          ------------------------------------------
          k = 13
          184
          7 3
          526
          ------------------------------------------
          k = 15
          348
          5 1
          726
          ------------------------------------------
          k = 14
          365
          7 1
          428
          ------------------------------------------
          k = 14
          374
          6 2
          518
          ------------------------------------------


          IP属地:新加坡5楼2016-03-04 21:40
          收起回复
            终于有人理我了,感动?。


            来自Android客户端6楼2016-03-04 21:46
            回复
              java 程序丢过去(不好看见谅)
              public class Huanfang {
              public static boolean noCollision(int[] array){
              boolean[] indicator = new boolean[8];
              for(int i: array){
              if(i == 0)
              continue;
              if(indicator[i - 1])
              return false;
              indicator[i - 1] = true;
              }
              return true;
              }
              public static void checkArray(int[] array) {
              if(array[0] + array[1] + array[2] == array[2]+array[4]+array[7] &&
              array[0] + array[3] + array[5] == array[5] + array[6] + array[7] &&
              array[0] + array[1] + array[2] == array[0] + array[3] + array[5]){
              System.out.println("k = " + (array[0] + array[1] + array[2]));
              System.out.println(array[0] + "\t" + array[1] + "\t" + array[2]);
              System.out.println(array[3] + "\t" + " " + "\t" + array[4]);
              System.out.println(array[5] + "\t" + array[6] + "\t" + array[7]);
              System.out.println("------------------------------------------");
              }else{
              }
              }
              public static void main(String[] args) {
              int[] values = new int[8];
              // loop over the smallest element of corner
              for(values[0] = 1; values[0] <=8; values[0]++){
              // case 1, largest at tr
              for(values[2] = 8; values[2] >= values[0]+3; values[2]--){
              for(values[1] = 1; values[1] <= 8; values[1]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[3] = 1; values[3] <= 8; values[3]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[4] = 1; values[4] <= 8; values[4]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[5] = values[0] + 1; values[5] < values[2]; values[5]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[6] = 1; values[6] <= 8; values[6]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[7] = values[0] + 1; values[7] < values[2]; values[7]++ ){
              if(!noCollision(values)){
              continue;
              }
              checkArray(values);
              }
              values[7] = 0;
              }
              values[6] = 0;
              }
              values[5] = 0;
              }
              values[4] = 0;
              }
              values[3] = 0;
              }
              values[1] = 0;
              }
              values[2] = 0;
              // case 2, largest at br
              for(values[7] = 8; values[7] >= values[0]+3; values[7]--){
              for(values[1] = 1; values[1] <= 8; values[1]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[3] = 1; values[3] <= 8; values[3]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[4] = 1; values[4] <= 8; values[4]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[5] = values[0] + 1; values[5] < values[7]; values[5]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[6] = 1; values[6] <= 8; values[6]++ ){
              if(!noCollision(values)){
              continue;
              }
              for(values[2] = values[0] + 1; values[2] < values[7]; values[2]++ ){
              if(!noCollision(values)){
              continue;
              }
              checkArray(values);
              }
              values[2] = 0;
              }
              values[6] = 0;
              }
              values[5] = 0;
              }
              values[4] = 0;
              }
              values[3] = 0;
              }
              values[1] = 0;
              }
              }
              }
              }


              IP属地:新加坡7楼2016-03-04 21:50
              收起回复