|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshop.. А вот если на входе может быть любое поле, а не a1 это уже интересней. и всё же - вашу мысль я не догоняю.. пусть на входе будет любое поле (b8, например). есть возможность на него плюнуть, решить задачу начиная с любого другого поля (a1, например) и если решение циклическое, то для представления решения с началом в b8 достаточно тупо перетащить substr_от_instr_b8 из морды в хвост ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2012, 19:24 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawishdbms_photoshop.. А вот если на входе может быть любое поле, а не a1 это уже интересней. и всё же - вашу мысль я не догоняю.. пусть на входе будет любое поле (b8, например). есть возможность на него плюнуть, решить задачу начиная с любого другого поля (a1, например) и если решение циклическое, то для представления решения с началом в b8 достаточно тупо перетащить substr_от_instr_b8 из морды в хвостОк, тогда я не догоняю в чем вообще сложность. Чисто от лени я решал без создания дополнительных объектов, кроме того у меня в коде можно видеть "не очень хорошие" названия переменных и прочие антипаттерны. В общем цель была как можно быстрее написать эту рутину. Красным выделено ноу-хау решения. Уже озвученный правило Варнсдорфа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Процесс поиска замкнутого я уже не автоматизировал, легче было поклацать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 01:25 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
попробовал sql-ем таблички Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
запрос Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369.
на 28 ходу план запроса строится 5 минут :)) оракл, 9-ка по крайней мере, не хочет материализовать запрос из материализованного подзапроса ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 07:19 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshoporawishпропущено... и всё же - вашу мысль я не догоняю.. пусть на входе будет любое поле (b8, например). есть возможность на него плюнуть, решить задачу начиная с любого другого поля (a1, например) и если решение циклическое, то для представления решения с началом в b8 достаточно тупо перетащить substr_от_instr_b8 из морды в хвостОк, тогда я не догоняю в чем вообще сложность. Чисто от лени я решал без создания дополнительных объектов, кроме того у меня в коде можно видеть "не очень хорошие" названия переменных и прочие антипаттерны. В общем цель была как можно быстрее написать эту рутину. Красным выделено ноу-хау решения. .. Процесс поиска замкнутого я уже не автоматизировал, легче было поклацать. а я считаю, что зря вы скромничаете - в том смысле, что очень хорошее решение нарисовали. для задачи 1) оно просто вне конкуренции процесс поклацать до циклического (т.е. решение задачи 2 ) тут Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141.
из чего видно, что и задача 2 таким способом решается (по крайней мере) на порядок быстрее, чем моим алгоритмом (сейчас опубликую). но остаются еще: задача 3) - 1001 решение найти и задача 4) таки попробовать оценить их (решений) количество :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 13:37 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshop, класс) orawish задача 4 решается у dbms_photoshop примерно, если посчитать произведение всех order by substr(column_value, 1, 2) на каждом шаге. конечно не все из них ведут к правильному решению но ошибку будет на 1-2 порядка) а вот третья задачка интересная, но думаю тоже можно оттолкнутся от той же строки сортировки что и в предыдушем случае только не сортировать по , dbms_random.value а ввести еще какой нибудь дополнительный массив где отмечать пройденные \ не пройденные маршруты. то есть достигнув решения. возвращаемся на n шагов назад. где substr(column_value, 1, 2)>1 и идем в другую сторону. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 14:13 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Vintdbms_photoshop, класс) orawish задача 4 решается у dbms_photoshop примерно, если посчитать произведение всех order by substr(column_value, 1, 2) на каждом шаге. конечно не все из них ведут к правильному решению но ошибку будет на 1-2 порядка) а вот третья задачка интересная, но думаю тоже можно оттолкнутся от той же строки сортировки что и в предыдушем случае только не сортировать по , dbms_random.value а ввести еще какой нибудь дополнительный массив где отмечать пройденные \ не пройденные маршруты. то есть достигнув решения. возвращаемся на n шагов назад. где substr(column_value, 1, 2)>1 и идем в другую сторону. рассуждения хорошо бы подкреплять вычислениями (многократно ужЕ проверено, что умозрительные оценки в данной задаче совершенно не оправдываются :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 14:21 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
мой способ - тут Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202.
т.е. таки брутфорс, но не задачи целиком, а задачи, разделённой на три фазы (по брутфорсу на фазу) на самом деле - на картинках, что я рисовал выше, сказано буквально всё 1) фаза - 8 ходов, на протяжении которых конь не должен выходить из своего квадранта доски (4x4), и не должен допускать, чтобы вся траектория имела два соседних поля по вертикали. а также требуется, чтобы на 8 ходу конь пришел к полю, соседнему (по горизонтали) с полем старта. 2) фаза - ходы с 9 по 32. здесь в движение приходит и голова и хвост траектории одновременно. то есть скачут как бы два, коня, но одной дивизией - т.е. как бы строй держат ) на каждом ходу. вариантов не много - перебор их проходит быстро. 3) свободной остается половина доски. вторая половина доски здОрово ограничивает количество вариантов. можно, вроде бы и попробовать перебрать их все. однако - увы и ах.. вариантов всё равно слишком, слишком много. тут приходится подключать pl/sql - первым делом , для того, чтобы отсекать ходы после которых гарантированно решение не может быть получено. и вторым делом - для исключения дубликатов позиции (разумеется, это = пройденные поля+позиция коня ). Все. теперь про результаты. если на каждом ходу исключать (из дальнейшего рассмотрения ) дубликаты позиций, то, глядя на позицию после 32 хода, очевидно что решений уникальных не может быть больше двух - ведь подходов к финальной точке лишь два. что, собственно и имеем в результате нашего запроса. Если дубликаты позиций не исключать (комментируем в пакете) Код: plsql 1. 2. 3.
, то решение всё равно будет получено (за в 5-7 раз бОльшее время = 135 секунд у меня получилось ) и решений этих будет числом 21390. пора сделать первый вывод. поскольку на 32 ходу позиция на доске симметричная, то для первых 32 ходов (если мы не будем заставлять коня держать строй ) имеем столько же (ровно 21390) вариантов траектории. умножаем.. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:07 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawish, надеюсь за плагиат не побьют)) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117.
в зависимости от количества ветвлений сильно различается количество вариантов... но свои 2 порядка я получил)) от 10т до 1м ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:12 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshop, это попытка таки понакликать (тупым упорством) 1001 различное решение задачи 2) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131.
результат Код: plsql 1. 2. 3. 4. 5.
то есть удалось это за 48 минут, в результате 146611 повторений вашей процедуры (т.е. столько решений задачи 1 было достигнуто), чтобы получить 1001+1870 решений задачи 2, из которых 1001 уникальны ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 15:22 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Vint, однако, не верю. :) по той простой причине, что мои прикидки дают совсем-совсем другой по порядку величины диапазон значений, где может быть результат. вот смотрИте (вспомним комбинаторику) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
это количество вариантов позиции, которая могла бы возникнуть на 32 ходу, в случае если бы конь умел летать , но на каждом ходу таки менял цвет поля приземления. реальных позиций, разумеется меньше. но намного ли? на порядок? на два? на три? да хотя бы и так - тут этих порядков 18. ну а количество вариантов траектории для достижения каждой позиции - см. выше результат брутфорса. так что, навскидку, я сказал бы - 1е20..1e25 дополнительные вычисления, разумеется, помогут это уточнить ( / или опровергнуть :) на досуге покручу ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 16:18 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawish, в том то и дело... конь летать не умеет.. он из каждой позиции может сдвинутся всего на n позиций сумма которых и дает в моем примере ветвления. и каждый ход их максимум 8,а минимум 2, чем и пользуется правило варнсдорфа. произведение всех ветвлений(а не факториал как у Вас) дает количество вариантов, которое было бы, если бы у нас была начальная позиция. но примерно... так как ветвлений может быть от ~75 до ~90, потому как зависит от слепого рандома... и поэтоу как раз получаются числа от нескольких тысяч до нескольких сотен тысяч вариантов на каждый маршрут... я очень смутно помню что в теории игр было чтото похожее и даже методы оценки таких маршрутов... но это было так давно, что успело очень прочно забыться) итого, надо ограничить как то условия. например тем, что позиция известна. иначе вариантов будет в 64 раза больше)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 16:31 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Vintorawish, в том то и дело... конь летать не умеет.. он из каждой позиции может сдвинутся всего на n позиций сумма которых и дает в моем примере ветвления. и каждый ход их максимум 8,а минимум 2, чем и пользуется правило варнсдорфа. произведение всех ветвлений(а не факториал как у Вас) дает количество вариантов, которое было бы, если бы у нас была начальная позиция. но примерно... так как ветвлений может быть от ~75 до ~90, потому как зависит от слепого рандома... и поэтоу как раз получаются числа от нескольких тысяч до нескольких сотен тысяч вариантов на каждый маршрут... я очень смутно помню что в теории игр было чтото похожее и даже методы оценки таких маршрутов... но это было так давно, что успело очень прочно забыться) итого, надо ограничить как то условия. например тем, что позиция известна. иначе вариантов будет в 64 раза больше)) как быть с тем, что Код: plsql 1. 2.
? и это только варианты, которые обязаны на 32 ходу соответствовать одной позиции, а их, (позиций) 10 в степени до-фи-га ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 16:44 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawish, если допустить, что мы начинаем из угла, на первом ходу 2 варианта, на втором 10, на третьем около 80, на четвертом меньше тысячи.. это все можно подсчитать... но потом количество вариантов не продолжает расти экспоненциально, так как начинают попадаться уже пройденные клетки... количество стабилизируется, кстати хорошая задача найти ход с которого количество вариантов не растёт, и к концу ходов начинает спадать. в зависимости от конечных условий всё быстрее(например если из начальной позиции надо прыгнуть до конечной). опять же всё из теории игр. сейчас появилось немного времени попытаюсь найти. где то я точно читал про подобную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:07 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Vintorawish, если допустить, что мы начинаем из угла, на первом ходу 2 варианта, на втором 10, на третьем около 80, на четвертом меньше тысячи.. это все можно подсчитать... но потом количество вариантов не продолжает расти экспоненциально, так как начинают попадаться уже пройденные клетки... количество стабилизируется, кстати хорошая задача найти ход с которого количество вариантов не растёт, и к концу ходов начинает спадать. в зависимости от конечных условий всё быстрее(например если из начальной позиции надо прыгнуть до конечной). опять же всё из теории игр. сейчас появилось немного времени попытаюсь найти. где то я точно читал про подобную задачу. ну, поскольку я (в основном) долбил задачу от середины, то уверенно могу сказать - и после 32 хода количество вариантов на каждом последующем ходу продолжает будь-здоров как расти (настолько, что перебор без дополнительных мер не имеет шансов). и еще - можете посмотреть на каком (начиная от первого) ходу накрываются тазом брутфорсы и сколько (+ какой прирост на уровень) вариантов уникальных позиций имеют они тогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:26 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Vintorawish, если допустить, что мы начинаем из угла, на первом ходу 2 варианта, на втором 10, на третьем около 80, на четвертом меньше тысячи.. это все можно подсчитать... но потом количество вариантов не продолжает расти экспоненциально, так как начинают попадаться уже пройденные клетки... количество стабилизируется, кстати хорошая задача найти ход с которого количество вариантов не растёт, и к концу ходов начинает спадать. в зависимости от конечных условий всё быстрее(например если из начальной позиции надо прыгнуть до конечной). опять же всё из теории игр. сейчас появилось немного времени попытаюсь найти. где то я точно читал про подобную задачу. кстати - про можно посчитать. вот это и есть решение (в смысле - было бы). попробуйте. Эйлер таки не смог (ну, правда, и оракла у него не было ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:30 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawishпроцесс поклацать до циклического (т.е. решение задачи 2 ) тутПросто у меня при тестировании с третьей попытки получился замкнутый маршрут и я решил не париться. :) orawish задача 3) - 1001 решение найтиЕсли начинать не из угла доски, то, думаю, время нахождения 1001 решения сократится в разы. orawish задача 4) таки попробовать оценить их (решений) количествоВот это самое интересное. Как написано по ссылке, которую я уже приводил: http://golovolomka.hobby.ru/books/gik/02.shtml Значительно труднее проблема, состоящая не в отыскании определенного маршрута коня по доске, а в нахождении всех маршрутов и подсчете их числа. Увы, эта задача не решена до сих пор, и шансов на успех немного. Известно, правда, что число решений не превосходит C63168 (число сочетаний из 168 элементов по 63, оно состоит из ста цифр), но больше 30 миллионов. Математик Ф. Миндинг, подошедший к проблеме с алгебраической точки зрения, предложил метод, позволяющий вывести формулу для числа всех решений, однако вычисления, которые следует при этом провести, практически неосуществимы.Интересно что за метод, вычисления для которого практически не осуществимы, при этом для половины доски уже найдено точное число решений. Как бы там ни было, делать свои брутфорсы без изучения работ по тематике из сабжа бессмысленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:32 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawishкстати - про можно посчитать. вот это и есть решение (в смысле - было бы). попробуйте. Эйлер таки не смог (ну, правда, и оракла у него не было ;)Три минуты гугления привели к: 33,439,123,484,294 . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:36 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshop, хм.. а мне казалось что всё проще)))..... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:37 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
Созрел быстрый и универсальный алгоритм для обхода произвольных областей клеток. 1) Прозвольная область заполняется заполняющей кривой Гильберта или кривой Пеано с шириной в 4 клетки. Границы кривой обозначаются как стенки которые конь не пересекает. 2) Конь обходит область придерживаясь этого коридора. Поскольку движение коня в коридоре - быстро и детерминировано то в целом конь очень быстро обходит произвольные и сложные области. Кривую Гилберта я взял просто без оснований. Интуитивно. Хотя по ней можно спорить. Возможно есть варианты обхода "змейкой", "спиралью", Z-порядком e.t.c. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 17:40 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshoporawishкстати - про можно посчитать. вот это и есть решение (в смысле - было бы). попробуйте. Эйлер таки не смог (ну, правда, и оракла у него не было ;)Три минуты гугления привели к: 33,439,123,484,294 . отлично! ответ известен. осталось получить его от оракла :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:01 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
mayton, Уже потихоньку начинает напрягать желание местных обитателей пытаться изобретать велосипед. По ссылке, что я приводил есть абзац: "При каких значениях m и n существует маршрут коня по всем полям доски m*n (с посещением каждого из них по одному разу)?" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:15 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
orawishdbms_photoshopпропущено... Три минуты гугления привели к: 33,439,123,484,294 . отлично! ответ известен. осталось получить его от оракла :)Ок, я почитаю в свободное от работы время теорему из приведенного документа на предмет выводы формулы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:16 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshop, чел, я говорю не о прямоугольных досках. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:17 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
dbms_photoshoporawishпропущено... отлично! ответ известен. осталось получить его от оракла :)Ок, я почитаю в свободное от работы время теорему из приведенного документа на предмет выводы формулы. ну а я попробую усовершенствовать силовой вариант. ~2e9 решений полузадачи это не так уж и много. опять же - одно дело посчитать сколько их, а другое - отрисовать их всех ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:21 |
|
пятничная задачка (про) коня
|
|||
---|---|---|---|
#18+
mayton, Ок, надеюсь не надо доказывать, что, к примеру, для доски с шириной 2 и любой длиной задача неразрешима? Если подумать далее, то можно прийти к заключению, что область можно разбить на некоторые разрешимые подобласти. Обход делается опять же по правилу Варнсдорфа. К чему здесь блистать своими анти познаниями по кривым? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2012, 18:22 |
|
|
start [/forum/topic.php?fid=52&msg=37739015&tid=1881402]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 205ms |
0 / 0 |