Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. <html>
  2. <head>
  3. <script>
  4. function makeOrders(n){
  5. if(n == 0){
  6. return [[]];
  7. }
  8. if(n == 1){
  9. return [[0]];
  10. }
  11. var ret = [];
  12. var suborders = makeOrders(n-1)
  13. for(var i = 0; i < n; i++){
  14. for(var j = 0; j < suborders.length; j++){
  15. var suborder = suborders[j];
  16. var order = suborder.concat();
  17. order.splice(i,0,n-1);
  18. ret.push(order);
  19. }
  20. }
  21.  
  22. return ret;
  23. }
  24. /*console.log(makeOrders(0));
  25. console.log(makeOrders(1));
  26. console.log(makeOrders(2));*/
  27.  
  28. var table = [
  29. [1,2],
  30. [3,4]
  31. ];
  32.  
  33. /*logTable(table);*/
  34.  
  35. function logTable(t){
  36. console.log("------------------");
  37. for(var i = 0; i < t.length; i++){
  38. console.log(t[i]);
  39. }
  40. console.log("------------------");
  41. }
  42.  
  43. /*logTable(reorder(table,[0,1]));
  44. logTable(reorder(table,[1,0]));*/
  45.  
  46. function reorder(table, order){
  47. var ret = new Array(order.length);
  48. for(var i = 0; i < order.length; i++){
  49. ret[i] = new Array(order.length);
  50. for(var j = 0; j < order.length; j++){
  51. ret[i][j] = table[order[i]][order[j]]
  52. }
  53. }
  54. return ret;
  55. }
  56.  
  57. var table = [
  58. [1,2,3],
  59. [4,5,6],
  60. [7,8,9]
  61. ];
  62. /*
  63. logTable(reorder(table,[0,2,1]));*/
  64.  
  65. var orders = makeOrders(8)
  66. console.log(orders.length);
  67.  
  68. var table = [
  69. [0,1,1,2,1,2,2,3],
  70. [1,0,2,1,2,1,3,2],
  71. [1,2,0,1,2,3,2,2],
  72. [2,1,1,0,3,2,2,1],
  73. [1,2,2,3,0,1,1,2],
  74. [2,1,3,2,1,0,2,1],
  75. [2,3,2,2,1,2,0,1],
  76. [3,2,2,1,2,1,1,0]
  77. ];
  78.  
  79.  
  80.  
  81. for(var i = 0; i < 8; i++){
  82. for(var j = 0; j < 8; j++){
  83. table[i][j] = table[i][j] <= 1 ? 0 : 1;
  84. }
  85. }
  86.  
  87. logTable(table)
  88.  
  89. function evaluate(table){
  90. var ret = 0;
  91. for(var i = 0; i < 8; i++){
  92. for(var j = 0; j < 8; j++){
  93. ret += Math.abs(i-j) < 2 ? table[i][j] : 0;
  94. }
  95. }
  96. return ret;
  97. }
  98.  
  99. console.log(evaluate(table));
  100.  
  101. var minScore = 10000;
  102. for(var i = 0; i < orders.length; i++){
  103. var score = evaluate(reorder(table,orders[i]));
  104. minScore = Math.min(minScore, score);
  105. }
  106. console.log(minScore);
  107.  
  108. </script>
  109. </head>
  110. <body>
  111. test
  112. </body>
  113. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement