|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Aleksandr Sharahovинтересно, что тот же алгоритм с очевидными изменениями находит 2 шара из 20 за 8 проверок, а вот что делать дальше неясно.и 2 из 23 за 8 можно, должен быть масштабируемый алгоритм Barlone прав, число возможных расстановок C(k,N) а значит минимально достаточно log2(C(k,N)) бит что бы описать любой из вариантов расстановкине, эта оценка не всегда достижима 21827278 и 2 из 23 за 8 не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 11:05 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlonekealon(Ruslan)пропущено... и 2 из 23 за 8 можно, должен быть масштабируемый алгоритм Barlone прав, число возможных расстановок C(k,N) а значит минимально достаточно log2(C(k,N)) бит что бы описать любой из вариантов расстановкине, эта оценка не всегда достижима 21827278 и 2 из 23 за 8 не получится и причина тут тот же закон сохранения информации например 2 из 16 не получится т.к. C(16,2) = 120 C(12,2) = 66 > 64 а С(11,2) = 55 и останется 120 - 55 = 65, что тоже >64 исходя из этого же следует что в вашем алгоритме ошика, нельзя откусить первым шагом 3, только 4 или 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 12:40 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, с 4 довольно тривиально, а вот с 5 я кое как придумал ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 12:41 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Barlone, поправлю исходя из этого же следует что в вашем алгоритме ошибка, нельзя "откусить" от 15-ти первым шагом 3, только 4 или 5 т.к. C(12,2) = 66 > 64 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 12:45 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
kealon(Ruslan), дык он ад хок делал для 15/2ш. Попутно могло подойти и для нек-х других. А вообще, в теории алгоритмов известны примеры неразрешимых массовых алгоритммических проблем, к-рые тем не менее имеют решения для частных случаев. Это может означать к примеру, что высказанный Бароном метод построения алгоритма не универсален, но если поработать над методом (или над высказыванием), мало ли, может и получится универсальный для N/2. Вообще же, это математическая задача, не программистская. П.С. ссылка хорошая, кто-то ею уже попользовался)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 13:39 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
kealon(Ruslan)а значит минимально достаточно log2(C(k,N)) бит что бы описать любой из вариантов Как осуществлять поиск 1 значения в массиве знают все. А вот как быстро искать 2 значения? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 13:47 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
exp98kealon(Ruslan)а значит минимально достаточно log2(C(k,N)) бит что бы описать любой из вариантов Как осуществлять поиск 1 значения в массиве знают все. А вот как быстро искать 2 значения? Так же ) Хитрости типа 2 из 15 имеют смысл только на малых массивах, а на больших задача "найти 2" превращается в задачу "2 раза найти 1". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 17:19 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Aleksandr Sharahovexp98пропущено... Как осуществлять поиск 1 значения в массиве знают все. А вот как быстро искать 2 значения? Так же ) Хитрости типа 2 из 15 имеют смысл только на малых массивах, а на больших задача "найти 2" превращается в задачу "2 раза найти 1". По сути на больших 2 из N мы можем улучшать только среднюю оценку поиска. Но максимальную не улучшим. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 21:02 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Например, надо найти 2 из 32. Рассмотрим крайние случаи. 1. Проверяем левую половину, затем правую, и числа сразу попадают в разные части. Сокращаем размер каждой части: 8-4-2-1. Итого 2+4*2=10 проверок. 2. Проверяем левую половину, затем правую, и каждый раз числа попадают в правую часть: 16-8-4-2. Итого 4*2+1=9 проверок. С(2,32)=496~512=2^9, т.е. мы в принципе не могли затратить меньше 9 проверок. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 21:14 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Aleksandr SharahovНапример, надо найти 2 из 32. Рассмотрим крайние случаи. 1. Проверяем левую половину, затем правую, и числа сразу попадают в разные части. Сокращаем размер каждой части: 8-4-2-1. Итого 2+4*2=10 проверок. 2. Проверяем левую половину, затем правую, и каждый раз числа попадают в правую часть: 16-8-4-2. Итого 4*2+1=9 проверок. С(2,32)=496~512=2^9, т.е. мы в принципе не могли затратить меньше 9 проверок. Сорри скопипастил сдуру, во втором случае, конечно, всего 4 проверки. В худшем случае мы тратим всего 1 лишнюю проверку ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 21:23 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
Относительно средней оценки все выглядит так, будто она мало зависит от алгоритма. Плюс-минус одна проверка не имеет значения, если их десятки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2019, 21:31 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
ну вот, пришёл Александ и всё опошлил :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 06:33 |
|
Пятничный треугольник
|
|||
---|---|---|---|
#18+
вариант с первоначальным "откусыванием" 5 (без трививальной части ) Код: pascal 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 10:51 |
|
|
start [/forum/topic.php?fid=16&gotonew=1&tid=1339982]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 288ms |
0 / 0 |