Advertisement
afghan

9gag puzzle solving

May 26th, 2015
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.06 KB | None | 0 0
  1. <?php
  2.  
  3. // Brute-force solving of http://9gag.com/gag/aWW3M06
  4.  
  5. function pc_permute($items, $perms = array( )) {
  6.     if (empty($items)) {
  7.         return array($perms);
  8.     }
  9.    
  10.     $return = array();
  11.     for ($i = count($items) - 1; $i >= 0; --$i) {
  12.         $newitems = $items;
  13.         $newperms = $perms;
  14.         list($foo) = array_splice($newitems, $i, 1);
  15.         array_unshift($newperms, $foo);
  16.         $return = array_merge($return, pc_permute($newitems, $newperms));
  17.     }
  18.      
  19.      return $return;
  20. }
  21.  
  22. foreach (pc_permute(range(1,9)) as $set) {
  23.     $result = $set[0]+13*$set[1]/$set[2]+$set[3]+12*$set[4]-$set[5]-11+$set[6]*$set[7]/$set[8]-10;
  24.     if ($result == 66) {
  25.         echo implode(' ', $set) . "\n";
  26.     }
  27. }
  28.  
  29. /** Results:
  30.  
  31. 1 2 6 4 7 8 3 5 9
  32. 4 2 6 1 7 8 3 5 9
  33. 1 2 6 4 7 8 5 3 9
  34. 4 2 6 1 7 8 5 3 9
  35. 1 3 4 7 6 5 2 9 8
  36. 7 3 4 1 6 5 2 9 8
  37. 1 3 2 9 5 6 4 7 8
  38. 9 3 2 1 5 6 4 7 8
  39. 2 9 6 3 5 1 4 7 8
  40. 3 9 6 2 5 1 4 7 8
  41. 2 1 4 3 7 9 5 6 8
  42. 3 1 4 2 7 9 5 6 8
  43. 2 1 4 3 7 9 6 5 8
  44. 3 1 4 2 7 9 6 5 8
  45. 1 3 6 2 7 9 4 5 8
  46. 2 3 6 1 7 9 4 5 8
  47. 1 3 2 9 5 6 7 4 8
  48. 9 3 2 1 5 6 7 4 8
  49. 2 9 6 3 5 1 7 4 8
  50. 3 9 6 2 5 1 7 4 8
  51. 1 3 6 2 7 9 5 4 8
  52. 2 3 6 1 7 9 5 4 8
  53. 5 1 2 9 6 7 3 4 8
  54. 9 1 2 5 6 7 3 4 8
  55. 1 9 6 7 5 2 3 4 8
  56. 7 9 6 1 5 2 3 4 8
  57. 5 1 2 9 6 7 4 3 8
  58. 9 1 2 5 6 7 4 3 8
  59. 1 9 6 7 5 2 4 3 8
  60. 7 9 6 1 5 2 4 3 8
  61. 7 1 4 9 6 5 2 3 8
  62. 9 1 4 7 6 5 2 3 8
  63. 1 3 4 7 6 5 9 2 8
  64. 7 3 4 1 6 5 9 2 8
  65. 7 1 4 9 6 5 3 2 8
  66. 9 1 4 7 6 5 3 2 8
  67. 3 2 1 5 4 7 8 9 6
  68. 5 2 1 3 4 7 8 9 6
  69. 1 3 2 4 5 8 7 9 6
  70. 4 3 2 1 5 8 7 9 6
  71. 1 5 2 3 4 8 7 9 6
  72. 3 5 2 1 4 8 7 9 6
  73. 3 2 4 8 5 1 7 9 6
  74. 8 2 4 3 5 1 7 9 6
  75. 1 5 2 8 4 7 3 9 6
  76. 8 5 2 1 4 7 3 9 6
  77. 3 2 1 5 4 7 9 8 6
  78. 5 2 1 3 4 7 9 8 6
  79. 1 5 3 9 4 2 7 8 6
  80. 9 5 3 1 4 2 7 8 6
  81. 5 4 1 9 2 7 3 8 6
  82. 9 4 1 5 2 7 3 8 6
  83. 1 3 2 4 5 8 9 7 6
  84. 4 3 2 1 5 8 9 7 6
  85. 1 5 2 3 4 8 9 7 6
  86. 3 5 2 1 4 8 9 7 6
  87. 3 2 4 8 5 1 9 7 6
  88. 8 2 4 3 5 1 9 7 6
  89. 1 5 3 9 4 2 8 7 6
  90. 9 5 3 1 4 2 8 7 6
  91. 1 4 8 2 7 9 3 5 6
  92. 2 4 8 1 7 9 3 5 6
  93. 1 3 9 4 7 8 2 5 6
  94. 4 3 9 1 7 8 2 5 6
  95. 1 5 2 8 4 7 9 3 6
  96. 8 5 2 1 4 7 9 3 6
  97. 5 4 1 9 2 7 8 3 6
  98. 9 4 1 5 2 7 8 3 6
  99. 1 4 8 2 7 9 5 3 6
  100. 2 4 8 1 7 9 5 3 6
  101. 7 5 2 8 4 9 1 3 6
  102. 8 5 2 7 4 9 1 3 6
  103. 1 3 9 4 7 8 5 2 6
  104. 4 3 9 1 7 8 5 2 6
  105. 7 5 2 8 4 9 3 1 6
  106. 8 5 2 7 4 9 3 1 6
  107. 5 3 1 7 2 6 8 9 4
  108. 7 3 1 5 2 6 8 9 4
  109. 3 2 8 6 5 1 7 9 4
  110. 6 2 8 3 5 1 7 9 4
  111. 5 3 1 7 2 6 9 8 4
  112. 7 3 1 5 2 6 9 8 4
  113. 6 3 1 9 2 5 7 8 4
  114. 9 3 1 6 2 5 7 8 4
  115. 5 9 3 6 2 1 7 8 4
  116. 6 9 3 5 2 1 7 8 4
  117. 3 2 8 6 5 1 9 7 4
  118. 6 2 8 3 5 1 9 7 4
  119. 6 3 1 9 2 5 8 7 4
  120. 9 3 1 6 2 5 8 7 4
  121. 5 9 3 6 2 1 8 7 4
  122. 6 9 3 5 2 1 8 7 4
  123. 3 9 2 8 1 5 6 7 4
  124. 8 9 2 3 1 5 6 7 4
  125. 3 9 2 8 1 5 7 6 4
  126. 8 9 2 3 1 5 7 6 4
  127. 7 3 2 8 5 9 1 6 4
  128. 8 3 2 7 5 9 1 6 4
  129. 5 7 2 8 3 9 1 6 4
  130. 8 7 2 5 3 9 1 6 4
  131. 7 2 8 9 6 5 1 3 4
  132. 9 2 8 7 6 5 1 3 4
  133. 7 3 2 8 5 9 6 1 4
  134. 8 3 2 7 5 9 6 1 4
  135. 5 7 2 8 3 9 6 1 4
  136. 8 7 2 5 3 9 6 1 4
  137. 7 2 8 9 6 5 3 1 4
  138. 9 2 8 7 6 5 3 1 4
  139. 2 8 6 9 4 1 5 7 3
  140. 9 8 6 2 4 1 5 7 3
  141. 2 8 6 9 4 1 7 5 3
  142. 9 8 6 2 4 1 7 5 3
  143. 1 9 6 4 5 8 3 7 2
  144. 4 9 6 1 5 8 3 7 2
  145. 3 6 4 9 5 8 1 7 2
  146. 9 6 4 3 5 8 1 7 2
  147. 1 9 6 4 5 8 7 3 2
  148. 4 9 6 1 5 8 7 3 2
  149. 7 6 4 8 5 9 1 3 2
  150. 8 6 4 7 5 9 1 3 2
  151. 5 4 8 9 6 7 1 3 2
  152. 9 4 8 5 6 7 1 3 2
  153. 3 6 4 9 5 8 7 1 2
  154. 9 6 4 3 5 8 7 1 2
  155. 7 6 4 8 5 9 3 1 2
  156. 8 6 4 7 5 9 3 1 2
  157. 5 4 8 9 6 7 3 1 2
  158. 9 4 8 5 6 7 3 1 2
  159.  
  160. **/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement