Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Недавно наткнулся на очень на мой взгляд задачку по комбинаторике. Так как в школе комбинаторику плохо преподавали в своё время, никак решить не могу. Второй день мучаюсь. Есть варианты. Буду безумно благодарен, если поможете. Задачу прикрепляю. Изначально решил сделать обычный подбор состоящий из 9 циклов, но кажется есть путь попроще. И с другой стороны как сделать так, чтобы числа не повторялись, то есть уникальный подбор 1 2 3 4 5 6 7 8 9 ... а не 11111233... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 04:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дмитрий СмерксИзначально решил сделать обычный подбор состоящий из 9 циклов, но кажется есть путь попроще. Это называется размещения без повторений, гугл в помощь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 08:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, не так и много вариантов 17! / (4! 5! 6!) = 171 531 360 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
с акцентом Шварца: какие ваши доказательства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
ИМХО Не обязательно перебор всех вариантов устраивать, можно сначала упростить задачу, например перебрать всевозможные две диагонали - это ((17! / (13! * 4!)) * (13! / (9! * 4!))) всего 1701700 комбинаций. А дальше проверять только те решения, у которых сумма по диагоналям совпала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, а если твою формулу с другого круга начать? тоже самое выйдет ;-)? освежить бы надо комбинаторику ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Это - задача на бэктректинг. Думю что решение о том что нельзя поставить данную расстановку надо принять гораздо раньше. До того как будут перебраны все варианты. На ходу. Грубо говоря здесь не совсем чисты факториал - а амортизированный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, кроме того ((17! / (13! * 4!)) * (13! / (9! * 4!))) наверное С(4, 17) * С(5, 13) хотел написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Тут пересекающиеся множества тождественные между собой. (система линейных уравнений) Есть несколько точек не принадлежащих множеству и центральный круг у которого нет собственных свободных точек. у всех остальных тождественные множеств есть пара точек лежащих вне пересечения. Суть задачи просто правильно сформулировать систему уравнений упростить ее и решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Самые селективные предикаты поднять наверх. Тоесть не решать систему до конца а максимально быстро принять решение что дальше решать не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, и я ошибся всё таки, не увидел что одно число не расставляется, это уменьшает вдвое количество вариантов для полного перебора 17! / (2! 4! 5! 6! ) = 85 765 680 Малыхин Сергей, одно выпадающее число сразу удвацетирит количество систем, его наверное можно с ручкой и бумажкой порешать, но мы же программисты, проще перебрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
хотя нет, всё верно 17! / (1! 4! 5! 6!) = 171 531 360 вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, кроме того ((17! / (13! * 4!)) * (13! / (9! * 4!))) наверное С(4, 17) * С(5, 13) хотел написать? Нет, но немного ошибся, на 4 надо было умножить: 1. Берем все сочетания 17 по 4 (17! / (13! * 4!) = 2380) и подставляем их в горизонтальный диаметр 4-мя способами (каждый элемент в центр) - это 9520 комбинаций. 2. Из оставшихся все сочетания 13 по 4 в один диагональный диаметр - 715 комбинации. Если сумма не совпала, то п.1 9520*715 = 6806800 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, если твоим путём идти тебе нужно просуммировать все 4! варианта по трём основным кругам: в 1-м 5 элементов нужно расставить, во втором - 4, в третьем - 6, центральный -1 будет сумма переборов C(5, 17) * C(4, 12) * C(6, 8) * С(1, 2) + C(4, 17) * C(5, 13) * C(6, 8) * С(1, 2) + +... т.е. 24 варианта замены порядка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Запилите уже поиск в глубину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, блин, вру, не надо их суммировать, везде одинаковое число будет C(5, 17) * C(4, 12) * C(6, 8) * С(1, 2) = 17!/ 5! / 4! / 6! C(4, 17) * C(5, 13) * C(6, 8) * С(1, 2) = 17! / 4!/ 5!/ 6! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, если твоим путём идти тебе нужно просуммировать все 4! варианта по трём основным кругам: в 1-м 5 элементов нужно расставить, во втором - 4, в третьем - 6, центральный -1 будет сумма переборов C(5, 17) * C(4, 12) * C(6, 8) * С(1, 2) + C(4, 17) * C(5, 13) * C(6, 8) * С(1, 2) + +... т.е. 24 варианта замены порядка Нет. Сначала решаем упрощенную задачу: сумма двух диаметров совпала, поэтому без разницы в каком порядке на горизонтальном диаметре кроме центрального элемента, т.е. каждой комбинации из 17 по 4 есть всего 4 варианта записи (не 4!). Например для набора 1,2,3,4 будет Код: plaintext 1. 2. 3. Для диагонального диаметра вообще без разницы какой порядок, т.к. центр заполнен горизонтальным. На следующих шагах решения придется перебрать пропущенные комбинации, но это далеко не все возможные комбинации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
КМК задача связана с Магическими квадратами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, зря мы тут по комбинаторике голову ломаем, все элементы связаны, т.е. позиция важна, придётся 17! вариантов перебирать но сумма трёх диагоналей 3S = сумме внутреннего и внешнего круга 2S + 3C S = 3C, т.е. в центре число равное трети от суммы пусть X выкинутое число X + C + 3S= 21*20/2 =210 3X + 10 S = 630 Х = 10 | 20 соответственно S = 60 | 57 С = 30 | 29 ??????????????????? что нереально или где-то в условие неверно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
На самом деле, всё ещё проще. Общая сумма от 1 до 20 = 210. Имеем 3 основных круга по 6 кружков. Всего 19 кружков. Отнимаем от 210 значения 2-х произвольных кружков и делим оставшееся на 3. Имеем 3 диаметра + средний круг (итого 4 элемента). Всего 19 кружков. Отнимаем от 210 значения 1-ого произвольного кружка и добавляем 2 раза значение другого произвольного кружка. Всего 21 кружок. Всю сумму делим на 4. Теперь ищем те значения выпадающих кружков для обоих случаев, где частные от делений совпадает. А именно: 1)выкидываем 10, в центре 20, сумма круга (диаметра) 60 2)выкидываем 20, в центре 19, сумма круга (диаметра) 57. Наверное, дальше, будет проще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, выкинуть можно только кратное 3-м ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, выкинуть можно только кратное 3-мА где это написано в условии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Можно по формулам. а - выкидываем, в - в центре (210 - а - в) / 3 = ( 210 - а + 2 х в) / 4 или 210 = а + 10 х в ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Посчитал все варианты для трех диаметров Код: plaintext 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. Результат 533520 комбинаций диаметров. Дальше заполняем средний круг (6, 18, ... ) 4-мя из оставшихся 5-ти, т.е. комбинаций станет 533520 * 5. Дальше остается перебрать комбинации в каждом диаметре (3!, 4!, 4!) и среднем круге (4!). Итого 82944. Всего максимум 533520 * 5 * 82944 = 221`261`414`400. Многовато, но думаю комбинаций после заполнения среднего круга будет поменьше чем 5*533520. Разбег сумм получился от 34 до 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Добавил заполнение среднего круга, вариантов осталось 41796, для каждого надо допроверить 82944 подварианта. Итого 41796*82944 = 3`466`727`424. Это реально обсчитать перебором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я что-то не въехал - а где здесь девять "указанных" окружностей? Три диаметра вроде понятны, поскольку есть три шестиугольника, которые можно интерпретировать как точки на трёх окружностях, но и с ними не всё до конца ясно - под ограничение попадают все диаметры трёх "окружностей" (шестиугольников) или именно три каких-то конкретных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Сумма в диапазоне 48...62, а пропущенное одно из 2,4,8,10,14,16,20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хотя если поменять местами диаметры с окружностями - вроде получится что-то осмысленное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ну и в итоге выйдет система из 12 диофантовых уравнений. В общем-то перебор не нужен. Вставляем систему в решатель уравнений и всё, финита. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TДобавил заполнение среднего круга, вариантов осталось 41796, для каждого надо допроверить 82944 подварианта. Итого 41796*82944 = 3`466`727`424. Это реально обсчитать перебором. Итого не окончательное, будет намного меньше, т.к. при переборе изменив комбинацию на диагоналях можно посчитать сумму внешнего и внутреннего кругов, если они не верны, то не надо делать перестановки на среднем кругу, что уменьшит до 24-х раз общее количество комбинаций. Возможный минимум 144`446`976 комбинаций, что близко к расчетному значению kealon(Ruslan) 21793102 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, вот это сильно может сократить перебор сумма на диагонали D не равна сумме на периметре S, как выше показал (это видимо условие задачи всё же) 3D = 2S + 3C 3S + C + X = 210 где X- выпавший, C- центровой 2S + 3C = 3D 3S + C + X = 210 6S + 9C = 9D 6S + 2C + 2X = 420 7C - 2X = 9D - 60 * 7 9D + 2X = 7(60 + C) 9(D - 46) + 2(X-3) = 7C может ещё какое уравнение можно найти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:48 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
На самом деле всё ещё проще. Зачем столько переборов. Имеем два варианта:Gennadiy UsovА именно: 1)выкидываем 10, в центре 20, сумма круга (диаметра) 60 2)выкидываем 20, в центре 19, сумма круга (диаметра) 57.Здесь сумма круга равна S. Для каждого из них устанавливаем следующую последовательность действий (метод поиска с возвратом): 1) Известны положения 5 кружков из 20. (один из них вне игры). 2) Ищем для средней окружности 4 кружка из 15 таким образом, чтобы сумма с двумя 18 и 6 была равна S. Сочетание 4 из 15. 3) Ищем для внешней окружности 5 кружков из 11 таким образом, чтобы сумма вместе с 12 равна S. Сочетания 5 из 11. Оставшиеся 6 кружков на внутренней окружности имеют сумму S. 4) Ищем 1-ый диаметр таким образом, чтобы сумма была S. Для этого из внешней и внутренней окружностей выбираем по 2 кружка. Два сочетания по 2 из 6. И добавляем значение центра. 5) Ищем 2-ой диаметр так же. Два сочетания по 2 из 4. Если не получается, то возврат на пункт 4). 6) Проверяем третий диаметр. 7) Если имеется таблица по 6-ти оставшимся окружностям, то можно проверить их на предмет суммы S. Если где-то не получилось, то возврат на предыдущую позицию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Я что-то не въехал - а где здесь девять "указанных" окружностей? Три диаметра вроде понятны, поскольку есть три шестиугольника, которые можно интерпретировать как точки на трёх окружностях, но и с ними не всё до конца ясно - под ограничение попадают все диаметры трёх "окружностей" (шестиугольников) или именно три каких-то конкретных?Между кружками наружной окружности есть внешние дуги, которые являются частью 6-ти окружностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, вот это сильно может сократить перебор сумма на диагонали D не равна сумме на периметре S, как выше показал (это видимо условие задачи всё же) Нет, тут я должен все варианты в диаметре перебрать kealon(Ruslan)3D = 2S + 3C 3S + C + X = 210 где X- выпавший, C- центровой 2S + 3C = 3D 3S + C + X = 210 6S + 9C = 9D 6S + 2C + 2X = 420 7C - 2X = 9D - 60 * 7 9D + 2X = 7(60 + C) 9(D - 46) + 2(X-3) = 7C может ещё какое уравнение можно найти S это периметр, а D - диаметр (диагональ) ? Если так, то они равны по условию. Тогда отсюда 6S + 9C = 9D получаем 9C = 3D или D = 3C 9(3C - 46) + 2(X-3) = 7C 27C - 414 + 2X - 6 = 7C 2X = 420 - 20C X = 210 - 10C Если так, то С это 19 или 20, т.к. только при них X в нужном диапазоне (10 или 20). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TX = 210 - 10CВ принципе совпало:Gennadiy UsovМожно по формулам. а - выкидываем, в - в центре (210 - а - в) / 3 = ( 210 - а + 2 х в) / 4 или 210 = а + 10 х в Dima TЕсли так, то С это 19 или 20, т.к. только при них X в нужном диапазоне (10 или 20).И здесь совпало:Gennadiy UsovА именно: 1)выкидываем 10, в центре 20, сумма круга (диаметра) 60 2)выкидываем 20, в центре 19, сумма круга (диаметра) 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Для быстрого старта я - пас. Концептуально - это должна быть структура данных типа графа. На основании которой мы можем сгенерировать код решающий систему уравнений. Ну... как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Добавил фильтр Код: sql 1. 2. Осталось 3806 комбинаций вместо 41796 21793500 Общее количество для окончательного перебора от 13`153`536 до 315`684`864 комбинаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДля быстрого старта я - пас. Концептуально - это должна быть структура данных типа графа. На основании которой мы можем сгенерировать код решающий систему уравнений. Ну... как-то так.Скорее тут будет метод поиска с возвратом: ищем, суммируем, подходит или не подходит, если нет, то возвращаемся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TS это периметр, а D - диаметр (диагональ) ? Если так, то они равны по условию. Тогда отсюда 6S + 9C = 9D получаем 9C = 3D или D = 3C 9(3C - 46) + 2(X-3) = 7C 27C - 414 + 2X - 6 = 7C 2X = 420 - 20C X = 210 - 10C Если так, то С это 19 или 20, т.к. только при них X в нужном диапазоне (10 или 20).тогда я не могу найти где ошибка в логике 21793256 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 16:53 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, Х = 10 | 20 соответственно S = 60 | 57 С = 30 | 29 ??????????????????? что нереально блин С = 20|19 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 17:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonДля быстрого старта я - пас. Концептуально - это должна быть структура данных типа графа. На основании которой мы можем сгенерировать код решающий систему уравнений. Ну... как-то так.Скорее тут будет метод поиска с возвратом: ищем, суммируем, подходит или не подходит, если нет, то возвращаемся... Я не про это. Я знаю как решать эту задачу. Я не знаю как описать входные данные красиво. Представте что завтра граф будет другой. С большим числом вершин и другими условиями. Сколько кода вам надо будет сломать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 17:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, по идее оно произведением матрицы на столбец описывается вот только уравнений 12, а неизвестных 17 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 17:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, а неизвестных 18 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 17:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)mayton, а неизвестных 18 Нет, 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:13 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Наш красавчик уже отметился и здесь https://toster.ru/q/597751 Странно что на сайберфорум перестали копи-пастить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:14 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНаш красавчик уже отметился и здесь https://toster.ru/q/597751 Ему там 17! предложили перебрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Это прозвучало как - "Пилите Шура, пилите...." Нет ничего дурнее чем генерация перестановок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Кто мне может пояснить - где авторы задания предполагают наличие 9 окружностей? Я вижу только три (ну и еще одно без кружков) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисКто мне может пояснить - где авторы задания предполагают наличие 9 окружностей? Я вижу только три (ну и еще одно без кружков) Помнишь задачу где из спичек выложена фигура. И предлагается посчитать сколько в ней треугольников. Вот это оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисКто мне может пояснить - где авторы задания предполагают наличие 9 окружностей? Я вижу только три (ну и еще одно без кружков) Смотри внимательнее и учти что фото немного под наклоном, поэтому круги немного овальные. Направляющие линии видно, 6 кругов по 6, не считая 3-х вокруг центра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Надо жирым маркером навести круги. Мне тоже сначала неочевидно было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TСмотри внимательнее и учти что фото немного под наклоном, поэтому круги немного овальные. Направляющие линии видно, 6 кругов по 6, не считая 3-х вокруг центра. Да уж как только не смотрел. Вокруг центра - ясно. Если пронумеровать точки слева направо, сверху вниз - какие номера образуют 6 оставшихся кругов (хотя бы один из них чтобы логику понять)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 18:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Все, узрел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 19:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TСоколинский БорисКто мне может пояснить - где авторы задания предполагают наличие 9 окружностей? Я вижу только три (ну и еще одно без кружков) Смотри внимательнее и учти что фото немного под наклоном, поэтому круги немного овальные. Направляющие линии видно, 6 кругов по 6, не считая 3-х вокруг центра.А в этих 6 кругах есть центральный кружочек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 19:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Сумма = 69, в центре - 13, нет 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 19:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TЕму там 17! предложили перебрать Используйте способ, к-рый я предлагал, когда перестановки с ограничениями. Чтобы не корячить бэктрекинг с нуля, используем стандартный next_permutation(), а его оборачиваем в ступенчатую послед-сть предварительных циклов FOR(). Назовём это Каскадированным полубэктрекингом. Направление с наружи - во внутрь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисСумма = 69, в центре - 13, нет 3. Почему? Выше двумя разными путями пришли к тому что Сумма 57 или 60. В центре 19 или 20. Нет 10 или 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TСоколинский БорисСумма = 69, в центре - 13, нет 3. Почему? Выше двумя разными путями пришли к тому что Сумма 57 или 60. В центре 19 или 20. Нет 10 или 20. Я ошибся, пардон. Лень латех вставлять, надеюсь и так будет понятно. 1. Суммируем числа по диагоналям и вычитаем внешнюю и внутреннюю окружность. Получаем 3С=S, где С - число в центре. Замечаем, что сумма должна быть кратна 3. 2. Суммируем все эксцентричные окружности (6S). Добавляем удвоенное центральное и удвоенное отсутствующее - получаем удвоенную сумму всех чисел от 1 до 20 6S+2C+2X=420 или 3S+C+X=210. Подставляя С=S/3 (1) получаем X=210-10/3*S=10*(21-S/3). Т.е отсутствует либо 10, либо 20. Если отсутствует 10, то S=63 и первое условие не выполняется. Значит нет 20, в центре 19, сумма=57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисЕсли отсутствует 10, то S=63 и первое условие не выполняется. Откуда 63? S=3С=60. Условие выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Tkealon(Ruslan)mayton, а неизвестных 18Нет, 17.Странно... У нас известны 5 чисел (2 варианта) и неизвестны 15 чисел. Следовательно, должно быть 15 неизвестных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TСоколинский БорисЕсли отсутствует 10, то S=63 и первое условие не выполняется. Откуда 63? S=3С=60. Условие выполняется. Блин, точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:40 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovСкорее тут будет метод поиска с возвратом: ищем, суммируем, подходит или не подходит, если нет, то возвращаемся...Я не про это. Я знаю как решать эту задачу. Я не знаю как описать входные данные красиво. Представте что завтра граф будет другой. С большим числом вершин и другими условиями. Сколько кода вам надо будет сломать?Красиво - это когда на все случаи (либо на несколько случаев). А у нас могут быть разные круги, разные диагонали (многие красиво разрисовывают новые задачки), в разных точках известные числа... А здесь задачу надо решать (если решать) как она есть, в лоб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Нет, 17.Странно... У нас известны 5 чисел (2 варианта) и неизвестны 15 чисел. Следовательно, должно быть 15 неизвестных. Известно 3 из 20. Из оставшихся 17 надо 16 вписать и одно лишнее. То что 2 из неизвестных ограничены 2-мя вариантами не делает их известными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Tkealon(Ruslan)mayton, а неизвестных 18 Нет, 17. 13 уравнений: 9 кругов, 3 диагонали, 1 уравнение баланса 18 неизвестных: x1..x17 и S то что мы нашли "частными измышлениями" это тоже неизвестные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
А с какой вершины начать backtracking? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 20:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, да по сути без разницы, но можно начать с той у которой уже есть варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Алгоритм решения найден, дальше неинтересно. Пусть ТС дорешает. Я про другое подумал: про тот мозг, который эту задачу придумал. Надо взять 20! комбинаций и найти среди них позиции 3-х чисел чтобы в итоге было однозначное решение. PS Кто не в теме 20! это 20 лет перебора при проверке одного набора за один такт проца 4 ГГц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, тут что-то хитрее, не думаю что перебором придумали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)mayton, да по сути без разницы, но можно начать с той у которой уже есть вариантыЗабыли: там где "Двадцатое лишнее" надо добавить "х17" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, пардонс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TАлгоритм решения найден, дальше неинтересно. Пусть ТС дорешает. Я про другое подумал: про тот мозг, который эту задачу придумал. Надо взять 20! комбинаций и найти среди них позиции 3-х чисел чтобы в итоге было однозначное решение. PS Кто не в теме 20! это 20 лет перебора при проверке одного набора за один такт проца 4 ГГц.В соообщении 21793555 указывается последовательность действий при решении в лоб. Не думаю, что здесь будет 20! Будет значительно меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TАлгоритм решения найден, дальше неинтересно. Пусть ТС дорешает. Я про другое подумал: про тот мозг, который эту задачу придумал. Надо взять 20! комбинаций и найти среди них позиции 3-х чисел чтобы в итоге было однозначное решение. PS Кто не в теме 20! это 20 лет перебора при проверке одного набора за один такт проца 4 ГГц. Этот мозг знал что перебором эту задачу никто не решит. Но если мы вспомним что бектрекинг не даёт нам дойти до заведомо фейловой ветки дерева то эта оценка очень резко уменьшается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Консультанты toster.ru так ничего нового и не выдали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovНе думаю, что здесь будет 20! Будет значительно меньше.Ну вот расскажите как здесь использовать, что "есть предел насыщения", кроме как помнить об этом? Начальную расстановку из 3-х штук уже имеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я-бы ввел понятие веса окружностей и диагоналей. Вес - как инвариант этой задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 21:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
https://jsbin.com/wojuvex/edit?js,output так ковырять нагляднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 00:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
а потом окажется, что это задачка для 3го класса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 00:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TАлгоритм решения найден, дальше неинтересно. Пусть ТС дорешает. Я про другое подумал: про тот мозг, который эту задачу придумал. Надо взять 20! комбинаций и найти среди них позиции 3-х чисел чтобы в итоге было однозначное решение. PS Кто не в теме 20! это 20 лет перебора при проверке одного набора за один такт проца 4 ГГц. значит, этот мозг перебирал среди решений, которых гораздо меньше ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 08:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Спасибо за картинку! Сразу что-то стало получаться. А теперь поработаем с уравнениями Пусть сумма будет К. Тогда из средней окружности: х8+х10+х9+х11=К-24 из внутренних окружностей: х8+х10=К-х13-х4-х7-12 х9-х11=К-х12-х6-х3-12 если подставить в первое уравнение, то получаем: 2хК-х13-х6-х3-х12-х4-х7-24=К-24 Или К=х12+х6+х3+х12+х4+х7 Из диагоналей – первые три из одной и вторые три из другой. Подставляем: К=К-х16-х1+К-х14-х1 Или х14+х16=К-2*х1 (умножить) Если 60 и 20, то х14+х16= 20 Если 57 и 19, то х14+х16= 19 Далее, в таком же виде: окружность, диагональ , окружность, или наоборот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 09:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Форум программистов разбирает легенькую задачку для олимпиады средних класоов ))) Комбинаторику сюда прикрутили Зачем вообще считать кол-во итеракций при решении перебором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 10:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Митя_НиточкинКомбинаторику сюда прикрутили Зачем вообще считать кол-во итеракций при решении переборомколичество вариантов нужно для оценки возможности расчёта такой задачи, одно дело 1000 вариантов перебрать, 20! - совсем другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 11:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
13 уравнений с 18 неизвестными сводится к диафантовому уравнению с 6 неизвестными а это 17!/(17-6)! вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 11:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Далее: Смотрим на внутренние окружности через х15 и х16, а также через х15 и х14. Складываем, получаем (с учетом х14+х16=20): 2*15+20=2*К-24-х11-х10-х7-х3-х4-х6 Последние 4 слагаемых за счёт внутренней окружности и горизонтального диаметра переводим в: х11+х10=2*К-36-х1-3*х15-20 Теперь смотрим на внутренние окружности, проходящие через х13 и х14 и через х12 х х16 и складываем: К-х15-12=2*К-24-х8-х9-х2-х5 Последние 2 слагаемые – К-х1-12-х15 Получаем Х8+х9=2*х15-12+х1-12 Теперь складываем х8,х9,х10,х11, и с учетом средной окружности получаем: Х15=К-56 Если 60 и 20, то х15= 4 Если 57 и 19, то х15= 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 11:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Митя_Ниточкин, ты ее уже решил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 11:13 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Далее можно определить суммы пар: х2 и х5, х13 и х14, х9 и х6, х10 и х11. То есть определены одно число и 5 пар чисел. Осталась четверка чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ошибка: х9 и х8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
тороплюсь: х12 и13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:05 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Вот интересный вопрос возникает Если у нас есть несколько множеств чисел, например x1 =[1..3], x2 =[2...7, 19], x3 =[1..10], x4 =[12..15], ... Есть ли алгоритм позволяющий эффективно получить всё множество сумм который могут получиться при комбинации (X1 + X2 + X3 + X4 + ...) элементов из этих множеств? При ограничении что число может входить в сумму только 1 раз эффективно значит "не за NP время" как при наивной реализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я вот думаю о том что если хранить сумму оставшихся чисел из пул доступных. То можно эффективно прерывать backtracking если мы точно знаем что у данной окружности или диаметра уже недостаточно массы. Тоже самое. Докидывать нужные гирьки в те окружности и диаметры где веса не хватает. По сути балансировать центр масс всей этой конструкции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЯ вот думаю о том что если хранить сумму оставшихся чисел из пул доступных. То можно эффективно прерывать backtracking если мы точно знаем что у данной окружности или диаметра уже недостаточно массы. Тоже самое. Докидывать нужные гирьки в те окружности и диаметры где веса не хватает. По сути балансировать центр масс всей этой конструкции. Не, это лишнее. Я новый способ заполнения придумал. Нам известно: ПараметрЗначениеЗначениеЦентр1920Сумма5760Пропущено2010 Центр, сумму и пропущенное берем из таблицы. Начинаем заполнять круги от центра, проверяя сумму каждого круга по заполнению. В этом случае к заполнению второго круга не перейдем, если по первому сумма не верна. Третий можно даже не проверять, т.к. если сумма первого и второго верны, то он тоже верен. В итоге находим потенциальные решения. Дальше доперебор каждого потенциального решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 12:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
сумма не может быть нечетна к 4 странице пора бы это понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TНам известно: ПараметрЗначениеЗначениеЦентр1920Сумма5760Пропущено2010 Мне кажется, на эту дилемму должен найтись однозначный ответ путем исследования четности/нечетности. В любом случае исключаемое число - четное, т.е. остается всего 9, 3 из них уже выставлены. Знак суммы такой же как знак центра, поэтому сумма диагональных элементов без середины всегда четная. Т.е. еще как минимум одно четное обязательно должно быть на средней линии (5 осталось). Если в центре четное (4), то сумма тоже четная, значит еще два четных должны быть на эксцентриках левой точки (2 осталось). Одно четное еще нужно на внешней окружности, но оно может быть совмещено с крайней правой (диагональю). Дальше пока неясно. Дальше пока не наметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Митя_Ниточкинсумма не может быть нечетна к 4 странице пора бы это понять Почему? Если это доказано, то ответ - пропущено число 10. Или задача не имеет решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Читерные пятнашки переставляй любое число с любым. Стратегия берем число больше всего влияющие на увлечение средней суммы своих множеств и меняем его с ближайшим по значению если это не увеличит разницу средних значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Митя_Ниточкин, раз для вас это такая лёгкая задача, на которую не стоит использовать компьютер, попробуйте её решить, но боюсь, что будет слишком сложно. Тогда и можно и использовать ресурсы ЭВМ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, очень облегчели работу. Но вот для себя, чтобы потом просто так не обращаться, как эту задачу можно без компьютера решить - без подбора. Ведь такая возможность безусловно есть, на мой взгляд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 13:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дмитрий СмерксСпасибо всем, очень облегчели работу. Но вот для себя, чтобы потом просто так не обращаться, как эту задачу можно без компьютера решить - без подбора. Ведь такая возможность безусловно есть, на мой взглядскорее всего задача первоначально звуча в виде "какое число лишнее?" для математики это было бы характерно, задача по информатике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 14:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Малыхин СергейЧитерные пятнашки переставляй любое число с любым. Стратегия берем число больше всего влияющие на увлечение средней суммы своих множеств и меняем его с ближайшим по значению если это не увеличит разницу средних значений. Эта стратегия начинает работать когда у вас уже есть первое приближение. Допустим вы бросили 1..20 кроме случайного случайным образом на доску. Какие два следующих вы поменяете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 14:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В самом начале заполняются вакантные места от большего числа к меньшему. Т.е. самое большое число в найденную вакантную точку которая изменит как можно больше множеств с минимальной суммой в сторону увеличения и получаем неплохое начальное распределение. При заполнении всех вакантных точек пробуем переставлять. Алгоритм заведомо не оптимален но работает почти моментально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 14:43 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я чем больше смотрю на эту задачу тем больше убеждаюсь что у нее нет аналитического решения. А все наши прогнозы - просто маленькие предсказания на тему как уйти от факториала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 15:24 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЯ чем больше смотрю на эту задачу тем больше убеждаюсь что у нее нет аналитического решения. А все наши прогнозы - просто маленькие предсказания на тему как уйти от факториала.Предпочитаете не замечать аналитику 21794052 и 21793947 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 15:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Решил. Исходник и ответВыкинуть надо число 10 Код: plaintext 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. Результат: Код: plaintext 1. Кому надо 16 правильных расстановок - я пометил место где их выводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 16:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T Решил. Исходник и ответВыкинуть надо число 10 Код: plaintext 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. Результат: Код: plaintext 1. Кому надо 16 правильных расстановок - я пометил место где их выводить. 2) Почему только 10? Причина. 3) Полный перебор не интересно. Компьютер помогает. Лучше пошагово, аналитически, так как сам мыслишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 16:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)13 уравнений с 18 неизвестными сводится к диафантовому уравнению с 6 неизвестными а это 17!/(17-6)! вариантов Вообще я в прошлый раз поторопился. Здесь система линейных неравенств. В смысле помимо уравнений присутствуют ограничения вида Хn>0 && Xn<21. Плюс "диофантовость", то есть ограничение на решение в целых числах. А количество неизвестных зависит ещё и от количества сумм, то есть если наконец определиться, что считать суммой - три круга и девять диаметров или девять кргуов и три диаметра - тогда (для первого случая) добавляются три неизвестных суммы для кругов и условие вхождения меньших диаметров в большие (то есть дополнительные уравнения). В общем нужно просто сесть и потратить часик времени на рисование всех возможных уравнений и ограничений, потом посчитать количество неизвестных и уравнений, ну и используя ограничение на целостность числа совместно с устранением ряда неизвестных за счёт их выражения из уравнений системы, решить несколько получившихся диофантовых уравнений (штуки 4 всего). Но я чувствую, народ мотивирован и найдёт эвристическое решение без перебора и уравнений, поэтому общий подход уже не столь интересен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 16:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555, 21793795 kealon(Ruslan)13 уравнений: 9 кругов, 3 диагонали, 1 уравнение баланса 18 неизвестных: x1..x17 и S единичность и принадлежность к диапазону я не знаю как подсчитать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 16:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonЯ чем больше смотрю на эту задачу тем больше убеждаюсь что у нее нет аналитического решения. А все наши прогнозы - просто маленькие предсказания на тему как уйти от факториала.Предпочитаете не замечать аналитику 21794052 и 21793947 ? Аналитического решения не существует для комбинаторных задач в общем понимании этого слова. Сюда же 1000 ферзей. Но создатели упростили нам это введя пограничные условия. 3 константы. И 1 исключение из списка целых. Что вы будете делать если пограничных условий не будет? Я в скобках напомню что мы находимся в форуме посвященном программированию и 99% респондентов заинтересованы программировать задачу а не решать ее в уме. Таковы реалии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 16:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovПредпочитаете не замечать аналитику 21794052 и 21793947 ? Аналитического решения не существует для комбинаторных задач в общем понимании этого слова. Сюда же 1000 ферзей. Но создатели упростили нам это введя пограничные условия. 3 константы. И 1 исключение из списка целых. Что вы будете делать если пограничных условий не будет? Я в скобках напомню что мы находимся в форуме посвященном программированию и 99% респондентов заинтересованы программировать задачу а не решать ее в уме. Таковы реалии.Получается, что тупо поиск с возвратом, где перебираются все значения по всем окружностям и диагоналям. А где ограничения, упрощения? С целью уменьшения вариантов поиска? Для показа этих упрощений не обязательна нужна программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 17:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Аналитического решения не существует для комбинаторных задач в общем понимании этого слова. Сюда же 1000 ферзей. Но создатели упростили нам это введя пограничные условия. 3 константы. И 1 исключение из списка целых. Что вы будете делать если пограничных условий не будет? Я в скобках напомню что мы находимся в форуме посвященном программированию и 99% респондентов заинтересованы программировать задачу а не решать ее в уме. Таковы реалии.Получается, что тупо поиск с возвратом, где перебираются все значения по всем окружностям и диагоналям. А где ограничения, упрощения? С целью уменьшения вариантов поиска? Для показа этих упрощений не обязательна нужна программа. Да. В данном форуме программа является доказательством. Доказательством корректнсти программы является ее работа и ее результат. Не просмотр глазами. И не умозрительные заключения. Если дима привел программу. И она у нас заработает. И выдаст корректный результат. То для всех присутствующих будет очевидно что она верна. Тот кто считает что она не верна должен будет доказать обратное. Чтобы проверить правильность формул. Необходимо всех присутствующих провести через ДОКАЗАТЕЛЬСТВО этих формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 17:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
По поводу упрощений. Просмотрите код Димы и внесите свои предложения по упрощениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 18:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ради интереса забил задачу в Excel для проверки Solver-а. Он не оправдал оказанного ему высокого доверия, заклинило на нерешенном состоянии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 18:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
А как современный Excel работает? Интерпретатор байткода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 18:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, Там три алгоритма зашито. В нашем случае номинально только эволюционный подходит. Я его раньше тестировал на одной олимпиадной задаче, справился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 18:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 19:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я подумал некрасиво без заполнения клеток, могут не поверить, поэтому все 16 вариантов. x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x1720234171915811161145791310202315171948111611457913102021941731581116114579131020219151734811161145791310204321519178111611457913102043171519281116114579131020419215317811161145791310204191715328111611457913102015324191781116114579131020153174192811161145791310201519243178111611457913102015191743281116114579131020173421915811161145791310201731521948111611457913102017194231581116114579131020171915234811161145791310 Расположение переменных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 19:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дима. А ты мог-бы выложить трассу для одного ответа где видно как меняется масса окружностей и диаметров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2019, 20:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, занятно, вариативны только 6 переменных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 00:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хм. Ценное замечание. Меняются только цифры внутреннего круга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 01:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Как оказалось, уравнения не проходят - одни тождества. Следовательно - поиск с возвратом. Исходные данные – два варианта для х17 и х1, известны 3 числа, сумма чисел для 9 последовательностей (окружности и диагонали) То есть, известны 5 чисел из 20 чисел. Осталось найти 15 чисел Шаг 1. цикл по х2 и х5 (из 15 и 14 чисел - отобрано 7 чисел) – определяем х15 (не равно 7 числам) всего 8 чисел (1-я диагональ) Шаг 2. цикл по х12 и х16 (из 13 и 12 чисел - отобрано 10 чисел) - определяем х8 (не равно 10 числам) всего 11 чисел(1-я внутренняя окружность) Шаг 3. цикл по х13 (из 9 чисел - отобрано 12 чисел) – определяем х14 (не равно 12 числам) всего 13 чисел (большая окружность) Шаг 4. - определяем х9 (не равно 13 числам) всего 14 чисел (2-я внутренняя окружность) Шаг 5. цикл по х10 (из 6 чисел - отобрано 15 чисел) - определяем х11(не равно 15 числам) всего 16 чисел. Шаг 6. Далее проверки: - сумма х3 и х6 сравниваем с (2-я диагональ) (2-я внутренняя окружность) (4-я внутренняя окружность) - сумма х4 и х7 сравниваем с (3-я диагональ) (5-я внутренняя окружность) (6-я внутренняя окружность) - суммы х3,х4,х6,х7 сравниваем с (внутренняя окружность) Шаг 7. цикл по х7 (из 4 чисел - отобрано 17 чисел) – определяем х4 ( не равно 17 числам) всего 18 чисел. Шаг 8. цикл по х3 (из 2 чисел - отобрано 19 чисел) – определяем х5 ( равно последнему свободному числу) Если при работе цикла не определяются свободные числа, то возврат на предыдущий шаг. Можно усложнить алгоритм, когда ничего не известно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 07:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Забыл указать в исходных данных, что имеем 20 чисел от 1 до 20. Тут следует вспомнить следующее сообщение:maytonGennadiy UsovСкорее тут будет метод поиска с возвратом: ищем, суммируем, подходит или не подходит, если нет, то возвращаемся...Я не про это. Я знаю как решать эту задачу. Я не знаю как описать входные данные красиво. Представте что завтра граф будет другой. С большим числом вершин и другими условиями. Сколько кода вам надо будет сломать?А если доработать схему по-шаговых действий 21794700 для случая, когда ничего не известно. 1) Вместо известных значений вводим переменные: х18(6), х19(12), х20(8). И в тех объектах (окружность, диагональ), где эти переменные впервые появляются, добавляется цикл по этим переменным, аналогично остальным переменным. 2) Имеем массив произвольных 20 чисел. Определяем их сумму К. Каждой переменной х... ставится в соответствие определенный элемент массива. 3) Строим внешний цикл по переменным х1 и х17, причем есть ограничение: величина (К + х1 - х17) должна делиться на 3. Тогда К1 = (К - х1 - х17)/3 будет являться суммой чисел в каждом объекте (окружность, диагональ). А если совсем углубиться (ударение на втором у), то можно ещё ввести соотношения между объектами (окружность, диагональ). А если и ...., то можно вообще рисовать произвольные картинки, только успевай выстраивать новые схемы, которые будут похожи на 21794700 Так что, вариантов обобщения и углубления много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 09:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДима. А ты мог-бы выложить трассу для одного ответа где видно как меняется масса окружностей и диаметров? Это обычный перебор, пропускаются варианты с неправильной суммой. Т.е. Наполнили средний круг, сумма не совпала, следующий средний, совпала, наполнили внешний круг, сумма не совпала следующий внешний и т.д. Вот тот же исходник с выводом значения узлов. Его результат скопипастил сюда 21794557 Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 10:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Можно ещё упростить схему алгоритма, при этом убираем один цикл Исходные данные – два варианта для х17 и х1, известны 3 числа, сумма чисел для 9 последовательностей (окружности и диагонали) То есть, известны 5 чисел из 20 чисел. Осталось найти 15 чисел Для начала введем 3 переменные: а1 = х2 + х5 а2 = х3 + х6 а3 = х4 + х7 Шаг 1. цикл по х15 (из 15 чисел - отобрано 6 чисел) – определяем а1 всего 6 чисел (1-я диагональ) Шаг 2. цикл по х12 и х16 (из 14 и 13 чисел - отобрано 8 чисел) - определяем х8 (не равно 8 числам) всего 9 чисел(1-я внутренняя окружность) Далее из (большая окружность) и из (внутренняя окружность) – определяем х9 (не равно 9 числам). Всего 10 чисел. Шаг 3. цикл по х10 (из 10 чисел - отобрано 11 чисел) - определяем х11(не равно 11 числам) всего 12 чисел. (средняя окружность). Далее определяем: а2, а3, х13, х14, Шаг 4. Цикл по х2 в а1- определяем х5 Шаг 5. Цикл по х3 в а2 – определяем х6 Шаг 6. Цикл по х4 в а3 – определяем х7 Если при работе цикла не определяются свободные числа, то возврат на предыдущий шаг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 13:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonХм. Ценное замечание. Меняются только цифры внутреннего круга. По-моему, так быть не может, где-то ошибка при проверке условия - у двух триплетов сумма любой пары должна быть одинаковой. 6 условий и 6 переменных - единственное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 13:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonДима. А ты мог-бы выложить трассу для одного ответа где видно как меняется масса окружностей и диаметров? Это обычный перебор, пропускаются варианты с неправильной суммой. Т.е. Наполнили средний круг, сумма не совпала, следующий средний, совпала, наполнили внешний круг, сумма не совпала следующий внешний и т.д. Вот тот же исходник с выводом значения узлов. Его результат скопипастил сюда 21794557 Код: plaintext 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. Ты уже опубликовал это где-то в гитхабе? Я хотел сделать несколько changes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 14:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДоказательством корректнсти программы является ее работа и ее результат. Но программисты же получают не просто результат, а оптимальный результат. Так вот по оптимальности решения полным перебором возможны большие вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 17:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonТы уже опубликовал это где-то в гитхабе? Я хотел сделать несколько changes. Залил. Экспериментируй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 18:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА если совсем углубиться (ударение на втором у), то можно ещё ввести соотношения между объектами (окружность, диагональ). А если и ...., то можно вообще рисовать произвольные картинки, только успевай выстраивать новые схемы, которые будут похожи на 21794700 Так что, вариантов обобщения и углубления много. Я именно про это и говорю. Есть граф. У него есть подграфы. Есть вершины с весами. Часть вершин - предопределены. Часть - неизвестны. Подграфы связаны констрейнтами. Например - где-то масса подграфа должна быть константой. (К началу задачи еще и эта константа - неизвестна). Имеется также порождающий генератор (или набор генераторов) которые выдают на выходе поток чисел которыми надо заполнять вершины. Имеется цель - заполнить все вершины значениями из генератора при условии выполнения всех кострейнтов. И я имел в виду именно такую постановку. Дано: G - множество графов. V - множество вершин. E - множество ребер. Vс - подмножество вершин с весами. A - порождающий алгоритм(ы) заполнения вершин. С - множество констрейнтов (ограничений) на множество графов. И на меньшее я в топике не соглашусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 18:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Можно ещё один цикл убирать. Получаем: Шаг 1. цикл по х15 - определяем а1 Шаг 2. циклs по х12 и х16 Здесь определяем в следующей последовательности: х14 (х14 + х16 = 20 или 19)( 21793947 ), х13, а2, а3, х8, х9, х10, х11. Далее - есть две внутренние окружности, где можно проверить соотношение: х12, х13, а2, а3, х8, х9, х10, х11. - есть средняя окружность, где можно проверить соотношение х8, х9, х10, х11 Шаг 3. Цикл по х2 в а1 - определяем х5 Шаг 4. Цикл по х3 в а2 – определяем х6 Шаг 5. Цикл по х4 в а3 – определяем х7 Всего 6 циклов. 3 основных и 3 вспомогательных (попарные перестановки 6 чисел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovА если совсем углубиться (ударение на втором у), то можно ещё ввести соотношения между объектами (окружность, диагональ). А если и ...., то можно вообще рисовать произвольные картинки, только успевай выстраивать новые схемы, которые будут похожи на 21794700 Так что, вариантов обобщения и углубления много. Я именно про это и говорю. Есть граф. У него есть подграфы. Есть вершины с весами. Часть вершин - предопределены. Часть - неизвестны. Подграфы связаны констрейнтами. Например - где-то масса подграфа должна быть константой. (К началу задачи еще и эта константа - неизвестна). Имеется также порождающий генератор (или набор генераторов) которые выдают на выходе поток чисел которыми надо заполнять вершины. Имеется цель - заполнить все вершины значениями из генератора при условии выполнения всех кострейнтов. И я имел в виду именно такую постановку. Дано: G - множество графов. V - множество вершин. E - множество ребер. Vс - подмножество вершин с весами. A - порождающий алгоритм(ы) заполнения вершин. С - множество констрейнтов (ограничений) на множество графов. И на меньшее я в топике не соглашусь.И что этому мешает? Надо с чего-то начать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
С языка описания. Описать граф. Потом по этому описанию сгенерировать алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555maytonДоказательством корректнсти программы является ее работа и ее результат. Но программисты же получают не просто результат, а оптимальный результат. Так вот по оптимальности решения полным перебором возможны большие вопросы. А где вы увидели полный перебор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonС языка описания. Описать граф. Потом по этому описанию сгенерировать алгоритм.Для этого нужен новый топик или достаточно существующего? Будем использовать опыт этого топика? Жду начала описания. Далее - развитие этого описания. Или сначала для тренировки обобщим имеющуюся задачку? 21794705 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Вам очень надо новый топик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:24 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonВам очень надо новый топик?Можно и в существующем. Я имею в виду название топика, если оно соответствует новой проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Да нет никакой проблемы. Есть "игры разума". И мы в них играем. Просто я говорю что в этих играх я бы не стал кодить конкретно данную задачу. Она мне неинтересна. Но мне интересны различные обобщения. Кроме того в каждом топике у меня есть скрытый интерес. Например здесь скрытый интерес - графы и Resouce Definition Language. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 19:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Сообщение 21794898 можно немножко поправить: Шаг 1. цикл по х15 - определяем а1 Шаг 2. цикл по х16 - определяем х14 (х14 + х16 = 20 или 19)( 21793947), Шаг 3. цикл по х12 Здесь определяем в следующей последовательности: х13, а2, а3, х8, х9, х10, х11. Далее - есть две внутренние окружности (которые ранее не "использовались"), где можно проверить соотношение: х12, х13, а2, а3, х8, х9, х10, х11. - есть средняя окружность (ранее не "использовалась"), где можно проверить соотношение х8, х9, х10, х11 Шаг 4. Цикл по х2 - определяем х5 из а1 Шаг 5. Цикл по х3 – определяем х6 из а2 Шаг 6. Цикл по х4 – определяем х7 из а3 Всего 6 циклов. 3 основных и 3 вспомогательных (попарные перестановки 6 чисел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 21:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Теперь попробуем разобраться с а1, а2, и а3, для которых имеем 6 "свободных" чисел (если есть такое решение). Допустим, для каждого а1,а2,а3 получаем только одну пару чисел - один вариант разбивки чисел для а1, а2, а3. Тогда для а1 имеем 2 варианта решения, для а1 и а2 имеем 4 варианта решения, для а1, а2 и а3 имеем 8 вариантов решений. Если взглянуть на решения 21794557 , то получается, что - имеется одно решение для х1, х8, х9, ...., х17, - имеется два варианта разбивки 6 чисел для а1, а2, а3. То есть, всего 16 решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 21:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonТы уже опубликовал это где-то в гитхабе? Я хотел сделать несколько changes. Залил. Экспериментируй Я пока в коде ничего не менял. Просто посмотрел под Valgrind/Callgrind. Из за того что основное тело алгоритма представляет собой колбасу без вызвов подпрограмм то callgrind не разбивает репорт в разрезе каждой функции. Грубо говоря в отчоте callgrind видно 85 вызовов буст-овского nextpermutation. А это неинтересно с точки зрения анализа реализации Если ее зарефакторить так чтобы каждый цикл был функцией тогда калгринд дал-бы более материальный отчот. Конечно это можно все эмулировать счетчиками и логгированием но как-то хотелось доверять технологии. Trust to technology bro... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 22:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
85 миллионов вызовов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 22:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Картинка с профилированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 22:13 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Глупый codeblocks. Где в нём рефакторинг? Где extract procedure... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 22:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЕсли взглянуть на решения 21794557 , то получается, что - имеется одно решение для х1, х8, х9, ...., х17, - имеется два варианта разбивки 6 чисел для а1, а2, а3. То есть, всего 16 решений.Только сейчас до меня дошло, что только одно основное решение! Раньше у нас было 12 уравнений и 15 неизвестных. Если вводятся а1, а2 и а3 вместо х2, х3, х4, х5, х6, х7, то имеем: 12 уравнений и 12 неизвестных 1 решение!!! Завтра попробую расписать формулы. А кто-то поторопился написать программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 22:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В таком случае отчот Димы содержит некорректные расстановки. Можете их указать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 23:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Зарефакторил один внутренний цикл. Пока не сильно помогает понять картину вызвов. К компилляции добавил опцию -pg. Теперь можно смотреть gprof. Пока такая картинка. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2019, 23:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovРаньше у нас было 12 уравнений и 15 неизвестных. Если вводятся а1, а2 и а3 вместо х2, х3, х4, х5, х6, х7, то имеем: 12 уравнений и 12 неизвестных 1 решение!!! Завтра попробую расписать формулы. А кто-то поторопился написать программу. Не получилось! Уравнения превращаются в тождества Остаётся только все переменные выразить через х12,х15,х16 х1= К / 3 х14 = 20 – х16 Из большой окружности х13 = К – 32 – х15 – х12 Из диагоналей: а1 = К – х15 – 12 – х1 а2 = 32 + х15 + х12 – х16 – х1 а3 = К – х1 – 20 + х16 – х12 Далее проверка – малая окружность. Аналогично находим х8,х9,х19,х11 из внутренних окружностей, где они встречаются по одному. далее проверка, где они по два, далее проверка на средней окружности.maytonВ таком случае отчот Димы содержит некорректные расстановки. Можете их указать?Указать не могу. Остаётся перебор. Просто приведенные расчеты позволяют несколько сократить количество циклов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 06:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В предыдущем сообщении получено уравнение из суммы все диагоналей:Gennadiy Usovх1= К / 3Получается, что из двух вариантов для х1 и х17 Gennadiy UsovА именно: 1)выкидываем 10, в центре 20, сумма круга (диаметра) 60 2)выкидываем 20, в центре 19, сумма круга (диаметра) 57.остаётся первый: 20 и 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 07:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... Залил. Экспериментируй Я пока в коде ничего не менял. Просто посмотрел под Valgrind/Callgrind. Из за того что основное тело алгоритма представляет собой колбасу без вызвов подпрограмм то callgrind не разбивает репорт в разрезе каждой функции. Грубо говоря в отчоте callgrind видно 85 вызовов буст-овского nextpermutation. А это неинтересно с точки зрения анализа реализации Если ее зарефакторить так чтобы каждый цикл был функцией тогда калгринд дал-бы более материальный отчот. Конечно это можно все эмулировать счетчиками и логгированием но как-то хотелось доверять технологии. Trust to technology bro... :) next_combination() это сочетания, по-другому это Код: plaintext 1. 2. 3. 4. можно написать так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. std::next_permutation() это размещения. Можно так через циклы написать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если в код заглянешь - все циклы вложенные, заменив next_combination() получим 9 циклов вместо 2, заменив std::next_permutation() - 11 циклов вместо двух. Итого +16 вложенных циклов. ИМХО это будет не код, а фарш какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 08:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Что тебя смущает? Следуй советам Фаулера. Делай функции как можно меньшего размера. Его рекомендации относились ко всем языкам включая C++. О преждевременной оптимизации не парься. О ней надо думать тогда, когда точно известен bottleneck. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 09:28 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovОстаётся только все переменные выразить через х12,х15,х16 Из большой окружности х13 = К – 32 – х15 – х12 Здесь можно организовать выборку сочетаний по 3 из 15 для определения х12,х15,х16. При этом будут отсеиваться те сочетания, для которых не подходит х13. Получаем 245 вариантов без учета отсеянных. Если сочетания для варианта найдены, то имеем перестановки из 3-х элементов - всего 6 подвариантов для варианта. И для каждого подварианта определяются формулы из 21795083 с проверками. Всего 6 подвариантов для одного варианта. И не нужны циклы по каждому неизвестному. Есть один цикл для варианта и один цикл для подварианта. Для определения составляющих х2,х3,х4.х5,х6,х7 из оставшихся 6 чисел: Имеем сочетания 3 из 6 для каждой пары. Всего 20 сочетаний. И перестановки для этих пар из оставшихся 3-х чисел. Всего 6 перестановок. Итого 120 вариантов. Всё перемножать не следует, так как при работе с подвариантами будет очень большой отсев. В частности, в нашей задачке останется только один вариант, один подвариант, 2 сочетания и 8 перестановок для каждого сочетания. maytonВ таком случае отчот Димы содержит некорректные расстановки. Можете их указать?Продолжаются упрощения процесса вычислений: 1) Остаётся только 4 цикла: для варианта, для подварианта, для сочетания, для расстановки. 2) Идет работа не с объектами графа (окружности, диагонали), а с конкретными формулами вычисления неизвестных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 09:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Кстати, все формулы по определению неизвестных можно будет "загнать" в одну процедуру, из которой может быть несколько "аварийных выходов" в случае нарушения правила "свободного" числа или в случае выхода за границу массива чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 09:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЧто тебя смущает? Следуй советам Фаулера. Делай функции как можно меньшего размера. Собственно так я и сделал. Заменил код на фарш , можешь профилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 10:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ну это не то что я хотел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 10:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TЗаменил код на фарш , можешь профилировать. Изначальный вариант тут .Вопросы по программе: 1)Зачем сортировать массив? Массив от 1 до 20 – либо 0 (число ещё не выбрано), либо 1 (число выбрано). Проще сравнивать по номеру на «свободное место», и заносить новое число. 2)Тогда для 6,10,12,18,20 занести в массив 1. 3)Неудобно с переменными от 1 да 17? Так можно ввести переменные от 1 до 20 с пропусками по индексу. Это для начала… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 10:46 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Далее.. 4)Есть такое: // Заполнение среднего круга по 4 из 15 Но в среднем круге 4 неизвестных и 3 известных. Причем 4-е неизвестное можно вычислить по 3-м другим неизвестным. Поэтому достаточно по 3 из 15. И вычисляется 4-е неизвестное (либо пропуск, если попадает на уже известное число). 5)// Заполнение внешнего круга по 5 из 11 Но теперь все неизвестные на внешнем круге вычислятся... Зачем выборка? 6) start(19, 57, 20); Это можно убрать, так как доказано, что х1 = sum / 3; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 12:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonА где вы увидели полный перебор? Честно говоря, я не изучал код Димы, но вижу дискуссию, где Дима больше о переборе (ну или о практическом решении конкретной задачи), а остальные о его сокращении. Дима первым дал результат, но видимо с минимальным сокращением количества перебираемых вариантов. Это работает, но только на конкретной задаче, а стоит задачу чуть-чуть расширить - упрёмся во время вычисления. Поэтому и остаётся актуальной мысль о максимальном сокращении числа перебираемых вариантов с соответствующим предложением - не останавливаться на димином варианте. Хотя с точки зрения практики - конкретная задача решена и можно расходиться по домам. Но сама задача же явно не практическая. А если рассматривать её как познавательно-теоретическую, то опять становится важным обобщение и нахождение способа сокращения количества вариантов перебора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 13:48 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
На моем слабом ноутбуке данное приложение работает несколько секунд - решение достаточное для того чтобы вообще не заниматься оптимизиацией. А профилирование которое я хотел посмотреть это просто шаг в сторону обобщения. Чтобы понять как просядет подобная задача когда узлов графа станет на порядки больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 13:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНу это не то что я хотел Без стека вызовов не видно профилирования. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 14:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНа моем слабом ноутбуке данное приложение работает несколько секунд - решение достаточное для того чтобы вообще не заниматься оптимизиацией. А профилирование которое я хотел посмотреть это просто шаг в сторону обобщения. Чтобы понять как просядет подобная задача когда узлов графа станет на порядки больше. Ты неправильно смотрел, тут нечего обобщать. Алгоритм изначально оптимизирован под данную задачу, лишние переборы отсекаются своевременными проверками суммы if(sum == ...) В общем случае тут 17! комбинаций. Предварительно математически 17! свели к 2*15! (возможны две пары {x1, x17}) Но 2*15! твой ноут будет перебирать часы, а то и сутки. Можешь запустить не оптимизированный ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 15:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonmaytonНу это не то что я хотел Без стека вызовов не видно профилирования. До строки кода нет детализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 15:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima TЗаменил код на фарш , можешь профилировать. Изначальный вариант тут .Вопросы по программе: 1)Зачем сортировать массив? Массив от 1 до 20 – либо 0 (число ещё не выбрано), либо 1 (число выбрано). Проще сравнивать по номеру на «свободное место», и заносить новое число. 2)Тогда для 6,10,12,18,20 занести в массив 1. 3)Неудобно с переменными от 1 да 17? Так можно ввести переменные от 1 до 20 с пропусками по индексу. Это для начала… Сортировки там нет, в процессе решения массивы изначально сортированные получаются. Работа с сортированными массивами гораздо быстрее. Gennadiy UsovДалее.. 4)Есть такое: // Заполнение среднего круга по 4 из 15 Но в среднем круге 4 неизвестных и 3 известных. Причем 4-е неизвестное можно вычислить по 3-м другим неизвестным. Можно, только алгоритм слишком сложный получится. Gennadiy Usov5)// Заполнение внешнего круга по 5 из 11 Но теперь все неизвестные на внешнем круге вычислятся... Зачем выборка? Расчет на этом не заканчивается, далее надо все размещения перебрать, а это требует собрать данные в массив Gennadiy Usov6) start(19, 57, 20); Это можно убрать, так как доказано, что х1 = sum / 3; 19 = 57 / 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 15:53 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Tmaytonпропущено... Без стека вызовов не видно профилирования. До строки кода нет детализации? Хороший вопрос. Ищу это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 15:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Далее… 7)В программе сначала определяются числа для всех переменных, сначала 4 из 15, затем 5 из 11, далее оставшиеся 6 чисел, а потом уже эти числа проверяются на 12 уравнениях. То есть, в программе рассматриваются больше вариантов. Последняя переменная в уравнении может быть просто посчитана, а в результате эта переменная принимает много значений, которые по формулам были бы отвергнуты. Если применять формулы, то происходит постепенное определение значений переменных по наличию «свободных зон» в массиве чисел. И для этого достаточно меньше выборок чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 15:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... До строки кода нет детализации? Хороший вопрос. Ищу это. Есть ссылка на GCOV (типа code coverage). https://stackoverflow.com/questions/3263573/is-there-a-profiler-for-c-gcc-to-profile-code-lines-separately Кстати мне понравилось основание по которому этот-же топик был закрыт. Вверху "Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." Это хорошая мысль и я постараюсь взять ее на вооружение для модерации С++. Надеюсь коллеги поддержат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usov6) start(19, 57, 20); Это можно убрать, так как доказано, что х1 = sum / 3; 19 = 57 / 3Да, здесь я ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovДалее… 7)В программе сначала определяются числа для всех переменных, сначала 4 из 15, затем 5 из 11, далее оставшиеся 6 чисел, а потом уже эти числа проверяются на 12 уравнениях. То есть, в программе рассматриваются больше вариантов. Последняя переменная в уравнении может быть просто посчитана, а в результате эта переменная принимает много значений, которые по формулам были бы отвергнуты. Если применять формулы, то происходит постепенное определение значений переменных по наличию «свободных зон» в массиве чисел. И для этого достаточно меньше выборок чисел. Это называется over-optimization, т.е. чрезмерная оптимизация. Задача решается за секунду, можно дальше тюнингом кода заниматься излишне его усложняя, но это даст выигрыш в доли секунды. Оно того не стоит в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... 19 = 57 / 3Да, здесь я ошибся. Геннадий. Вы можете запустить программу Дмитрия на этом сайте https://ideone.com/ Предварительно скопировав ее исходный код и указав язык С++ в меню выбора языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... До строки кода нет детализации? Хороший вопрос. Ищу это. Можешь попробовать сделать функции-обертки Код: plaintext 1. 2. 3. в коде вызывать их Код: plaintext 1. 2. 3. А проще счетчиков навтыкать во все циклы и в конце их вывести. ИМХО это не классическая задача для профилирования, поэтому профилировать неудобно. PS Вернул обратно исходник. фарш тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usov4)Есть такое: // Заполнение среднего круга по 4 из 15 Но в среднем круге 4 неизвестных и 3 известных. Причем 4-е неизвестное можно вычислить по 3-м другим неизвестным. Можно, только алгоритм слишком сложный получится. Самый простой алгоритм - это простой перебор всех и вся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TА проще счетчиков навтыкать во все циклы и в конце их вывести. ИМХО это не классическая задача для профилирования, поэтому профилировать неудобно. Я-бы хотел избегать "дурных" путей. Типа логгирования или счетчиков. Это не от хорошей жизни. Если Callgrind нам позволяет видеть не только учот количества вызовов прикладной функции но еще и строит граф вызовов (я видел картинку со стрелками) то это технологично. И этим надо воспользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonГеннадий. Вы можете запустить программу Дмитрия на этом сайте https://ideone.com/ Предварительно скопировав ее исходный код и указав язык С++ в меню выбора языков.Пока не вижу в этом смысла. Меня, также как и Вас, интересуют отдельные моменты программирования, а именно, определение схем построения алгоритмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В актуальной ревизии https://github.com/Dmitriy-GH/remove20th/blob/master/remove20th.cpp Я-бы ввел некую сущность под названием Graph Код: plaintext 1. и передавал бы ее в функции-предикаты. Например. Вместо. Код: plaintext 1. Ввел-бы Код: plaintext 1. 2. 3. Предикаты соотв. проверяют подграфы на сбалансированность по весу. Но я не настаиваю. А то со стороны выглядит будто я заставляю тебя подгонять код под Callgrind. Я в принципе всегда стараюсь писать код максимально разбитым на элементарные фунции. Единственный кейс когда я этого не делал - в карточном трассировщике - просто для сохранения оригинального подобия к исходнику Гекберта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonГеннадий. Вы можете запустить программу Дмитрия на этом сайте https://ideone.com/ Предварительно скопировав ее исходный код и указав язык С++ в меню выбора языков.Пока не вижу в этом смысла. Меня, также как и Вас, интересуют отдельные моменты программирования, а именно, определение схем построения алгоритмов. Как будет угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima Tпропущено... Можно, только алгоритм слишком сложный получится. Самый простой алгоритм - это простой перебор всех и вся. Верно, но это долго, часы. Если в лоб 17!, то недели. Поэтому нужна оптимизация. Любая оптимизация это усложнение алгоритма, т.е. повышение вероятности допустить ошибку. Поэтому чем меньше оптимизации - тем лучше. Поэтому всегда ищется компромисс, в данном случае критерий компромисса это время. Одной секунды вполне достаточно чтобы прекратить оптимизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy Usov7)В программе сначала определяются числа для всех переменных, сначала 4 из 15, затем 5 из 11, далее оставшиеся 6 чисел, а потом уже эти числа проверяются на 12 уравнениях. То есть, в программе рассматриваются больше вариантов. Последняя переменная в уравнении может быть просто посчитана, а в результате эта переменная принимает много значений, которые по формулам были бы отвергнуты. Если применять формулы, то происходит постепенное определение значений переменных по наличию «свободных зон» в массиве чисел. И для этого достаточно меньше выборок чисел. Это называется over-optimization, т.е. чрезмерная оптимизация. Задача решается за секунду, можно дальше тюнингом кода заниматься излишне его усложняя, но это даст выигрыш в доли секунды. Оно того не стоит в данном случае.А как же красота алгоритма? Ведь кто-то сказал, что эта задачка для олимпиады. Кроме того, будет опыт для более сложных графов (если конечно будут такие задачки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:34 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я слишком стар для олимпиады. Я просто не уложусь в назначенное время. Мой перфекционизм просто не даст возможности мне дойти до definition of done. Да и вообще олимпиады по информатике - это ужасные зубо-дробительный код который пишется 1 раз. И смотреть на него страшно. Это обычно одна простыня main() безо всякого рефакторинга. Всё захардкожено под ответ. Шаг-влево-вправо и этот код валится как карточный домик. Собственно суть олимпиады - показать прототип идеи и показать что он работает для данного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonВ актуальной ревизии https://github.com/Dmitriy-GH/remove20th/blob/master/remove20th.cpp Я-бы ввел некую сущность под названием Graph Код: plaintext 1. и передавал бы ее в функции-предикаты. Например. Вместо. Код: plaintext 1. Ввел-бы Код: plaintext 1. 2. 3. Предикаты соотв. проверяют подграфы на сбалансированность по весу. Но я не настаиваю. А то со стороны выглядит будто я заставляю тебя подгонять код под Callgrind. Я в принципе всегда стараюсь писать код максимально разбитым на элементарные фунции. Единственный кейс когда я этого не делал - в карточном трассировщике - просто для сохранения оригинального подобия к исходнику Гекберта. на обощенный Graph это не тянет, т.к. речь о вполне конкретной фигуре и даже твой isHorizontalGraphBalanced() это тоже о конкретной фигуре. Твоя идея посчитать количество вызов каждого sum == ... в корне неверная. Вызов std::next_permutation() или next_combination() намного тяжелее чем это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:41 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНапример. Вместо. Код: plaintext 1. .... А почему сразу не посчитать Код: plaintext 1. и сравнить с массивом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:41 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Вы не поймете. Выж математик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА как же красота алгоритма? Самый красивый алгоритм - не оптимизированный Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Под спойлером рабочий код, все предельно понятно, но считать будет несколько недель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 16:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TТвоя идея посчитать количество вызов каждого sum == ... в корне неверная. Вызов std::next_permutation() или next_combination() намного тяжелее чем это. Давай избавимся от permutation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 17:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
И у нас в воздухе провис вопрос о количестве решений. Или их 16. Или их больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 17:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonDima TТвоя идея посчитать количество вызов каждого sum == ... в корне неверная. Вызов std::next_permutation() или next_combination() намного тяжелее чем это. Давай избавимся от permutation. Как? Это оптимальная реализация, моя переделка в циклы заметно тормознее получилась. Загугли " размещения алгоритм ", везде аналогичный подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 17:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonИ у нас в воздухе провис вопрос о количестве решений. Или их 16. Или их больше. Ровно 16, иначе можно утверждать что задача не решена, т.к. исключить можно только одно число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 17:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonИ у нас в воздухе провис вопрос о количестве решений. Или их 16. Или их больше.В сообщении 21795098 показано, что количество решений задачки кратно 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 18:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonИ у нас в воздухе провис вопрос о количестве решений. Или их 16. Или их больше.В сообщении 21795098 показано, что количество решений задачки кратно 8. Может быть 24 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 18:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovВ сообщении 21795098 показано, что количество решений задачки кратно 8. Может быть 24 ?Всё возможно. Хотя Dima T уже всё посчитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 18:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Проверим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 18:46 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonГлупый codeblocks. Где в нём рефакторинг? Где extract procedure... Установил Clion. Рефакторит получше. Хотя я сделал авто-форматирование последней версии сорца. Получилась такая некислая лесенка.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 20:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дима а прокомментируй плиз зачем тут так много сорцов. Какой из них - актуален? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2019, 21:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Здесь говорили, но не стали реализовывать 2-й вариант, через систему ур-й. Кратко озвучиваю это. Ибо вопрос темы звучит "как решить задачу". Я поздно присоединился, но в итоге результат не получился, хотя и перепроверял несколько раз. По этому случаю только краткую схему на тему насколько легко это можно сделать в экселе (систему саму получить, а потом по свободным переменным получать решения). В общем, нарисовал на листке неоднородную систему наших 12 линейных ур-ний с 15-ю переменными. Поскольку из предварительного анализа X1= одно из 2-х значений, то их вынес в параметры алгоритма, ну т.е. приравнял тоже к константе. Если надо, запускаем два раза и все дела. Эти шаги нетрудно запрограммировать. Значит, таблицу к-тов заносим в матрицу 12х15, приводим к "диагональному" виду. Получилось как на вложенном рисунке (справа там ещё есть преобразованный константный вектор (S-Y-X1-18-12-6)). Почему-то свободных переменных осталось 5. Далее 2 варианта действий. 1) полный перебор A(5,15)=360360, вопрос фигнядля программы. 2) воспользоваться эвристиками и сузить перебор. Я воспользовался, остались 54 варианта, но увы ... Прогу диагонализации писать неохота, ибо в прошлом такое на бумаге делал мильоны раз. Но сделать это легче всего в VBA. Просто привожу свой полуручной неправильный, видимо, вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 01:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Уточню. Исходный константный вектор без Y-лишнее: (S-X1-18-12-6), X1 - центр, S - сумма каждого пути. Вектор тоже преобразуется по мере диагонализации. Просто для радиальныхх ур-й X1 изначально присутствует, а для остальных вместо него 0. Аналогично и с остальными константами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 02:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я рисовал граф. Но граф не особо нужен так как топология слабо учитывается. Тут скорее важно учесть реляционное отображение вершин на подграфы и контролировать частичные суммы. Тоесть помаркировал вершину (Vertex) числом - и синхронно добавил это число к суммам всех связных подграфов. Видя что граф - игрушка а не необходимость я - охладел. Чуть позже возможно я выкачу своё решение. Но я не люблю репризы. И никогда не копирую чужие сорцы просто так. Нужна оригинальная идея. Иначе выходить на сцену бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 02:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДима а прокомментируй плиз зачем тут так много сорцов. Какой из них - актуален? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. remove20th.cpp основной remove20th_nooptimize.cpp перебор 2*15! комбинаций remove20th_trash.cpp без вызовов std::next_permutation() и next_combination() тебе для профилирования удалил последние два ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 07:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Если кому система уравнений нужна, то вот она Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Также доказано что Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 07:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Если поможет: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 07:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, можно упростить систему уравнений. если ввести переменные а1,а2,а3: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. То есть, получается 12 уравнений и 12 неизвестных [/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 09:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, вот теперь верно: можно упростить систему уравнений. если ввести переменные а1,а2,а3: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. То есть, получается 12 уравнений и 12 неизвестных [/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 09:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Еще не помешает указать что Код: plaintext 1. 2. 3. Еще вместо sum написать 3*x[1] и можно решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 09:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
На самом деле, 12 уравнений и 12 неизвестных – это не совсем точная информация. Часть из этих уравнений использовалась для определения sum и x[1] 21793339 . Так что, если строго, была использована ещё одна выборка по sum и часть уравнений для определения x[1]. Следовательно, этих 12 уравнений не достаточно для определения 12 неизвестных. Поэтому, необходимо эти 12 уравнений преобразовать в определения n неизвестных при наличии выборки m чисел. n + m + 3 = 15. Часть уравнений из 12 не дадут новой информации, а будут использоваться для проверки найденных чисел. Тогда можно будет точно сказать, сколько необходимо выборок.Dima TЕще не помешает указать что Код: plaintext 1. 2. 3. Еще вместо sum написать 3*x[1] и можно решать.Данные уравнения можно дописать к 12 уравнениям. но они пока не нужны. Их можно будет использовать после определения а1, а2, а3. Про sum я уже сказал в начале сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 11:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, уравнение баланса забыл x1 + x2 + ...x7 = ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 12:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, уравнение баланса забыл x1 + x2 + ...x7 = ...Не понял, откуда это следует? Переменные от х1 до х7 ни на одном объекте (окружность, диагональ) одновременно не появляются. Если это про внутреннюю окружность, то там нет х1. А уравнение этой окружности - это "внутренний круг" в общем перечне уравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 12:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovkealon(Ruslan)Gennadiy Usov, уравнение баланса забыл x1 + x2 + ...x17 = ...Не понял, откуда это следует? из условия распределяеют 17 чисел, значит их сумма известна, это и есть "уравнение баланса" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 12:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usovпропущено... Не понял, откуда это следует? из условия распределяеют 17 чисел, значит их сумма известна, это и есть "уравнение баланса" Согласен, есть уравнение баланса: x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7] + x[8] + x[9] + x[10] + x[11] + x[12] + x[13] + x[14] + x[15] + x[16] = 210 - x[17] - 6 - 12 -18 то есть у нас уже 13 уравнений и 17 неизвестных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 12:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Поскольку уравнения добавляются, то можно добавить ещё следующие уравнения (может быть они уже были на топике?): 210 = x[17] + 10 * x[1] sum = (210 - x[1] - x[17]) / 3 Отсюда видно, что x[17] должен делиться на 10. Получаем выборку из 2 чисел: x[17] = 10; x[1] = 20; sum = 60; x[17] = 20; x[1] = 19; sum = 57; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovто есть у нас уже 13 уравнений и 17 неизвестных. Это сюда тоже надо добавить Код: plaintext 1. 2. 3. Переменных должно стать на одну больше, т.к. все используются в других уравнениях, добавилась только x[17] Еще выше ошибка была, там 12 уравнений и 13 неизвестных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:14 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovПолучаем выборку из 2 чисел: x[17] = 10; x[1] = 20; sum = 60; x[17] = 20; x[1] = 19; sum = 57; Как вариант - подставить эти значения и решить дважды. Тогда будет 12 уравнений с 12-ю переменными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Имеется формула баланса; Код: plaintext 1. Пока не ясно, как её увязать со всем остальным. Скорее всего она нужна для определения числа 210 (вдруг, когда-то она будет переменная) Далее попробую представить выборки и формулы для определения неизвестных: Выборка по x[17] (2 выборки 10 и 20) Код: plaintext 1. 2. ( это строже, чем sum = x[1] * 3) Выборка по x[15], x[16], x[12] Код: plaintext 1. 2. 3. 4. 5. проверка Код: plaintext 1. далее Код: plaintext 1. 2. проверка Код: plaintext 1. далее Код: plaintext 1. 2. проверки Код: plaintext 1. 2. Вот такая последовательность формул и выборок для определения 11 неизвестных (из них 4 - по выборке) и а1, а2, а3. А теперь подумаю насчет а1, а2, а3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Есть стандартная методика решения n линейных уравнений с n переменными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсть стандартная методика решения n линейных уравнений с n переменными А почему не подходит предложенная схема выборок и формул? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:41 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Крамер рекомендует алгебру матриц. Но чортов старик вводит туда рациональные дроби. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovDima TЕсть стандартная методика решения n линейных уравнений с n переменными А почему не подходит предложенная схема выборок и формул? Мне кажется это замкнутый круг, но если так можно решить, то я не против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Имеется известные 3 величины а[1], а[2], а[3]. Каждая из этих величин является суммой двух неизвестных. Код: plaintext 1. 2. 3. Всего неизвестных 6. Имеется 6 чисел из массива чисел. Требуется распределить эти 6 чисел между 6-ю неизвестными, чтобы при этом не менялись величины а[1], а[2], а[3]. Выборка x[2], x[3], x[4] из 6 чисел. Проверяем: Код: plaintext 1. 2. 3. Если выборка x[2], x[3], x[4] идет по возрастающей, то полученный вариант можно видоизменить с помощью перестановок: 8 подвариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 13:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonКстати мне понравилось основание по которому этот-же топик был закрыт. Вверху "Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." Это хорошая мысль и я постараюсь взять ее на вооружение для модерации С++. Надеюсь коллеги поддержат. Тогда вместо рекомендаций и их обоснования придётся рассказывать "как я провёл лето". То есть длинно, нудно, во многом бесполезно. Скорее стоит ввести правило - рекомендация должна содержать обоснование. Например задавать критерии полезности и в соответствии с ними вычислять полезность предлагаемого варианта в сравнении с альтернативами. Обычно спамеры обоснования не сочиняют или сочиняют что-то ужасное, поэтому их такой подход отсеет. А если обоснование приличное, значит за ним действительно стоит какая-то мысль, пусть даже спамерская, но полезная, интересная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98По этому случаю только краткую схему на тему насколько легко это можно сделать в экселе На счёт "легко" - я даже не встречал, где там вообще про решение систем уравнений. А здесь ведь ещё и множественные решения (переменных больше, чем уравнений) с проверкой. То есть уже не просто решение систем, а переборный алгоритм с некой частью, решающей систему. Где такое в экселе? Просветите, плиз. Какие меню, какие расширения скачивать, какая версия ёкселя, ну и вообще - где искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:14 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. подменяем Код: plaintext 1. 2. 3. поулчается Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. итого 13 уравнений, 15 неизвестных будет удобно если ещё какие-то подмены углядеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Скорее стоит ввести правило - рекомендация должна содержать обоснование. Например задавать критерии полезности и в соответствии с ними вычислять полезность предлагаемого варианта в сравнении с альтернативами. Обычно спамеры обоснования не сочиняют или сочиняют что-то ужасное, поэтому их такой подход отсеет. А если обоснование приличное, значит за ним действительно стоит какая-то мысль, пусть даже спамерская, но полезная, интересная. Типичный случай. Новичек заходит в форум программирования и спрашивает - как быстро-быстро отсортировать массив целых чисел. Типа int. Или long. В оперативной памяти. При этом ему надо чтоб было ооочень быстро. У профессионалов разработки при этом вспыхивает острая мигрень затылочной части мозга. Если не модерировать такой топик - то он очень быстро скатывается в переход на личности. Вопрос это испаханный вдоль и поперек. И в википедии есть сорцы и книжки на тему. За кадром остаются вопросы практического применения. И мои вопросы из серии - а каким образом эти данные вообще попали в память? Телепортировались? Сколько времени заняло в секундах их телепортация и тому подобное. Складывается впечатление что ТС-у вообще был не особо нужен результат. Ему интересен был сам процесс обсуждения. Вот именно поэтому из таких топиков и возникает идея модерирования основанная на доказательстве уже проделанной работы. Типа что было уже сделано. Мотивация. Цель. Бизнес-цель в конце концов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)итого 13 уравнений, 15 неизвестных будет удобно если ещё какие-то подмены углядеть Я выше предлагал 21795736 Сначала подставляем Код: sql 1. будет 13 уравнений, 12 неизвестных решаем, затем подставляем Код: sql 1. снова решаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, эти значения из этих уравнений получились матрица выйдет нулевая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonТипичный случай. Новичек заходит в форум программирования и спрашивает - как быстро-быстро отсортировать массив целых чисел. Здесь, мне кажется, нет проблемы. В смысле ситуация кажется проблемной, но проблемой на самом деле не является. Новичок просто много чего не знает, это очевидно. Вот ему и нужно об этом сказать. Но сказать, по хорошему, нужно так, что бы он понял, куда ему дальше копать. Большинству просто лень что-то долго объяснять, вот они и тыкаю новичка мордой об стол. А надо на самом деле решить две задачи - сбить спесь с молодого товарища, который нередко уверен, что он всегда прав, и во вторых показать путь, пройдя который он что-то научится делать. Спесь сбивать все горазды, в этом плане у меня никаких подозрений в неспособности это сделать нет. А вот путь показать - нужно терпение, желание и т.д. Поэтому в идеале обсуждение нужно организовать так, что бы показывался именно путь, а не получался переход от поучений к самовозвеличиванию поучающих. И здесь, на мой взгляд, переходящие в срач темы нужно просто переносить куда-то подальше, типа "просто трёп" или что-то подобное - пусть там срутся, ведь никому же не мешают. А что бы тема не переносилась - устанавливать критерий - нужны вменяемые пояснения по дальнейшему пути данного новичка. Но поскольку большинству лень вменяемо (то есть объёмно, затратно по времени) объяснять, то и ответов будет мало, но зато у новичка появится стимул быть вежливым, ибо он просит, что бы его заметили и что-то полезное ответили. Если не будет вежливым - его проигнорируют или засунут тему подальше, где опять будут игнорировать. И в итоге всё должно само наладиться, но при условии качественной сортировки срача от тем с показанным путём развития. Ну и описание этих требований, конечно, должно быть на видном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Показать что? Ссылку на википедию? Яж говорю тема - миллиард раз изжевана. Она - боян. Она была-бы не-бояном применительно к бизнес-задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:40 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, эти значения из этих уравнений получились матрица выйдет нулевая Один из двух наборов правильный, если заменим переменную на ее правильное значение, то должно быть все нормально. Мы же не подменяем одной переменной другую, а подставляем конкретные значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 14:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Допустим, что на условие задачки 21792769 имеется схема определения неизвестных: 21795764 и 21795824 . Данная схема позволяет быстро перейти на другие условия данной геометрической задачки. 1. Допустим, нет в кружочках чисел 6, 12, 18. Вводим переменные х[18], x[19], x[20] и ставим их на те кружочки, где ранее располагались число 6, 12, 18. Далее выборка по x[15], x[16], x[12], х[18], x[19], x[20] (6 чисел из 18 чисел). Меняем в формулах числа 6, 12, 18 на х[18], x[19], x[20], и схема работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 15:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
попробовать вам конечно никто не запретит, но такая схема работать не будет, вам придётся 2 уравнения исключить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 15:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)попробовать вам конечно никто не запретит, но такая схема работать не будет, вам придётся 2 уравнения исключитьКакие? Обычно, когда указывают на ошибки, эти ошибки приводятся как доказательство своей версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 15:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. упростим Код: plaintext 1. 2. 3. 4. 5. 6. 7. подменяем a[1] + a[2] + a[3] = sum Код: plaintext 1. 2. 3. 4. 5. 6. 7. подменяем x[8] + x[9] + x[10] + x[11] = b1 x[12] + x[13] +x[14] +x[15]+ x[16] = b2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. чуток упрощаем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 5 уравнений, 5 неизвестных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 15:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), блин, одно из уравнений исходных лишнее, последнее уравнение выходит из суммы 2-го и 3-го ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 15:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)x[8] + x[9] + x[10] + x[11] = b1 x[12] + x[13] +x[14] +x[15]+ x[16] = b2 чуток упрощаем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 5 уравнений, 5 неизвестныхЯ ранее предупреждал, что любое решение уравнений (без выборок) приходит к тождествам. b1 и b2 равны sum с точностью до чисел. Подставляйте значения b1 и b2 в Ваши уравнения и получайте тождества!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, вы непоняли, одно из исходных уравнений композиция остальных, т.е. любое из уравнений кроме баланса можно выкинуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Совсем забыл про проверки после каждой формулы. Кроме массива х имеем массив хр, той же размерности, что и х. В массиве хр хранятся значения либо 0 (перед началом работы программы), либо 1. Если хр[i] = 1, то это означает, что выбрано или вычислено число i. Все формулы находятся в некоторой процедуре. b = x[i] Если b > 20 или b<1, то эти аварийный выход. Если xp[b] == 1 то аварийный выход Иначе xp[b] = 1. Данная процедура позволяет на ранней стадии вычислений по формулам отвергать заведомо неверные варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, вы непоняли, одно из исходных уравнений композиция остальных, т.е. любое из уравнений кроме баланса можно выкинутьА что, это военная тайна, и Вы второй раз не указываете уравнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. любое из уравнений ниже можно исключить, оно будет вполняться если будут выполняться остальные Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. итого выйдет 12 уравнений, 15 неизвестных это следует из того, что получилось зависимое уравнение при преобразовании системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
пардон, из вот этих (баланс не трогаем) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)чуток упрощаем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 5 уравнений, 5 неизвестных Продолжаем упрощать sum/3 + sum + sum - 24 + sum - 12 + x[17]= 174 => 10/3 sum + x[17] = 210 => x[17] = 210 - 10/3 sum => x[17] = 210 - 10 x[1] Тоже самое что и X = 210 - 10C 21793586 2 sum = 36 + b1 + b2 вырождается в 0=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)пардон, из вот этих (баланс не трогаем) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Не надо всё крушить. Уравнения, которые по Вашему лишние, нужны для дополнительной проверки получаемых значений для неизвестных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, давай проверим Код: plaintext 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. Код: plaintext 1. 2. можешь любое из остальных попробовать закомментировать (текущий комментарий только раскрой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonТипичный случай. Новичек заходит в форум программирования и спрашивает - как быстро-быстро отсортировать массив целых чисел. Типа int. Или long. В оперативной памяти. При этом ему надо чтоб было ооочень быстро.Ему надо - пусть он и делает. И не надо подтирать носы по каждому чиху. P.S. Первая пара вопрос-ответ из древнего ЧАВО XFree86/2: В. - Вы должны ... О. - Я никому ничего не должен. Более чем актуально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 16:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Табличку нарисовал для решения матрицами constx1a1a2a3x8x9x10x11x12x13x14x15x16уравнение1211111sum = 12 + x[12] + x[13] + x[14] + x[15] + x[16] // Внешний круг241111sum = 18 + 6 + x[8] + x[9] + x[10] + x[11] // Средний круг111sum = a[1] + a[2] + a[3] // Внутренний круг12111sum = 12 + a[1] + x[1] + x[15] // Диаметр горизонтальный1111sum = x[14] + a[3] + x[1] + x[12] // Диаметр cлева направо1111sum = x[13] + a[2] + x[1] + x[16] // Диаметр cправа налево121111sum = 12 + x[9] + a[2]+ x[11] + x[12]121111sum = 12 + x[13] + x[10] + a[3] + x[8]181111sum = x[13] + x[14] + 18 + a[1] + x[9]61111sum = x[14] + x[15] + 6 +a[2] + x[10]181111sum = x[15] + x[16] + x[11] + a[3] + 1861111sum = x[16] + x[12] + x[8] + a[1] + 6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 17:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, sum, это ещё один столбец с -1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 17:28 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, давай проверим Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 17:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, в плане любую одну из 12-ти проверок закомментировать, как это сделал я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 18:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, в плане любую одну из 12-ти проверок закомментировать, как это сделал яЯ не знаю как. Нужен пример "одну из 12-ти проверок закомментировать". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 18:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovkealon(Ruslan)Gennadiy Usov, в плане любую одну из 12-ти проверок закомментировать, как это сделал яЯ не знаю как. Нужен пример "одну из 12-ти проверок закомментировать". найди вот эту строчку Код: plaintext 1. перед ней знак комментария, в проверках она не участвует, а результат тот же выше неё ещё 11 проверок, каждую из них них так же можно закоментировать и результат не поменяется ( с моей правки только снять коментарий) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 18:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy UsovНужен пример "одну из 12-ти проверок закомментировать". найди вот эту строчку Код: plaintext 1. перед ней знак комментария, в проверках она не участвует, а результат тот же выше неё ещё 11 проверок, каждую из них них так же можно закоментировать и результат не поменяется ( с моей правки только снять коментарий)Здесь всё очень просто. Я уже сообщал о характере решений 21795098 : "В частности, в нашей задачке останется только один вариант, один подвариант, 2 сочетания и 8 перестановок для каждого сочетания." Всего 16 решений. То есть, в коде несколько проверок для отсева, и поскольку у нас только один вариант (для 11 неизвестных) (это видно из таблицы решений), то другие варианты просто не доходят до этого уравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 18:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Зачем так долго спорить. Есть факты. 12 ур-ний связи на пути. Путей всего 12. Это необходимый минимум. Начала линейной и высшей алгебры гласят, что любые другие додумки будут их линейной комбинацией. Также можно заменить любое кол-во ур-ний на другие, независимые от оставшихся и эквивалентные условиям. Результат не изменится. Ранг системы всегда=10. Я приводил рисунок. Можно переменные заменять на комбинацию первоначальных. Результат не изменится. Получим 5 свободных переменных. Вот мой вариант системы в текстовом виде, если нужно. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Я устранил ошибку в эвристиках, оставив только 120 вариантов для перебора, т.ч. матрица та же самая. Все константы справа. S - подразумевается в правой части ур-ния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 20:05 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
По обозначениям. abcdef - малый круг ABCDEF - средний 123456 - радиусы В таблице переставлены столбы - я так захотел. Результат не изменится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 20:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555На счёт "легко" - я даже не встречал, где там вообще про решение систем уравнений. А здесь ведь ещё и множественные решения (переменных больше, чем уравнений) с проверкой. То есть уже не просто решение систем, а переборный алгоритм с некой частью, решающей систему. Где такое в экселе? Просветите, плиз. Какие меню, какие расширения скачивать, какая версия ёкселя, ну и вообще - где искать? Искать где? F1, раздел форума Микрософи офисс, пробовали? а также основы линейной алгебры? Конкретнее. Есть т.н. "формулы", а есть макросы. Формулы для того, чтобы одним кликом заполнить весь ряд или столб. Приведение матрицы к диагональному виду - процесс итерационный. Развернуть итерации в послед-сть действий ручками. Перебор независимых переменных - в зависимости от размеров можно ручками, копи-вставкой из сторонней утилиты, макросом VBA прямо в клетки листа. Разумеется при вменяемых размерах. я на бумажке отсеял лишние значения. Осталось 120 комбинаций. Обошёлся без макросов и сторонних процедур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 20:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хотя... Крамер - рекурсивен. Потонуть можно. Меня получается 19 переменных в общем случае. Может Гаусс-Зейдель. Тот вроде как более стабилен по времени. Треугольная матрица привлекательнее чем ветвление дерева из (19-3) уровней.... Блииииин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 21:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Константы тоже обозначил как вершины графа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2019, 22:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хорошо. Пусть будет матрица. И что с ней делать? Спрятаться за лозунгом "Начала линейной и высшей алгебры"? И что там сказано за нашу матрицу? Составители матриц ошибаются: имеется 13 уравнений (ещё - баланс) и 17 неизвестных (ещё х1 и х17) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 06:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonКонстанты тоже обозначил как вершины графа.Надо добавить ещё С10 - окружность баланса, или весы баланса, на которых расположен (или опирается) граф, а рядом противовес - V20 (по нашему - х17) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 07:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovХорошо. Пусть будет матрица. И что с ней делать? Спрятаться за лозунгом "Начала линейной и высшей алгебры"? И что там сказано за нашу матрицу? Составители матриц ошибаются: имеется 13 уравнений (ещё - баланс) и 17 неизвестных (ещё х1 и х17) надо взять учебник по линейной алгебре для 1 курса мехмата, и все вопросы отпадут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:05 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, и там чёрным по белому написано, что для нахождения решения количество неизвестных должно быть равно рангу матрицы самый умный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Aleksandr Sharahov, и там чёрным по белому написано, что для нахождения решения количество неизвестных должно быть равно рангу матрицы самый умный? Не написано. Не путай со школьным учебником для 8 класса. Школота? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
ранг нашей матрицы 12 Код: plaintext 1. любое из нижележащих уравнений можно исключить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. где Код: plaintext 1. 2. 3. например, можно заменить (x[8] + x[10]) и убрать последнее уравнение останется 14 переменных куда ещё 2 девать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, я может конечно за 18 лет подзабыл курс линейной алгебры, но не на столько ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Aleksandr Sharahov, я может конечно за 18 лет подзабыл курс линейной алгебры, но не на столько Именно настолько и подзабыл. От слова совсем. Подсказка: свободные переменные. Ну или гугли, если не вспомнишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, ну что я тебе сказжу, окинь взглядом магистр, снизойди до нас, найди их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:28 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Aleksandr Sharahov, ну что я тебе сказжу, окинь взглядом магистр, снизойди до нас, найди их Сам найди, мне некогда. Подсказка: линейные преобразования матриц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Тут с примером 3 уравнения с 4 переменными https://math1.ru/education/sys_lin_eq/basis1.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:40 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, переменные связаны дискретными условиями, которые эта система не учитывает, вот и появляется перебор из найденного ответа можно предположить что часть переменных связана, вопрос какая если удастся заменой исключить ещё 2 переменные, то мы найдём базис, а остальные будут вычисляться перебором на основе дискретных условий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 09:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, переменные связаны дискретными условиями, которые эта система не учитывает, вот и появляется перебор из найденного ответа можно предположить что часть переменных связана, вопрос какая если удастся заменой исключить ещё 2 переменные, то мы найдём базис, а остальные будут вычисляться перебором на основе дискретных условий Перебрать все возможные значения двух целочисленных переменных в интервале 1..20 - как 2 байта переслать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 10:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, переменные связаны дискретными условиями, которые эта система не учитывает, вот и появляется перебор из найденного ответа можно предположить что часть переменных связана, вопрос какая если удастся заменой исключить ещё 2 переменные, то мы найдём базис, а остальные будут вычисляться перебором на основе дискретных условий Ты усложняешь преждевременно, тут решение невозможно, это просто трансформация наших уравнений к виду Код: plaintext 1. 2. 3. т.е. просто назначить какие-то две переменные свободными (s1,s2) и выразить через них все остальные. А дальше перебор, но перебор двух переменных, т.е. 16*17 комбинаций, это в экселе можно прикинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 10:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonКонстанты тоже обозначил как вершины графа.Надо добавить ещё С10 - окружность баланса, или весы баланса, на которых расположен (или опирается) граф, а рядом противовес - V20 (по нашему - х17) Какая окружность баланса. У меня на рисунке вроде все отражено. 9 окружностей и 3 диаметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 10:48 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, переменные связаны дискретными условиями, которые эта система не учитывает, вот и появляется перебор из найденного ответа можно предположить что часть переменных связана, вопрос какая если удастся заменой исключить ещё 2 переменные, то мы найдём базис, а остальные будут вычисляться перебором на основе дискретных условий По этой системе получается что мы ищем точку в 19 мерном пространстве где пересекаются 12 гиперплоскостей. При этом большая часть гиперплоскостей имеют жестко фиксированные угловые коэффициенты. Рискну предположить что в вещестенных числах мы-бы это не решили и поэтому нам остается опираясь на целочисленность просто тупо перебать 20 штук точек и подставив их в это пространство найти которая их них ляжет в систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 11:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, перебрать то мы их перебрали, было бы интересно найти базис инвариантов, если он есть, ну или доказать что его нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 11:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovНадо добавить ещё С10 - окружность баланса, или весы баланса, на которых расположен (или опирается) граф, а рядом противовес - V20 (по нашему - х17)Какая окружность баланса. У меня на рисунке вроде все отражено. 9 окружностей и 3 диаметра.А куда определить уравнение баланса и переменную х17? Ведь они участвуют в задачке? Ответ лучше формулировать в терминах программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Какая окружность баланса. У меня на рисунке вроде все отражено. 9 окружностей и 3 диаметра.А куда определить уравнение баланса и переменную х17? Ведь они участвуют в задачке? Ответ лучше формулировать в терминах программирования. Я не понял ваш вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovСоставители матриц ошибаются: имеется 13 уравнений (ещё - баланс) и 17 неизвестных (ещё х1 и х17) а составители-то и не знали ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:43 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В сообщении 21795934 рассматривался вариант, когда вместо 6, 12, и 18 будут неизвестные величины. 2)Теперь можно ещё усложнить задачку: все 19 чисел в кружках – произвольные. В качестве примера такого варианта задачки рассмотрим числа от 1 до 19. В данном примере получаем х1 = 19. Но этот пример у нас уже был: тогда х17=20. И по нему решений не оказалось (расчеты Dima T). Следовательно, не всегда любые 19 чисел могут быть расположены в кружочках в нашей задачке таким образом, чтобы они удовлетворяли условиям задачки. В частности, есть комбинация 19-ти чисел, а именно, числа от 1 до 9, от 11 до 19, и 20 в центре задачки (расчеты Dima T). Можно найти ещё комбинации 19 чисел: Например, ко всем 19 числам из нашей задачки (нет числа 10, в центре 20) добавляется число Р. Получаются новые 19 чисел (за исключением в10): в1=1+Р, в2=2+Р,…,в19=19+Р, и в20=20+2*Р. Для таких комбинаций чисел тоже есть решения нашей задачки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Gennadiy UsovСоставители матриц ошибаются: имеется 13 уравнений (ещё - баланс) и 17 неизвестных (ещё х1 и х17) а составители-то и не знали ...Они это знали, поскольку это не произвольные 20 чисел (или 19, если в этом случае не рассматривать х17). Далее, только благодаря уравнению баланса определяются х1 и х17. Попробуйте не использовать это уравнение и найти х1 и х17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TТы усложняешь преждевременно, тут решение невозможно, это просто трансформация наших уравнений к виду x[1] = f1(s1,s2) x[2] = f2(s1,s2) ... Совершенно верно, и всё уже сделано, я забросил вчера эту матрицу для 15 неизвестных,оставшихся после предварительного несложного анализа. Кто забыл вкратце: Диагонализация является формализацией решения системы уравнений. Достаточно модернизированного метода Гаусса (а здесь простого Гаусса). Выбираем строчку, в к-рой "1" первая Назначаем её первой строкой В 1-м столбе вычитаем эту строку из остальных строк, чотбы обнулить столб. И т.д. для каждого след-го столба. Если требуется, передвигаем столб на новое место, чтобы получить диагональ. Всё. Для сравнения с Димой - результат (я не сравнивал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 12:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, центральное и выкинутое мы нашли вообще без указанных значений скорее всего заданные значения служат лишь для уменьшения количества вариантов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:00 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovПопробуйте не использовать это уравнение и найти х1 и х17. Побробуйте опровергнуть моё решениеи мои высказывания (особенно в части слов "предварительный анализ"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovА куда определить уравнение баланса и переменную х17? Ведь они участвуют в задачке? Ответ лучше формулировать в терминах программирования. Я не понял ваш вопрос.Вы рисуете графы, в которых через вершины проводите окружности или диагонали, которые подразумевают уравнения (идет какая-то сумма, вершины таким образом связаны в рамках окружности или диагонали). И все это Вы называете вершинами графа (так написано перед рисунком). Но все обозначенные вершины графа связаны одним уравнением баланса. Как это описывает теория графов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, центральное и выкинутое мы нашли вообще без указанных значений скорее всего заданные значения служат лишь для уменьшения количества вариантовКогда формулируете ответ на сообщение желательно это сообщение показать или сослаться. Это не трудно. Попробую сам догадаться (или ошибся). Как эти переменные были найдены без числа 210 (уравнение баланса). Прошу представить расчеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Поправочка у меня X - центр Y - лишняя exp98abcdef - малый круг ABCDEF - средний 123456 - внешний круг В таблице переставлены столбы - я так захотел. Результат не изменится. Ваша раскладка x2,x3,x4,x5,x6,x7 x9, x10,18,6,x11,x8 12,x13,x14,x15,x16,x12 x1=X ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, уравнение баланса конечно учли, я имею ввиду без 3-х чисел которые заданы 21793256 (последняя строчка там с ошибкой, 21793650 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:16 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, уравнение баланса конечно учли, я имею ввиду без 3-х чисел которые заданы 21793256 (последняя строчка там с ошибкой, 21793650 )Но эти числа тоже входят в уравнение баланса ( пока не стоит суммировать или отнимать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Я не понял ваш вопрос.Вы рисуете графы, в которых через вершины проводите окружности или диагонали, которые подразумевают уравнения (идет какая-то сумма, вершины таким образом связаны в рамках окружности или диагонали). И все это Вы называете вершинами графа (так написано перед рисунком). Но все обозначенные вершины графа связаны одним уравнением баланса. Как это описывает теория графов? Это не полная картинка. В ней не учтена арифметика балансов. Я это рисовал чтобы подчеркнуть что я ввожу 3 переменные вместо констант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Кто забыл вкратце: Диагонализация является формализацией решения системы уравнений. Достаточно модернизированного метода Гаусса (а здесь простого Гаусса). Выбираем строчку, в к-рой "1" первая Назначаем её первой строкой В 1-м столбе вычитаем эту строку из остальных строк, чотбы обнулить столб. И т.д. для каждого след-го столба. Если требуется, передвигаем столб на новое место, чтобы получить диагональ. Всё. Угу. Полчаса активного орудование мышем в экселе, с периодическими проверками, очередная проверка не прошла, и всё, Ctrl+z работает на десяток последних действий. Сделал почти половину ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 13:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, Полчаса очень даже хорошо. Я потратил пол воскресенья)) последовательно на каждый столб копировал таблицу под предыдущей, делал ссылки на предыдущую таблицу. В ссылки уже записывал сложения-вычитания-умножения(вместо деления). Всё это проделал трижды из-за ошибок. Чтобы обезапаситься от некоторых ошибок рекурсии, на каждый диагональный элемент нужна своя копия.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хотел напомнить очевидное, если S вводить в качестве переменной. Лучше засунуть её в такой столб, чтобы она ни в коем случае не вылезла среди независимых переменных. Иначе я умру раньше, чем закончится перебор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:24 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Dima T, Полчаса очень даже хорошо. Я потратил пол воскресенья)) последовательно на каждый столб копировал таблицу под предыдущей, делал ссылки на предыдущую таблицу. В ссылки уже записывал сложения-вычитания-умножения(вместо деления). Всё это проделал трижды из-за ошибок. Чтобы обезапаситься от некоторых ошибок рекурсии, на каждый диагональный элемент нужна своя копия.. Проще можно: вставляешь пустую строку над изменяемой строкой, формулу в первую клетку пишешь, мышкой растянул, Ctrl+C, Специальная вставка - Значения, Исходную строку удалил. И т.д. до финиша. Не сложно, но меня отвлекали в процессе и я похоже что-то напутал. Думал Ctrl+Z спасет, но нет. Сохранятся надо было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:28 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TСохранятся надо было. Вот это безусловно! Ты в той же таблице,поэтому ошибку не найдёшь. А я вот так делал, красил ещё цветом изменяемые строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
У меня давняя ещё привычка сохраняться с нумерацией по кругу типа: файл1 - файл 2 - файл3 - ... - снова файл 2. Посчитаешь в эксе несколько лет - ещё не такое придумаешь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
UI-ные версии Tortoise-SVN умели и понимали подсвечивать разницу между двумя ревизиями Excel-файлов. P.S. Васили Иваныч! Снимай свою гильзу... В магазин кондомы привезли... (с) Народный анекдот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 14:41 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TТут с примером 3 уравнения с 4 переменными https://math1.ru/education/sys_lin_eq/basis1.html Как я понял из представленного материала: есть базисные переменные и свободные переменные. Базисные переменные определяются через свободные переменные. У меня именно так 21795764 ; свободные переменные: х17,х12,х15,х16, остальные - базисные переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 15:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Победил Гаусса a1a2a3x9x10x11x12x13x14x15sx1x8x16const1-2.1666666670.666666667161-0.666666667-0.333333333-61-0.166666667-0.333333333-111.5-1-361-1.5161-313121-0.8333333330.3333333331-1.3333333330.333333333161-1110.166666667-0.666666667-161-3 Сначала хотел вывести зависимость от x1,x8, но ближе к концу два уравнения преобразовались в одинаковые и пришлось брать третью переменную, взял x16 чтоб считать меньше. Может где-то накосячил, но не нашел где. Возможно неудачно выбрал x8. Вывелось наше известное sum = 3*x1 В формулу подставлять с инверсией знака, т.е. например Код: sql 1. PS Уже в глазах рябит от цифр этих. Это нереально преобразовать руками не зная ответы, у меня был контроль по правильным ответам каждого шага, накосячил раз 5. Мат.либу надо какую-то, по-любому есть что-нибудь, действия не сложные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 16:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, в экселе есть формула обратной матрицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 16:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima T, в экселе есть формула обратной матрицы Еще бы я вспомнил что с ней делать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 16:13 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TЕще бы я вспомнил что с ней делать :) если A * x = b то x = A -1 * b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 16:14 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Tkealon(Ruslan)Dima T, в экселе есть формула обратной матрицы Еще бы я вспомнил что с ней делать :)Посмотреть с другой стороны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 16:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, я не нарочно, сам давно уж понял, что макросом было бы быстрее. Но каково?! реклама - двигатель (эксэла) Теперь остался пустяк. Задать значения и в уравнениях сделать =СУММПРОИЗВ(... ; ...) kealon(Ruslan)в экселе есть формула обратной матрицы а ещё есть умножение матриц, ага Обратную матрицу можно было получить попутно, (но только для квадратной м-цы) методом сбоку присоединённой единичной. Это тоже из начал лин. алг. Только куда потом её засунуть. По крайней мере умножением сразу переводим в диагональную. Ну а на что помножить, то конечно подбором, или преобразованием координат)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 18:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ну их нафиг эти матрицы, через немного лет ребенок проходить будет, тогда и буду вспоминать. Причем постепенно, а не залпом )) Я кажется понял почему невозможно выразить через две переменные. Посмотрите на картинку или на таблицу мою исходную 21796078 , там нет ни одной переменной, которая бы участвовала в половине и более уравнений, т.е. две переменные никогда не покроют все уравнения и как следствие через две не выразить все остальные, хотя формально 14 переменных и 12 уравнений. В общем нормально что через 3 выразилось, но комбинаций для перебора стало 17*16*15 = 4080. Многовато для экселя, но далеко не 17! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 19:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TЯ кажется понял почему невозможно выразить через две переменные. Посмотрите на картинку или на таблицу мою исходную 21796078 , там нет ни одной переменной, которая бы участвовала в половине и более уравнений, т.е. две переменные никогда не покроют все уравнения и как следствие через две не выразить все остальные, хотя формально 14 переменных и 12 уравнений. В общем нормально что через 3 выразилось, но комбинаций для перебора стало 17*16*15 = 4080. Многовато для экселя, но далеко не 17!Если посмотреть на 21795764 , то есть ещё 15-я переменная - sum. И уравнение баланса - 13-ое. И все равно, 4 выборки, включая х17. То есть, для 13 уравнений определяется только 11 неизвестных. Может это из-за того, что при подстановке величин уравнения превращаются в тождества? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 20:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TНу их нафиг эти матрицы, через немного лет ребенок проходить будет, тогда и буду вспоминать. Причем постепенно, а не залпом )) Я кажется понял почему невозможно выразить через две переменные. Посмотрите на картинку или на таблицу мою исходную 21796078 , там нет ни одной переменной, которая бы участвовала в половине и более уравнений, т.е. две переменные никогда не покроют все уравнения и как следствие через две не выразить все остальные, хотя формально 14 переменных и 12 уравнений. В общем нормально что через 3 выразилось, но комбинаций для перебора стало 17*16*15 = 4080. Многовато для экселя, но далеко не 17! Я как-нибудь форкну отдельно тему СЛАУ. В пятницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 20:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЕсли посмотреть на 21795764 , то есть ещё 15-я переменная - sum. У меня нет x17, т.к. Код: plaintext 1. незачем это в общую кучу включать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 20:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
ТС пропал, а мне до сих пор интересно задача по какому предмету была? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 20:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TGennadiy UsovЕсли посмотреть на 21795764 , то есть ещё 15-я переменная - sum. У меня нет x17, т.к. Код: plaintext 1. незачем это в общую кучу включатьЗначит, выборка по х1 из 2-х чисел (если строго). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 20:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Развернуть итерации в послед-сть действий ручками. Спасибо, понятно. Я думал есть некое магическое статистическое расширение офиса, а оказывается нужно просто программу написать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 21:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TТС пропал, а мне до сих пор интересно задача по какому предмету была? Это же фото с какого-то стенда - олимпиадная задача или что-то в таком духе. Вне любого предмета. Хотя вообще - явная математика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 21:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)окинь взглядом магистр, снизойди до нас, найди их Суть правильная - переменных должно быть столько же, сколько и уравнений, но так же есть дополнительные критерии типа при определителе равном чему-то там возможны только нулевые решения. Но здесь, я надеюсь, нулевых решений и прочих "эдаких" вывертов быть не должно, иначе сам составитель задачи просто идиот (хотя и не исключено, учитывая перепутанность кругов и диаметров). Dima TМат.либу надо какую-то, по-любому есть что-нибудь, действия не сложные. У меня установлена система писючной алгебры, какую систему решить? Но переменных нужно столько же, сколько уравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 21:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555 У меня установлена система писючной алгебры, какую систему решить? Но переменных нужно столько же, сколько уравнений.Добавьте ур-ния типа S=S, т.е. тождества, и будет она квадратная. А проглотит ли прога, уж не знаю ... А кол-во свободных переменных, я выше напоминал. Определяется рангом системы, а та - линейной зависимостью либо независимостью матричных векторов, а не тем, сколько раз встречается. Это и есть выразимость одних ур-ний через другие, что аналогично афинной замене координат (переменных), т.е. умножению на матрицу преобразования координат. Кол-во свободных переменных даёт линейное пространство размерностью=рангу. Вот в этом пр-ве мы потом и делаем перебор, если его не сузить дополнительным анализом. У кого 4000, у кого 120 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 22:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T т.е. две переменные никогда не покроют все уравнения и как следствие через две не выразить все остальные, хотя формально 14 переменных и 12 уравнений.Смогут или нет, определяется линейной зависиомстью либо независ-стью (т.е. от вида ур-ний). Хоть 100500 уравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 22:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Добавьте ур-ния типа S=S, т.е. тождества, и будет она квадратная. А проглотит ли прога, уж не знаю ... Прога проглотит, но не даст решений. Сокращение бесполезных тождеств она умеет делать, так что способ не для неё. И вообще, рассуждая о линейной алгебре вы предлагаете нечто ей противоречащее, так что не совсем понятно какой вывод о вас нужно сделать. Хотя не знаю, сможет ли программа, например, предложить один из множества вариантов решений. Раньше встречал ситуацию, когда она вывела формулу для результата, вместо конкретных значений. Не знаю, что там внутри алгоритма, но его сочиняли десятки лет, в смысле система довольно древняя, а потому с ней многие работали и что-то иногда дополняли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 23:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98определяется линейной зависиомстью либо независ-стью Если в уравнениях используются разные переменные (что актуально для диаметров, например), то линейно выразить Х через операции с У вы вряд ли сможете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 23:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Хоть 100500 уравнений. Здесь вообще не место просто воспоминаниям из курса линейной алгебры, здесь надо задачу решить. А про критерии любой прочитает при желании, просто освежить память - не так долго. Важнее - как эти критерии применить к конкретной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2019, 23:40 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Dima T, я не нарочно, сам давно уж понял, что макросом было бы быстрее. Но каково?! реклама - двигатель (эксэла) Теперь остался пустяк. Задать значения и в уравнениях сделать =СУММПРОИЗВ(... ; ...) kealon(Ruslan)в экселе есть формула обратной матрицы а ещё есть умножение матриц, ага Обратную матрицу можно было получить попутно, (но только для квадратной м-цы) методом сбоку присоединённой единичной. Это тоже из начал лин. алг. Только куда потом её засунуть. По крайней мере умножением сразу переводим в диагональную. Ну а на что помножить, то конечно подбором, или преобразованием координат)) не нужно её никуда пихать, нужно просто найти наибольшую часть матрицы с ненулевым определителем (МОПРЕД функция в экселе) переменные которые будут в неё входить можно принять за базис остальные принять за независимые находим обраную матрицу от этого куска, с помощью него считаются переменные из базиса, независимые рандомятся это в принципе просто ускорение того, что вы делали методом гауса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 00:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TНу их нафиг эти матрицы, через немного лет ребенок проходить будет, тогда и буду вспоминать. Причем постепенно, а не залпом )) Я кажется понял почему невозможно выразить через две переменные. Посмотрите на картинку или на таблицу мою исходную 21796078 , там нет ни одной переменной, которая бы участвовала в половине и более уравнений, т.е. две переменные никогда не покроют все уравнения и как следствие через две не выразить все остальные, хотя формально 14 переменных и 12 уравнений. В общем нормально что через 3 выразилось, но комбинаций для перебора стало 17*16*15 = 4080. Многовато для экселя, но далеко не 17! просто ранг матрицы 11, отсда и выходит 3 независимые переменные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 00:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. сложим те что со звёздочкой и заменим x[8] + x[10] -> a[4] Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. где Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 00:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. сложим те что со звёздочкой и заменим x[8] + x[10] -> a[4] ну и собственно наша матрица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 00:30 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
вот файлик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 00:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Есть беслатный пакет математики. Octave. В нем можно попробовать решать такие уравнения. Здесь А - это коэффициенты при иксах. B - правая часть системы соотв. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Это чтоб сейчас не парится с расчетом обратной матрицы на обычных языках программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 02:37 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Если подключать к решению задачки метод Гаусса, то получается интересная вещь. Метод Гаусса интересен тогда, когда в каждом уравнении очень много переменных. Тогда с помощью этого метода определяются уравнения для отдельных переменных. Причем, в каждом из этих уравнений будет достаточное количество переменных. В нашем случае в уравнениях очень мало переменных, и получается что при определении переменных методом Гаусса в уравнениях этих переменных появляется много дополнительных переменных – увеличивается время вычислений, уравнения будут сложными при программировании. В сообщении 21795764 предлагается определять переменные в лоб, сначала с уравнений, где мало неизвестных, и т.д. Получается: 12 уравнений 3 свободные переменные 9 базисных переменных (определение х1, х17, sum рассматриваем отдельно). Если в этом сообщении посмотреть на уравнения проверки, то их будет 3. Следовательно, если применить метод Гаусса, то по этим 3-м уравнениям получаются тождества. Таким образом, остаётся - 9 уравнений и 9 определяемых базисных переменных (неизвестных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 05:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ну и собственно наша матрицаПосмотрел на эту матрицу и оказалось, что её можно значительно упростить. Просто в уравнения вводятся новые неизвестные: х18=6, х19=12, х20=18, х21=sum. Тогда в матрице будут элементы либо 0 либо 1. И задача решения системы уравнений методом Гаусса значительно упрощается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 07:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, это как то далеко от олимпиады для школьников мы уже применяем методы, которые школьникам недоступны вот все независимые уравнения (11 штук) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. пользуясь основами линейной алгебры (определитель матрицы) мы это определили, как это должен сделать школьник - непонятно если бы у меня стояла такая практическая задача, я бы просто наверное в нелинейный солвер её загнал, помучавшись бы только с дискретными условиями, проходов за 20-30 он бы её раскрутил, а тут фиг знает что делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 09:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Dima TЕще бы я вспомнил что с ней делать :) если A * x = b то x = A -1 * b Почитал немного. Обратная матрица существует только для квадратной. Неквадратную приводят к квадратной записью свободных членов одним выражением, например "3*x1 - x8 + x16". Как следствие определитель будет выражением с x1, x8, x16. Эксель такое считать не умеет, считать на бумаге придется. Вот нашел онлайн калькулятор , быстрее всего в него забить исходные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)вот все независимые уравнения (11 штук) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А почему только 11? На основании матрицы? И где уравнения для определения неизвестных из этих 11-ти? Сколько выборок (свободных переменных)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Tkealon(Ruslan)пропущено... если A * x = b то x = A -1 * b Почитал немного. Обратная матрица существует только для квадратной. Неквадратную приводят к квадратной записью свободных членов одним выражением, например "3*x1 - x8 + x16". Как следствие определитель будет выражением с x1, x8, x16. Эксель такое считать не умеет, считать на бумаге придется. Вот нашел онлайн калькулятор , быстрее всего в него забить исходные данные.посмотри эксельку, там как раз такой расчёт в столбике b если хочешь с переменными, то просто для каждого коэфициента произведение обратной матрицы на его множитель посчитай будет у тебя 4 строчки с коэфициентами для x1, x8, x16 и 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 10:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima T, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 11:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА почему только 11? На основании матрицы? если найдёшь определитель квадратика 12*12 отличный от нуля для любой комбинации перестановок столбцов и строк матрицы, значит будет 12, я нашёл только для 11 (в эксельке второй блок это определители) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 11:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, ну а вообще проверить можно программкой Димы, закоментировав 2 уравнения если ответ будет другой, значит я плохо искал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 11:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В центре круга стоит число от 12 до 20, контрольная сумма равняется утроенному значению этого числа.... а дальше я хз как решать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 14:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555 Прога проглотит, но не даст решений. Телепатов нет. Тем хуже для самой проги и в особенности для её юзера. alex55555 так что не совсем понятно какой вывод о вас нужно сделать. К сож. помочь не могу. Могу порекомендовать: сделайте вывод о себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 14:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555exp98определяется линейной зависиомстью либо независ-стью Если в уравнениях используются разные переменные (что актуально для диаметров, например), то линейно выразить Х через операции с У вы вряд ли сможете.Да я вроде и не собирался, против теорем лин.алгебры - как плевать против ветра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 14:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВ нашем случае в уравнениях очень мало переменных, и получается что при определении переменных методом Гаусса в уравнениях этих переменных появляется много дополнительных переменных А почему в НАШЕМ случае у меня НЕ получилось много, скорее наоборот? Те же 5, а потом 3. kealon(Ruslan), тоже метод, но для детерминанта перестановки мутить, матрица ведь не квадратная. Мы сначала хотели уйти от перестановок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 15:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98, какая разница как вы будете делать перестановки в уме или двигая столбцы строки так хоть ошибиться сложнее и сразу видно где "не получится" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 15:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), да я и не против, я свой способ дожал до самого ответа. Народ, непонятно другое, продолжается обсуждение решений ад хок или народ ориентируется на обобщённый случай, где 18 переменных вместе с суммой и 13 начальных уравнений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 15:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, а-а-а, кажется догадываюсь, Вы наверное имеете ввиду верхнетреугольную матрицу. А обратным ходом она приводится к строго диагональной. И уж тут переменных - сколько получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 15:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)это как то далеко от олимпиады для школьников мы уже применяем методы, которые школьникам недоступны Вообще здесь пока не исследовались как следует эвристики. Понятно, что программисты хотят быстрее написать программу и не копать вглубь, поскольку это долго и не всегда полезно, но вот как раз школьнику из-за его незнания линейной алгебры пришлось бы упорно ковырять эти эвристики, ну и может быть он бы нашёл. Хотя ещё момент - если всё же поменять местами диаметры с кругами, то может уже и школьник бы справился? По решению уравнений: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. dependent equations eliminated: (10) x1=sum/3, x2=%r5, x3=%r6, x4=%r2, x5=(2*sum-3*%r5-3*%r3-36)/3, x6=(sum-12*%r6+6*%r4+6*%r3+108)/12, x7=(sum-2*%r4+2*%r3-4*%r2+12)/4, x8=(sum-2*%r1-12)/2, x9=(sum-18*%r4+18*%r3+36)/12, x10=%r1, x11=(5*sum+18*%r4-18*%r3-252)/12, x12=(5*sum-6*%r4-6*%r3-36)/12, x13=(sum+2*%r4-2*%r3-36)/4, x14=%r4, x15=%r3, x16=(sum-3*%r4)/3, x17=-(10*sum-630)/3 Если искать ещё и сумму, то получим: dependent equations eliminated: (11) x1=%r7/3, x2=(2*%r7-3*%r12-3*%r10-36)/3, x3=(-2*%r9+%r7-4*%r11+2*%r10+36)/4, x4=%r8, x5=%r12, x6=%r11, x7=(6*%r9-12*%r8+%r7+6*%r10+36)/12, x8=(%r7-2*%r13-12)/2, x9=-(-18*%r9+5*%r7-18*%r10-36)/12, x10=%r13, x11=(-18*%r9+11*%r7-18*%r10-252)/12, x12=(2*%r9+%r7-2*%r10-12)/4, x13=(-6*%r9+5*%r7-6*%r10-108)/12, x14=(%r7-3*%r9)/3, x15=%r10,x16=%r9, x17=-(10*%r7-630)/3, sum=%r7 Здесь %r есть любое реальное число, но в нашем случае интересны лишь целые, значит это любое целое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 16:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я возьму на себя смелость и процитирую википедию. Эвристика (от др.-греч. εὑρίσκω — «отыскиваю», «открываю») — отрасль знания, научная область, изучающая специфику творческой деятельности[1]. Под эвристикой понимают совокупность приёмов и методов, облегчающих и упрощающих решение познавательных, конструктивных, практических задач[2]. Эвристика связана с психологией, физиологией высшей нервной деятельности, кибернетикой. Как наука эвристика развивается на стыке философии, психологии, теории искусственного интеллекта, структурной лингвистики, теории информации, математики и физики[3]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 16:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЯ возьму на себя смелость и процитирую википедию. В данном обсуждении под эвристикой понимается конкретная находка пути упрощения решения. Само слово эвристика происходит от известного случая с Архимедом, когда внезапно в голову пришла умная мысль. Вот так же точно и нашим участникам внезапно в голову может прийти некая полезная мысль, она и будет той эвристикой, которая упростит решение. Вообще же в википедии определение не полное, оно не учитывает одну мысль, ту самую, которая к Архимеду пришла. Хотя может уже даже сочинили целую науку "эвристику", но я никогда не встречал использования этого слова в контексте указания на какую-либо науку, а вот в контексте указания на на отдельную полезную мысль - многократно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 17:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Товарищи ученые, доценты с кандидатами! А решение на поверхности! Просто лень расписывать большую кипу бумаги формулами. kealon(Ruslan)Gennadiy Usov, это как то далеко от олимпиады для школьников мы уже применяем методы, которые школьникам недоступны пользуясь основами линейной алгебры (определитель матрицы) мы это определили, как это должен сделать школьник - непонятно Подумаем, что делает школьник- математик, увидев эту задачку. Давайте засечем время. Сколько нужно этого времени на задачку? Школьник делает следующие: 1)Построил 12 уравнений, например 21795456 2)Увидел, что есть общности и заменил часть неизвестных на а1,а2,а3 и добавил уравнение баланса. Например, 21796006 3)Из 4,5,6 уравнений определил а1,а2,а3, подставил в 3-е уравнение, получил sum = 3*х1 4)Из 7 – 10 уравнений нашел х8,х9,х10,х11 и подставляет во 2-е уравнение. Получил: х16=х1-х14 5)Подставил х8,х9,х10,х11 в 11-е уравнение. Получил: х16+х13-х12=4 6)Те же переменные подставил в 12-е уравнение. Получил: х14+х12-х13=(х1+12)/2 7)Подставил (х12-х13) из уравнения 5) в уравнение 6) получил: х1=20. Тогда sum=60 8)Из суммы уравнений 2 и 4-6 получил: х17=10 Самое главное: нет второго варианта для х1 и х17 9)Из 1-го уравнения и из 5) и 6) получил: х13=(sum-28-х15-х16)/2 Далее определил х12 из 5) Получается, что количество свободных переменных сократилось до 2х – х15 и х16. Ведь у нас 13 уравнений (с балансом) и 15 переменных (вместе с sum). Остальные переменные из 12-ти уравнений определяются, если есть выборка по х15 и х16. И, конечно, далее выборка для определения х2,х3,х4,х5,х6,х7, если известны а1,а2,а3 Сколько получилось времени? Бумаги ушло с черновиками 10 листов А4. Можно, наверное, ещё поработать, чтобы найти х15 и х16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 18:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Нифига. Взял Турбо-Паскаль и закодил. Кстати надо спросить у Димы. Сколько времени заняла реализация. Без перекуров и фейсбука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, задача то с подвохом, если впрямую закодить перебор то на расчёт скорее всего никакого времени не хватит скорее всего требуется найти, то что мы нашли по суммам и дальше как сделал Дима это как бы идеальный и выполнимый вариант для школьника о расчёте вручную, даже с помощью экселя, речь конечно не идёт - у школьника просто нет матаппарата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)mayton, задача то с подвохом, если впрямую закодить перебор то на расчёт скорее всего никакого времени не хватит скорее всего требуется найти, то что мы нашли по суммам и дальше как сделал Дима это как бы идеальный и выполнимый вариант для школьника о расчёте вручную, даже с помощью экселя, речь конечно не идёт - у школьника просто нет матаппарата У школьника только бумага и шариковая ручка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovУ школьника только бумага и шариковая ручкатогда бы задача звучала как "найти лишнее - x17" , и всё а не все варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy UsovУ школьника только бумага и шариковая ручкатогда бы задача звучала как "найти лишнее - x17" , и всё а не все вариантыВ результате 21798189 Я не говорю, что расчеты закончены. Но уже прогресс: - нет второго варианта для х1 - количество свободных неизвестных для 12 уравнения сокращено до 2-х. Я не уверен, что на олимпиаде прокатит появление свободных неизвестных. Скорее всего, надо найти всё. Может быть есть ещё комбинации уравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:32 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, смотря какая олимпиада, если по математике то вполне достаточно того что я написал, с бумагой и ручкой больше очень сложно сделать (мы это сделали довольно легко, там только осталось найти способ отклонить неправильный вариант с суммой равной 57) если по информатике то 21798205 ИМХО, большего за адекватное время требовать от школьника наверное бессмысленно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:40 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, смотря какая олимпиада, если по математике то вполне достаточно того что я написал, с бумагой и ручкой больше очень сложно сделать (мы это сделали довольно легко, там только осталось найти способ отклонить неправильный вариант с суммой равной 57) если по информатике то 21798205 ИМХО, большего за адекватное время требовать от школьника наверное бессмысленноТак в сообщении 21798189 неправильный вариант с суммой равной 57 отклонен: нет второго варианта для х1 и х17 Есть только вариант х1=20, х17=10, sum=60 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:46 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Bingo Quest это вобщем - то приложение для Андроида. Наверное там - семейство таких головоломок. Но я не ставил пока. В телефоне совсем памяти нехватает для важных приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:47 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, ну тогда матвариант как бы всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, ну тогда матвариант как бы всёА кто-нибудь на топике говорил о кругах Эйлера? Что-то похожее у нас... Сейчас смотрю в интернете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 19:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНифига. Взял Турбо-Паскаль и закодил. Кстати надо спросить у Димы. Сколько времени заняла реализация. Без перекуров и фейсбука. Во-первых надо уметь кодить. Версия 1.0 пара часов, она тут не показана, но результаты ее работы упоминались. Проработка алгоритма в уме несколько дней в свободное время. Версия 2.0: час на отладку next_combination() и полчаса на все остальное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 20:02 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ну... вот. Проработка в уме несколько дней. Не укладывается в разумное время для олимпиады. Моя версия приложения с deep search - где-то так-же. И работает только в теории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 20:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНу... вот. Проработка в уме несколько дней. Не укладывается в разумное время для олимпиады. Моя версия приложения с deep search - где-то так-же. И работает только в теории.Кстати, круги Эйлера есть и для 5-го класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 20:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНу... вот. Проработка в уме несколько дней. Не укладывается в разумное время для олимпиады. Моя версия приложения с deep search - где-то так-же. И работает только в теории. Тут важно даже не сколько дней, т.к. это можно и за час переосмыслить. Важно что параллельно подкинули альтернативные идеи 21793586 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 20:56 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Что до той эврики,так я и начал глядеть на круги: из этих получаем то, из этих - следующее... Потом не хватило пальцев, что бы тыкать и ещё заподозрил неоднозначность, а это уже как-то не очень для школьников. Квадраты думал рисовать, вычеты, но не пошло)) Так что всё у нас пучком. kealon(Ruslan)ну тогда матвариант как бы всё Не рассматривали собственные числа, но это экзотика. А кто со знанием лин. алгебры, могут добавить, дойдя до независимых штучек, что теперь, мол, достаточно угадать или найти 1 решение, выписать общее решение однородной системы, и,перебирая его, складывать с первым решением. Вместо подстановки в уравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 20:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Ребята. Все эти детерминанты. Крамеры. Гауссы Жорданы и Зейдели. Это все не про олимпиаду. Олимпиада по математике - это другое. Это должно быть как озарение. Как вспышка. Посидел подумал. И решил. По информатике - примерно то что написал Дима. Хардкодно. Одной простыней. Но решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 21:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, Хардкодно если это сделано тупым перебором чисто за счёт техники это плохо (эта задача таких обломает и этим она хороша). Но последнии тенденции говорят, что классическая олимпиада уже мало где нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2019, 23:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
К сообщению 21798189 можно добавить следующие уравнения: 10) Из последних 6-ти уравнений выбрал те, в которых х9 и х11. Подставил в 1-е уравнение, получил: 2*(х9+х11)=sum-36 11)Подставил во 2-е уравнение (или как в 10) для х8 и х10), получил: 2*(х8+х10)=sum-12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 06:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonРебята. Все эти детерминанты. Крамеры. Гауссы Жорданы и Зейдели. Это все не про олимпиаду. Разговор был не про олимпиаду. Вопрос ставился: можно ли решить эту задачу чисто математически? Похоже что нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 07:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
А почему мы решили, что это олимпиада для школьников? Посмотрите на начальную картинку: - bingo квест - стенд с ячейками - остаток от слова информация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 07:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)mayton, Хардкодно если это сделано тупым перебором чисто за счёт техники это плохо (эта задача таких обломает и этим она хороша). Но последнии тенденции говорят, что классическая олимпиада уже мало где нужна Во мне борются две личности. Одна как-бе говорит что Олимпиада нужна. Нужны ясные и светлые головы для новых прорывов в науке и технике. Церебральный сортинг. Как-бы сказал Савельев. Коммунисты кстати на рубеже начала 20-го века очень сильно подняли науку просто активно вводя детишек в ВУЗы. Уж не помню была-ли это политика партии. Надо почитать. Но совершенно убежден что это было именно решение политическое. Страна готовилась к будущей войне и ей были нужны свои строители танков и самолетов. Задача прим. Тык-скыть. А другая личность во мне (которая близка к It) говорит что не надо нанимать на проект олимпиадника. Ну... просто не надо. Такое вот у меня личное предпочтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 11:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonА другая личность во мне (которая близка к It) говорит что не надо нанимать на проект олимпиадника. Ну... просто не надо. Такое вот у меня личное предпочтение.Кажется на хабре был довольно дельный разбор кого и куда надо нанимать Если у вас рутина и копать от сюда и до обеда, то смысла нет Если это исследовательские задачи, то середнячки бессмысленная трата ресурсов но в жизни всегда где-то между Программирование как искуство вообще противоестественная большинству отрасль, основная масса людей копипасты - особенность эволюции вида. Самое интересное, что многие олимпиадники по моему опыту могут забуксовать на квалификационных задачах, где надо просто тупо написать цикл. Привычка искать подвох играет злую шутку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 11:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonРебята. Все эти детерминанты. Крамеры. Гауссы Жорданы и Зейдели. Это все не про олимпиаду.Разговор был не про олимпиаду. Вопрос ставился: можно ли решить эту задачу чисто математически? Похоже что нет.Ещё раньше было ясно, что нельзя. Это связано с определением х2,х3,х4,х5,х6,х7, если известны а1,а2,а3. Здесь только перебор, который можно упростить с помощью определенных алгоритмов. А проводимые на топике действия направлены на поиск формул, упрощающих определение а1,а2,а3. В частности, поиск формул, уменьшающих число свободных переменных. Пока остаются 2 свободные переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 12:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima TВопрос ставился: можно ли решить эту задачу чисто математически? Похоже что нет. Что такое "чисто математически"? Перебор есть законная часть математических решений, если что. Вопрос только в его количестве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 14:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Программирование как искуство вообще противоестественная большинству отрасль, основная масса людей копипасты - особенность эволюции вида. Программирование - не искусство. Теория программирования - это уже математика. А само программирование - обычные слесаря обычным напильником пилят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 14:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Dima TВопрос ставился: можно ли решить эту задачу чисто математически? Похоже что нет. Что такое "чисто математически"? Перебор есть законная часть математических решений, если что. Вопрос только в его количестве. Используя только ручку и бумагу, без программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 14:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Dima Talex55555Что такое "чисто математически"? Перебор есть законная часть математических решений, если что. Вопрос только в его количестве. Используя только ручку и бумагу, без программирования.Я тоже за "чисто математическое" решение: сначала ручка и бумага, много бумаги, выработка схемы программирования, и уже затем программирование. Допускаю, что при "чисто математическом" решении могут быть отдельные оценочные программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 14:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555kealon(Ruslan)Программирование как искуство вообще противоестественная большинству отрасль, основная масса людей копипасты - особенность эволюции вида. Программирование - не искусство. Теория программирования - это уже математика. А само программирование - обычные слесаря обычным напильником пилят.Изучайте первоисточник, хотя бы вики: "Теория языков программирования (англ. programming language theory, PLT) — раздел информатики, посвящённый вопросам проектирования, анализа, определения характеристик и классификации языков программирования и изучением их индивидуальных особенностей. Тесно связана с другими ветвями информатики, результаты теории используются в математике, ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 14:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Самое интересное, что многие олимпиадники по моему опыту могут забуксовать на квалификационных задачах, где надо просто тупо написать цикл. Привычка искать подвох играет злую шутку.А зачем олимпиадникам тупо писать цикл. Олимпиадники должны придумать оптимальную схему или логику решения, а тех, кто пишет правильные циклы, в наше время хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА зачем олимпиадникам тупо писать цикл. Олимпиадники должны придумать оптимальную схему или логику решения, а тех, кто пишет правильные циклы, в наше время хватает.это утрировано естественно, т.е. типовая разжёванная задача если у тебя большой "багаж", то решить ты можешь больший круг задач, но подбор вариантов тоже время, и на узком круге задач ты проиграешь тому кто знает как решать именно только этот тип задач, у него просто не будет сомнений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:25 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy UsovА зачем олимпиадникам тупо писать цикл. Олимпиадники должны придумать оптимальную схему или логику решения, а тех, кто пишет правильные циклы, в наше время хватает.это утрировано естественно, т.е. типовая разжёванная задача если у тебя большой "багаж", то решить ты можешь больший круг задач, но подбор вариантов тоже время, и на узком круге задач ты проиграешь тому кто знает как решать именно только этот тип задач, у него просто не будет сомненийЕсли ещё раз посмотреть в вики (там много всего, главное разобраться), то в начале следует "Математическое описание решения задачи. " http://www.turbopro.ru/index.php/osnovy-programmirovaniya/6836-algoritmy-razrabotka-algoritma-resheniya-zadachi Вот олимпиадник и должен сделать это описание. А без хорошего описания не будет хорошей программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 15:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Да вы о чем? Какое описание? Его некогда делать. Олимпиада - это решение за 2-3 часа. Кому вы что будете описывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 16:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДа вы о чем? Какое описание? Его некогда делать. Олимпиада - это решение за 2-3 часа. Кому вы что будете описывать?Я чувствую, что Вы забежали на время с другого топика и оказались не в теме. Здесь шел разговор об участии олимпиадников в "решении задач народного хозяйства". Если говорить конкретно об олимпиаде, то и там нужно сначала получить хорошее математическое описание, затем математическое решение или, если есть компьютеры, компьютерное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 16:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonДа вы о чем? Какое описание? Его некогда делать. Олимпиада - это решение за 2-3 часа. Кому вы что будете описывать?Я чувствую, что Вы забежали на время с другого топика и оказались не в теме. Здесь шел разговор об участии олимпиадников в "решении задач народного хозяйства". Если говорить конкретно об олимпиаде, то и там нужно сначала получить хорошее математическое описание, затем математическое решение или, если есть компьютеры, компьютерное решение. Ты наверное вынырнул из НИИ СССР. Где Техническое задание было документом. Так вот. Я немало лет в It. Нету такого документа. Не видел. И еще ни разу не видел полного (100% покрывающего предметную область описания). Не пишут такого. И эффективность разработки сегодня например определяется не только скиллами разраба. Если-б было так (тут я горько вздыхаю). Оно еще определяется способностью лидеров и бизнес-аналитиков коммуницировать с владельцем программного продукта. Взаимодействовать долго. И выяснять что имелось в виду. И если задача чуть сложнее чем сайт-визитка - то на нее практически невозможно написать описание с одного раза. Я гарантирую это. Ты спросишь - почему я говорю о разработке? А очень просто. Мы - в форуме разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 17:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, авторОтказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования. спасибо, очень смешно говорят люди "про себя"(не вслух) научились читать совсем недавно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 17:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я лично для себя практически никогда не рисовал блок-схемы как таковые. Мне это было не нужно. Описание на псевдо-языке было. На АЯ. Были скрипто-подобные прототипы. Были просто формулы и загадочные рисунки со стрелками которые не были блок схемы. А так. Типа скетч. Как маркером на магнитной доске. Пару раз я рисовал блок-схемы их в презнетациях чтоб показать что-то для заинтересованных лиц которые не были кодерами но в принципе понимали эти картинки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, авторОтказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования. спасибо, очень смешно говорят люди "про себя"(не вслух) научились читать совсем недавно ...Сначала не понял, кто этот автор. Поискал и понял, что это сказал не я. Уже хорошо. Автор имеет свою точку зрения на то, что надо мыслить блоками и рисовать блок-схемы. Разумность в этом есть, однако все свои блок-схемы мы прорабатываем в голове. Зачем переводить бумагу, если и так ясно, что это следует за этим, а потом это идёт туда и возвращается, т.д. Кому как нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovЯ чувствую, что Вы забежали на время с другого топика и оказались не в теме. Здесь шел разговор об участии олимпиадников в "решении задач народного хозяйства". Если говорить конкретно об олимпиаде, то и там нужно сначала получить хорошее математическое описание, затем математическое решение или, если есть компьютеры, компьютерное решение. Ты наверное вынырнул из НИИ СССР. Где Техническое задание было документом. Так вот. Я немало лет в It. Нету такого документа. Не видел. И еще ни разу не видел полного (100% покрывающего предметную область описания). Не пишут такого. И эффективность разработки сегодня например определяется не только скиллами разраба. Если-б было так (тут я горько вздыхаю). Оно еще определяется способностью лидеров и бизнес-аналитиков коммуницировать с владельцем программного продукта. Взаимодействовать долго. И выяснять что имелось в виду. И если задача чуть сложнее чем сайт-визитка - то на нее практически невозможно написать описание с одного раза. Я гарантирую это. Ты спросишь - почему я говорю о разработке? А очень просто. Мы - в форуме разработчиков.Да, я был и в НИИ и в КБ, и там, при разработке программного продукта для изделия было Техническое задание, Технический проект. Так надо было. Сейчас, наверное, в таких организациях есть что-то подобное, может быть по другому называется, но такие документы есть. Без этого нельзя. Иначе анархия. А за этим стоит создание изделия. А насчет "способности лидеров и бизнес-аналитиков коммуницировать с владельцем программного продукта."? Есть интересный пример - создание шифра. В этом процессе есть математика и есть программирование. Какое из этих направлений определяет процесс создании? Только не говорите, что эти направления работают локоть в локоть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:34 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovСейчас, наверное, в таких организациях есть что-то подобное, может быть по другому называется, но такие документы есть. Без этого нельзя. Иначе анархия. А за этим стоит создание изделия. Да. Обычно это набор документов. Типа Software Requirements (SR). Там на обычном языке описано что хочется людям сделать. И этот документ обычно очень поверхностный. По факту исходный код приложения несет 100% верную информацию. Вернее он обычно актуален а SR - датируется датой создания и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЯ лично для себя практически никогда не рисовал блок-схемы как таковые. Мне это было не нужно. Описание на псевдо-языке было. На АЯ. Были скрипто-подобные прототипы. Были просто формулы и загадочные рисунки со стрелками которые не были блок схемы. А так. Типа скетч. Как маркером на магнитной доске. Пару раз я рисовал блок-схемы их в презнетациях чтоб показать что-то для заинтересованных лиц которые не были кодерами но в принципе понимали эти картинки.Вы забыли важную вещь - Вы рисуете блок-схемы всегда, когда расписываете в программе построение внутренних процедур и операторов. Рисуете не в классическом понимании - ватман, метр на метр (забыл, какой там формат), или бумага А4, а "рисуете" сразу на компьютере (зачем тратить бумагу, а потом заводить в компьютер - трата времени, надо быстро, быстро) в виде последовательностей процедур и операторов с циклами и возвратом, и куда перейти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovСейчас, наверное, в таких организациях есть что-то подобное, может быть по другому называется, но такие документы есть. Без этого нельзя. Иначе анархия. А за этим стоит создание изделия. Да. Обычно это набор документов. Типа Software Requirements (SR). Там на обычном языке описано что хочется людям сделать. И этот документ обычно очень поверхностный. По факту исходный код приложения несет 100% верную информацию. Вернее он обычно актуален а SR - датируется датой создания и все.Не что хочется, а что требуется. Вряд ли документ ТПО поверхностный, там должны быть некоторые предварительные требования. Да, в процессе работы ТПО дорабатывается, и его окончательный вариант совпадает с датой создания продукта. Как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovДа, в процессе работы ТПО дорабатывается, и его окончательный вариант совпадает с датой создания продукта. Как мне кажется. Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonGennadiy UsovДа, в процессе работы ТПО дорабатывается, и его окончательный вариант совпадает с датой создания продукта. Как мне кажется. Нет."Нет" к какому глаголу? Есть 3 варианта и 3 сочетания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 18:59 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovmaytonпропущено... Нет."Нет" к какому глаголу? Есть 3 варианта и 3 сочетания. Релиз (версия) программного продукта содержит сам продукт. И короткий текстовый файлик типа Release Notes в котором описаны основные изменения или фичи которые зашли в этот релиз. Архитектурные документы или требования или всякие прочие - никто обычно не меняет. Это никому не нужно. Разработчикам хватает исходного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonРелиз (версия) программного продукта содержит сам продукт. И короткий текстовый файлик типа Release Notes в котором описаны основные изменения или фичи которые зашли в этот релиз. Архитектурные документы или требования или всякие прочие - никто обычно не меняет. Это никому не нужно. Разработчикам хватает исходного кода....исходного кода и, если есть, исходного математического аппарата. Но исходный код кто-то создал для разработчиков продукта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, логично предположить что они сами и создали, потому им различные костыли и не нужны в современных программах очень мало сложной логики, и она обычно уже вынесена в библиотеки, которые подавляющее большинство просто использует как может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Господа, не хочется выходить из темы? о чём спор? вот этому лет полста уже,и до сих пор актуально,для боле-мене сложных тем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 19:48 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovТеория языков программирования (англ. programming language theory, PLT) — раздел информатики... В вики довольно произвольно используют понятия. Да и не только в вики. Но смысл в чём - математики создали программирование. Без математиков не получается развивать всяческие передовые направления. Обычный программист никогда не напишет сложный алгоритм, он этого просто не умеет. Либо он должен стать математиком, ну хотя бы немного. Но таких в программировании мало, потому что большинство задач очень простые - взять данные из БД, чуть подправить и нарисовать их в виде веб-страницы - вот собственно и всё. Бывают вариации, но суть не меняется - всё довольно просто. И если программистам надо систему уравнений решить, то они ищут библиотеку, а не пишут сами, ибо готовое быстрее запустить в работу. В результате часто получается нагромождение всего и вся, но пока это нагромождение не падает при первом дуновении ветра - оно всех устраивает. Так что какая уж тут математика. Один большой напильник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2019, 23:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Gennadiy UsovТеория языков программирования (англ. programming language theory, PLT) — раздел информатики...В вики довольно произвольно используют понятия. Да и не только в вики. Но смысл в чём - математики создали программирование. Без математиков не получается развивать всяческие передовые направления. Обычный программист никогда не напишет сложный алгоритм, он этого просто не умеет. Либо он должен стать математиком, ну хотя бы немного. Но таких в программировании мало, потому что большинство задач очень простые - взять данные из БД, чуть подправить и нарисовать их в виде веб-страницы - вот собственно и всё. Бывают вариации, но суть не меняется - всё довольно просто. И если программистам надо систему уравнений решить, то они ищут библиотеку, а не пишут сами, ибо готовое быстрее запустить в работу. В результате часто получается нагромождение всего и вся, но пока это нагромождение не падает при первом дуновении ветра - оно всех устраивает. Так что какая уж тут математика. Один большой напильник.Согласен, что математики создали не только программирование, а много ещё чего. Согласен, что программисты варятся в существующих методах программировании, реже создают свои программы. А что далеко ходить: сравните на данном форуме количество внутренних задач программирования и внешних задач - реализация методов программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 07:52 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovА что далеко ходить: сравните на данном форуме количество внутренних задач программирования и внешних задач - реализация методов программирования.механиков нужно меньше чем водителей PS: на данный момент... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 09:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Зайдите в форум андроида. Плакать хочется. Нет алгоритмических задач. Один ui. Тоска и уныние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 09:50 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЗайдите в форум андроида. Плакать хочется. Нет алгоритмических задач. Один ui. Тоска и уныние. Само ведро это всё стимулирует. Оно ужасно. Вместо некой общей модели ресурсов под управлением оси предоставляется набор убогих недо-моделек, которые не увязаны между собой, плохо документированы, постоянно глючат, решают очень узкие задачи. В результате народ соревнуется в запоминании хаков и трюков, которые ведро-писатели в каждой новой версии упорно выпиливают,заставляя народ снова и снова искать очередной убогий хак. Хотя иногда до недоумков из гугла всё же доходит людской стон и они расширяют свой API, но естественно - кусочно, убого, так же глючно, архитектурно безграмотно и т.д. и т.п. В итоге народ вынужден поддерживать десятки вариантов работы программы ради обеспечения её работоспособности на нескольких основных версиях ведра. А версии эти гугло-недоумки клепают раз в несколько месяцев, и вот каждую версию нужно всё проверять, что отвалилось, потом как это починить, потом как обновить безболезненно, что бы ещё и на старых устройствах работало. В общем - к огромному сожалению массовый продукт сделан откровенными идиотами, которые являют собой самый яркий пример "напильников" в программировании. Очень плохой пример. А как представишь, вот если бы ну пусть не математики, но хотя бы просто вменяемые архитекторы это всё проектировали... Хотя с другой стороны ведро всё же предоставляет ряд интересных возможностей, надо отдать должное детишкам из гугла, они ради детского вау-фактора всё же запилили более расширенный API работы с датчиками и коммуникацией, по сравнению с другими. Но на этом все радости кончаются. Остальное - рвано-кусочный трэш, придуманный обкуренными травой "изобретателями" из силиконовой долины. И что интересно - этим "изобретателям" гуглы платят огромные деньги за их обкуренность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 14:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я не спец в мобильной разработке. Готов поверить на слово. А как обстоят дела в iPhone? У них раньше был Objective C в вакансиях. Щас вроде что-то другое нашли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 15:06 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЗайдите в форум андроида. Плакать хочется. Нет алгоритмических задач. Один ui. Тоска и уныние. Следовательно, надо задачи создавать самим Было ранее: "Нечего ждать милости...." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 16:22 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дело в том что телефон сам по себе - устройство энерго-экономное. И какие либо суровые алгоритмы типа расстановки ферзей на нем работать не будут. Тоесть они конечно будут работать. Но Cortex, это не Intel. И производительность на порядок ниже для обычных вычислительных задач которые мы там гоняем. Запустите задачу - телефон нагреется как утюг. И посадит батарейку за 1 час. Вам это надо? Да там есть специальная аппаратура для ускорения 3д графики. Но вы еще попробуйте ее задействовать для ферзей. Это задача не тривиальная. А хотя-бы и задействовали - тогда второй вопрос. Почему не в ПК. Там это-же железо мощнее в 100 раз будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 16:48 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonДело в том что телефон сам по себе - устройство энерго-экономное. И какие либо суровые алгоритмы типа расстановки ферзей на нем работать не будут. Тоесть они конечно будут работать. Но Cortex, это не Intel. И производительность на порядок ниже для обычных вычислительных задач которые мы там гоняем. Запустите задачу - телефон нагреется как утюг. И посадит батарейку за 1 час. Вам это надо? Да там есть специальная аппаратура для ускорения 3д графики. Но вы еще попробуйте ее задействовать для ферзей. Это задача не тривиальная. А хотя-бы и задействовали - тогда второй вопрос. Почему не в ПК. Там это-же железо мощнее в 100 раз будет.Вас опять зацикливает на ферзях. А там всё уже ясно 21705105 . А что, кроме ферзей ничего нет перед глазами? И почему телефон? Я и, думаю, многие работают на компьютере, в моём случае на настольном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 18:03 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, я кладу руку на лицо... Android - это операционная система для телефонов. Может быть я иногда сильно краток? И некоторые мои слова .. не из вашего поколения. Так вы спрашивайте. Я отвечу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 18:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, наше поколение всё понимает. И не надо закрывать лицо руками. Снова что-то не увидите. Так что Вам там мешает? Спрашивайте, подскажем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 18:49 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Зачем? Вы-же на бумаге работаете. И в Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 18:53 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonЗачем? Вы-же на бумаге работаете. И в Excel.Это сейчас. А есть ещё многолетний опыт. Как известно, отличный анекдот - это хорошо забытый старый анекдот. Всё, что сейчас происходит, уже было, только с другими параметрами и на других установках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 19:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИ не надо закрывать лицо руками https://ru.wikipedia.org/wiki/Facepalm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 20:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovmaytonЗачем? Вы-же на бумаге работаете. И в Excel.Это сейчас. А есть ещё многолетний опыт. Как известно, отличный анекдот - это хорошо забытый старый анекдот. Всё, что сейчас происходит, уже было, только с другими параметрами и на других установках. Ну хорошо. Что твой многолетний опыт говорит о системах распознавания образов. В частности меня интересует преобразование Хафа. И его применение для определения дефектов сканирования текстовых документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2019, 21:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Вот я об этом 21791512 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 01:07 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonНу хорошо. Что твой многолетний опыт говорит о системах распознавания образов. В частности меня интересует преобразование Хафа. И его применение для определения дефектов сканирования текстовых документов.Мой многолетний опыт подсказывает, что определение дефектов сканирования - очень серьёзная проблема. И тот же опыт советует мне задать один вопрос: а почему Вы решили, что скан текста имеет дефекты? А поскольку Вы скажете (я предугадываю), что у всякого скана есть дефекты, то сразу второй вопрос: а чем отличается скан дефектный от недефектного (на примере хотя бы одного символа)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 09:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В топика мы обсуждали поворот листа бумаги на случайный угол. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 10:18 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonВ топика мы обсуждали поворот листа бумаги на случайный угол.Всё равно, почему система не может считать символ, что ей мешает ( на примере одного символа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 10:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonВ топика мы обсуждали поворот листа бумаги на случайный угол.Хороша, повернули на 12 градусов - дефект. На 0 градусов - нормально. Где грань, и почему эта грань существует, за счет чего появляется? Что в программе (алгоритме) такое, что с какого-то градуса появляется дефект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 11:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Давайте так. Здесь мы обсуждаемых комбинаторику. А дефекты скан копий в другом топике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 11:24 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Было одно:maytonНу хорошо. Что твой многолетний опыт говорит о системах распознавания образов. В частности меня интересует преобразование Хафа. И его применение для определения дефектов сканирования текстовых документов.Далее совсем другое:maytonДавайте так. Здесь мы обсуждаемых комбинаторику. А дефекты скан копий в другом топике.Мы говорим о системах распознавания образов, а не о путях применения преобразования Хафа. Если есть трудности у существующих систем, то либо преобразование Хафа, либо что-то другое - это зависит от точки зрения на проблему. А говорить о том, что про это не надо говорить - это что-то непонятное в математическом анализе. Мой многолетний опыт говорит о том, что надо сначала понять: из-за чего существующие системы не работают при определённых условиях! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 11:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Спасибо, капитан. Твоя помощь неоценима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 12:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
mayton, всегда рад помочь. Обращайтесь ещё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 13:57 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonА как обстоят дела в iPhone? Я сам не писал, но по отзывам впечатление двоякое. То есть с одной стороны детишки везде найдут повод для недовольства, а с другой стороны даже они реально впечатляются некоторыми "вкусностями", которые я перевожу на язык грамотного проектирования. Так например они рады ифонному эмулятору, который летает, не глючит, и вообще удобен, а вот гугловый эмулятор - в принципе можно научить летать, если не писать натив, или научиться постоянно перекомпилировать под интеловские процессора перед запуском на эмуляторе, а вот в плане глючности и удобства - гугловый эмулятор полный отстой. Так же по работе с анимацией в ифоне всё серьёзнее. На ведре всё тупо - обычная многопоточная система с одинаковыми приоритетами всех потоков, в том числе для обработки всего связанного с экраном, поэтому если не уделять внимания работе GC - анимация будет дёргаться, при чём независимо от потока, который рисует, потому что GC общий. А в ифоне такого нет, там сразу графике отвели высокий приоритет и поэтому сторонние потоки не влияют на плавность. Вот в таком духе по отдельным вопросам наблюдаю работу более или менее вменяемых архитекторов именно в ифоне, а в ведре - одни придурки проектировали. Ну а как их ещё назвать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 16:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovГде грань, и почему эта грань существует, за счет чего появляется? Грань в деталях алгоритма распознавания символов. Например - алгоритм ожидает вертикальное расположение символов, значит в пределах некой погрешности, допустимой именно для вертикального расположения, символы будут распознаваться, но когда либо за счёт поворота, либо за счёт чего угодно ещё (объектив не резкий, дрожь при съёмке, царапина на бумаге) погрешность превышается - распознавание не получается. Для устранения влияния погрешностей нужно научиться их правильно фильтровать. Так для поворотов по сути есть лишь один метод - вращать изображение, пока оно не распознается. И вот так по всем видам погрешностей. То есть по сути очень просто - берёт и пишите все возможные алгоритмы обработки всех возможных погрешностей. Ведь просто? Сплошная комбинаторика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 16:34 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Да, и по задачке. Я попробовал покрутить уравнения "на бумаге" (в блокноте то есть, без ёкселя и программ) и у меня получился перебор вариантов на 20-30, но как-то мне быстро надоело после проверки первых 10 вариантов - они все не подошли. Не знаю, может упорный школьник на олимпиаде перебрал бы и 30 вариантов, но на это ведь надо время, да ещё и на бумаге. Не уложится даже знающий как всё решать в отводимое под олимпиаду время (часа 3). Сначала нужно уравнения вывести, потом посокращать, потом вывести ограничения, потом получить 20-30 вариантов, потом их перебрать, а всё это - время. Плюс ошибки и возврат в начало. В общем мне всё не даёт покоя мысль - диаметры с кругами перепутаны. Если их поменять, то наверняка хотя бы перебор сократится, что даст нашему школьнику решить задачку в отведённый срок (3 часа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 16:39 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Да, и по задачке. Я попробовал покрутить уравнения "на бумаге" (в блокноте то есть, без ёкселя и программ) и у меня получился перебор вариантов на 20-30, но как-то мне быстро надоело после проверки первых 10 вариантов - они все не подошли. Не знаю, может упорный школьник на олимпиаде перебрал бы и 30 вариантов, но на это ведь надо время, да ещё и на бумаге. Не уложится даже знающий как всё решать в отводимое под олимпиаду время (часа 3). Сначала нужно уравнения вывести, потом посокращать, потом вывести ограничения, потом получить 20-30 вариантов, потом их перебрать, а всё это - время. Плюс ошибки и возврат в начало. В общем мне всё не даёт покоя мысль - диаметры с кругами перепутаны. Если их поменять, то наверняка хотя бы перебор сократится, что даст нашему школьнику решить задачку в отведённый срок (3 часа).Очень тяжело перепрыгнуть: 13 уравнений и 15 неизвестных. Здесь - хоть разбейся, перебор для 2-х свободных переменных. А дальше всё равно перебор 21798672 . Всё что пока можно, то: 21798189 и 21798389 . Может быть можно будет найти и другие, упрощенные уравнения для зависимости одних переменных от других переменных. А насчет олимпиады? Сейчас полно в интернете математических задач, которые используются в разных проектах. В частности, наша задачка: 21798405 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 18:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovВсё что пока можно, то: 21798189 и 21798389 Это не совсем "всё что можно". Иксы 15 и 16 группируются в (х15+х16)/2=s и (х15-х16)/2=d. Из остальных уравнений, ограничения на набор чисел и условия целочисленности выводятся ограничения, которые позволяют сократить перебор до упомянутых 20-30 вариантов. Если повтыкать ещё в уравнения и ограничения, то можно ещё сократить перебор (не боле 10 вариантов, надеюсь). Но проблема в том, что я не представляю, как это всё сделать за 3 часа. Я с позиции сегодняшнего понимания проблемы, зная как и что перебирать, в каком порядке возиться с уравнениями и т.д. всё же не впечатляюсь мыслью о выполнении всей этой работы для "не перепутанного" варианта 6 диаметров 3 круга, то есть даже зная как всё найти и каков будет результат, я могу не уложиться в 3 часа, ну и сами 3 часа (или больше) тратить неохота на задачу, которая давно решена в общем случае. Вот такое у меня пока понимание. А значит и школьники столкнутся с трудностями. Хотя не исключаю варианта с обычным бюрократом, которому поручили нарыть задачки для олимпиады, ну и про проблемы индейцев (школьников) этот шериф, безусловно, ни разу даже не задумывался. Но если всё же эту задачку кто-то решал на олимпиаде и укладывался в отведённое время - то как? Непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 19:33 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Gennadiy UsovВсё что пока можно, то: 21798189 и 21798389 Это не совсем "всё что можно". Иксы 15 и 16 группируются в (х15+х16)/2=s и (х15-х16)/2=d. Из остальных уравнений, ограничения на набор чисел и условия целочисленности выводятся ограничения, которые позволяют сократить перебор до упомянутых 20-30 вариантов. Если повтыкать ещё в уравнения и ограничения, то можно ещё сократить перебор (не боле 10 вариантов, надеюсь). Но проблема в том, что я не представляю, как это всё сделать за 3 часа. Я с позиции сегодняшнего понимания проблемы, зная как и что перебирать, в каком порядке возиться с уравнениями и т.д. всё же не впечатляюсь мыслью о выполнении всей этой работы для "не перепутанного" варианта 6 диаметров 3 круга, то есть даже зная как всё найти и каков будет результат, я могу не уложиться в 3 часа, ну и сами 3 часа (или больше) тратить неохота на задачу, которая давно решена в общем случае. Вот такое у меня пока понимание. А значит и школьники столкнутся с трудностями. Хотя не исключаю варианта с обычным бюрократом, которому поручили нарыть задачки для олимпиады, ну и про проблемы индейцев (школьников) этот шериф, безусловно, ни разу даже не задумывался. Но если всё же эту задачку кто-то решал на олимпиаде и укладывался в отведённое время - то как? Непонятно.Посмотрите на начальную картинку: - bingo квест - стенд с ячейками - остаток от слова информация? Какая это олимпиада? Просто где-то повесили на стенд задачку в виде информации. И всё! Там полно других листков на стенде. И Вы всерьёз верите, что из 13 уравнений можно определить 15 неизвестных? А насчет времени? Попробуйте определить время, которое необходимо для определения 13 неизвестных? 21798189 А дальше? Может быть засчет перебора х15 и х16 определяются остальные, причем тут же часть вариантов можно отвергнуть - уже были такие числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2019, 20:08 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovИ Вы всерьёз верите, что из 13 уравнений можно определить 15 неизвестных? Конечно. Просто ограничений больше. Gennadiy UsovПопробуйте определить время, которое необходимо для определения 13 неизвестных? Пробовал, потому и говорю. Но всё же задача кривая. Взял я уравнения kealon(Ruslan)-а отсюда - 21797368 , и проверил их на Диминых решениях отсюда - 21794557 . Решения не сходятся. Поэтому я получал в своих потугах отрицательный результат. Дима считал что-то не то, либо уравнения составлены не для тех параметров, что здесь нужны. Если напрячь фантазию, то круги эти увидеть можно, но они абсолютно контр-интуитивны. Круги сходятся с уравнениями kealon(Ruslan)-а, а вот Димины решения - нет. Не знаю, кто здесь не прав, вполне возможно это составители задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2019, 02:04 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Хотя нет, наврал, это я не так посчитал. Так что сходится результат Димы с уравнениями. Но у меня почему-то не вышло из уравнений его вывести, из-за этого подумал, что косяк, но вставил напрямую в суммы и всё сошлось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2019, 02:17 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Задачка похожа на шахматный эндшпиль. Нету чистой формулы решения. Есть просто некие коридоры возможностей типа рекуррентного применения расстановки чисел и несколько листовых вершин этого дерева которые удовлетворяют решению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2019, 03:12 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Задача, видимо, про теорию групп. Есть группа с операцией перестановки, которая должна удовлетворять критерию постоянства некой суммы. Решения задачи есть множество сочетаний элементов группы. Возможно, где-то в глубинах этой теории есть подходы к решению таких задач, я так далеко не нырял. Но даже без теории групп задачка имеет ещё потенциал, и очень даже приличный. Так например Kelaon зачем-то сложил два уравнения, мол что-то там избыточное или что, но я тупо повёлся и не стал проверять, а в результате это сложение даёт 16 ложных решений. И почему они ложные, а так же ещё целый ряд интересных моментов видно из простейшей схемы: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Здесь первая колонка - номер суммы, последняя - количество слагаемых в сумме, нижняя строка - количество элементов в столбце. Константы, безусловно, являются такими же равноправными переменными, но составители задачи эти переменные проинициализировали, а я их заменил номерами в последних трёх столбцах (12 - №18, 6 - №19, 18 - №20). Из схемы очевидно, что иксы 2,5; 3,7; 4,8 взаимозаменяемы. А после сложения, предложенного Kelaon-ом имеем добавленную взаимозаменяемость иксов 8 и 10, что и даёт 16*2=32 решения, из которых 16 ложные. В пределах указанных пар иксов возможны не только перестановки друг с другом, но и "перетекание" части одного значения в другое, поэтому имеем 16 комбинаций, остальные, видимо, ограничиваются фиксацией 14 оставшихся переменных. Здесь ещё есть куда копать в плане понимания, как и что ограничивается, а значит и нахождения способа быстрого решения задачи. Пока видно, что кроме указанных пар остальные переменные, видимо, обязаны иметь единственное значение, но как это доказать - пока не понял. Если доказать - станет очевидно, как быстро решать такие задачи. Ниже аналогично расположенные значения переменных, найденные Димой. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2019, 16:53 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Не надо приплетать сюда никакой магии, никих волшебных фраз типа теории групп. Нет здесь никаких групп, разве что вычеты по модулю 3, но именно ими никто не воспользовался, во всяк мимо меня прошло. По памяти: в среднем круге, у меня это были E и F. Там (E+F)=0 по модулю 3. Лень даже смотреть, (E-F), (F-E) одно из них =2 другое =1, поскольку Е=1, F=2. Так же лень мне было смотреть взаимозаменяемые пары на внутреннем круге, иначе бы мои 120 переборов сократились бы в неск. раз. А метод по сути 1 - решить систему реоднородных линейных ур-й и получить выражение независимых переменных от зависимых. Я выше напоминал про линейное пространство решений однородной системы , кто забыл. Просто на этом пути можно, скажем, в случае a=b, можно одно в левой части оставить, а можно другое. Разница будет толко в подборе значений. В зависимости от хотелки можно вначале провести большой анализ, а можно маленький. Можно, упростив систему, провести дополнительный анализ. Повлияет на объём перебора. Однако при свежих навыках, 3 часа для этого в самый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2019, 20:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
exp98Не надо приплетать сюда никакой магии, никих волшебных фраз типа теории групп. А метод по сути 1 - решить систему реоднородных линейных ур-й и получить выражение независимых переменных от зависимых. Я выше напоминал про линейное пространство решений однородной системы , кто забыл. Просто на этом пути можно, скажем, в случае a=b, можно одно в левой части оставить, а можно другое. Разница будет толко в подборе значений. В зависимости от хотелки можно вначале провести большой анализ, а можно маленький. Можно, упростив систему, провести дополнительный анализ. Повлияет на объём перебора. Однако при свежих навыках, 3 часа для этого в самый раз.Так уже всё сделано, и не надо хотелок ни с большим анализом, ни с малым анализом. 21798189 . Напоминаю, если есть хотелки: 13 уравнений и 15 неизвестных. 2 свободных параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 06:09 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Если идти дальше, то есть ещё неравенства, и работа в конечном множестве. Например, х16 не может иметь значения 6,10,12,18,20. А, из уравнения х16=20-х14, получается, что для х16 не могут быть значения 2, 8, 14 (из четных, остаются только 4 и 16). Такие же значения не может иметь х14. Далее х12+х13 >=9 а1>=9 х13<=14 – только 1,2,3,5,7,8,9,11,13,14 (нет 4, иначе х12=х16) х15>=3 Если выбирать х16 и х13, то получается 10 х 12 = 120 вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 07:23 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Задача, видимо, про теорию групп. Есть группа с операцией перестановки, которая должна удовлетворять критерию постоянства некой суммы. Решения задачи есть множество сочетаний элементов группы. Возможно, где-то в глубинах этой теории есть подходы к решению таких задач, я так далеко не нырял. Но даже без теории групп задачка имеет ещё потенциал, и очень даже приличный. Так например Kelaon зачем-то сложил два уравнения, мол что-то там избыточное или что, но я тупо повёлся и не стал проверять, а в результате это сложение даёт 16 ложных решений. И почему они ложные, а так же ещё целый ряд интересных моментов видно из простейшей схемы: я эти два уравнения вообще удалил (количество по детерминанту определил), не нужны они, там всего 11 независимых уравнений удалил их потому, что тогда можно было X8 + X10 одной переменной заменить вы же сами скидывали автоматическое решение - 21797996 кстати, у вас там прямо и написано что всего 11 независимых уравнений авторdependent equations eliminated: (11) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 07:55 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)я эти два уравнения вообще удалил (количество по детерминанту определил), не нужны они, там всего 11 независимых уравнений удалил их потому, что тогда можно было X8 + X10 одной переменной заменить вы же сами скидывали автоматическое решение - 21797996 кстати, у вас там прямо и написано что всего 11 независимых уравнений авторdependent equations eliminated: (11)Значит, будет не 15, а 14 неизвестных. Куда делись ещё 3 неизвестных? Желательно перечисление: какие известные, а какие неизвестные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 08:26 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, рисунок из 21797369 смотрите где Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 08:31 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Иксы 15 и 16 группируются в (х15+х16)/2=s и (х15-х16)/2=d. Из остальных уравнений, ограничения на набор чисел и условия целочисленности выводятся ограничения, которые позволяют сократить перебор до упомянутых 20-30 вариантов. Можно перечислить эти варианты? Примерно, как в 21800986 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 08:36 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, рисунок из 21797369 смотрите где Код: plaintext 1. 2. 3. 4. Сложил уравнения со звездочками из 21797369 и получилось: а[1]+a[2]+а[4] = sum-x[13] и что? Что нам это даёт? Уменьшили на одно уравнение, но появилось новое неизвестное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 08:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, внимательно читайте, табличку в эксельке посмотрите (участвует там то уравнение или нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 09:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, внимательно читайте, табличку в эксельке посмотрите (участвует там то уравнение или нет)Тогда просто укажите те уравнения, которые остались, если не трудно. Без таблицы они будут смотреться интереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 09:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovЕсли идти дальше, то есть ещё неравенства, и работа в конечном множестве. Например, х16 не может иметь значения 6,10,12,18,20. А, из уравнения х16=20-х14, получается, что для х16 не могут быть значения 2, 8, 14 (из четных, остаются только 4 и 16). Такие же значения не может иметь х14. Далее х12+х13 >=9 а1>=9 х13<=14 – только 1,2,3,5,7,8,9,11,13,14 (нет 4, иначе х12=х16) х15>=3 Если выбирать х16 и х13, то получается 10 х 12 = 120 вариантов.Далее: из уравнения х12=х16+х13-4 видно, что х16 и х13 либо оба четные, либо нечетные. Следовательно: для четных х16 будет 16 (4 нельзя) и для х13 – 2 (8 и 14 нельзя). То есть один вариант. Для нечетных: 10 х 7 = 70 вариантов. х16+х13<=23. Тогда уже 54 варианта. Убираем: одинаковые варианты. х12 не может быть 6,10,12,18, 20 и более То есть, убираем 30 вариантов. Остаётся 24 +1 = 25 вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 09:29 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usovkealon(Ruslan)Gennadiy Usov, внимательно читайте, табличку в эксельке посмотрите (участвует там то уравнение или нет)Тогда просто укажите те уравнения, которые остались, если не трудно. Без таблицы они будут смотреться интереснее. 21797455 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 10:35 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)G Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. начинаем перечислять неизвестные: a[4] x[9] x[11] x[12] x[13] x[14] x[15] x[16] a[1] a[2] a[3] x[1] x[17] sum Получаем 11 уравнений и 15 неизвестных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 11:44 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov, слушай, раз 5 пересчитал, 14 неизвестных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 12:10 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Gennadiy Usov, слушай, раз 5 пересчитал, 14 неизвестныхЯ ошибся, 14 неизвестных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 12:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovGennadiy UsovЕсли идти дальше, то есть ещё неравенства, и работа в конечном множестве. Например, х16 не может иметь значения 6,10,12,18,20. А, из уравнения х16=20-х14, получается, что для х16 не могут быть значения 2, 8, 14 (из четных, остаются только 4 и 16). Такие же значения не может иметь х14. Далее х12+х13 >=9 а1>=9 х13<=14 – только 1,2,3,5,7,8,9,11,13,14 (нет 4, иначе х12=х16) х15>=3 Если выбирать х16 и х13, то получается 10 х 12 = 120 вариантов.Далее: из уравнения х12=х16+х13-4 видно, что х16 и х13 либо оба четные, либо нечетные. Следовательно: для четных х16 будет 16 (4 нельзя) и для х13 – 2 (8 и 14 нельзя). То есть один вариант. Для нечетных: 10 х 7 = 70 вариантов. х16+х13<=23. Тогда уже 54 варианта. Убираем: одинаковые варианты. х12 не может быть 6,10,12,18, 20 и более То есть, убираем 30 вариантов. Остаётся 24 +1 = 25 вариантов.Подставил оставшиеся х16 и х13 в уравнения для х14 и х15, получилось, что осталось 13 вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 12:45 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Далее, подставил в уравнение определения х9 - осталось 7 вариантов подставил в уравнение определения х8 - осталось 2 варианта подставил в уравнение х11 - остался один вариант. Нашел а1, а2, а3 - 19, 22, 19 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:05 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Забыл указать значения переменных, полученных ранее: х16=13, х13=5, х12=14, х15=9, х14=7, х8=8, х9=11, х10=16, х11=1 Далее имеем: Остались числа 2,3,4 и 15,17,19 и получены значания: а1 (х2,х5) = 19 а2 (х3,х6) = 22 а3 (х4,х7) = 19 22 - это только 19 и 3 19 – это 15 и 4, или 17 и 2 Получаем два варианта 15, 19, 17, 4, 3, 2 и 17, 19, 15, 2, 3, 4 У каждого варианта есть 8 подвариантов (сочетаний), когда меняются значения х2 и х5, х3 и х6, х4 и х7. В результате определены 16 вариантов решения задачки, опубликованной в начале топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:21 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Замечена интересная вещь: 2 числа, расположенные на линии, проходящей через центр, и которые находятся на одном расстоянии от центра, имеют примерно одну и ту же сумму. Что-то напоминает центр тяжести системы чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:27 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)я эти два уравнения вообще удалил (количество по детерминанту определил), не нужны они, там всего 11 независимых уравнений удалил их потому, что тогда можно было X8 + X10 одной переменной заменить Это неправильно, в результате ослабилось ограничение на решение и получились 16 лишних вариантов. kealon(Ruslan)вы же сами скидывали автоматическое решение Да, выкладывал, но это решение как раз на основе вашего предложения по сложению уравнений. То есть без сложения было бы другое решение. Я пробовал на этом решении выводить результат, но то ли я где-то ошибся, то ли ещё что, у меня не получилось найти решения таким способом. Потом я переключился на другие варианты, тогда и понял, что сложение уравнений создаёт лишнюю пару переменных, в которой возможны перестановки, что даёт лишние решения. kealon(Ruslan)кстати, у вас там прямо и написано что всего 11 независимых уравнений авторdependent equations eliminated: (11) Я не уверен в смысле этой фразы. Что там имели в виду разработчики системы я не знаю, но здесь (если читать буквально) говорится об устранении 11-ти уравнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:38 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy Usov В результате определены 16 вариантов решения задачки, опубликованной в начале топика. Ну вот, я же говорил, что можно всё свести к перебору перестановок в трёх парах, плюс одно "перетекание", в итоге - 8*2 вариантов, где 8 для перестановок (2^3) и ещё умножаем на 2 из-за "перетекания". В итоге школьнику нужно просто заметить перестановочные пары и за счёт ограничений вывести 11 фиксированных значений, а далее взять любой из 16 вариантов перестановок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Gennadiy Usov В результате определены 16 вариантов решения задачки, опубликованной в начале топика. Ну вот, я же говорил, что можно всё свести к перебору перестановок в трёх парах, плюс одно "перетекание", в итоге - 8*2 вариантов, где 8 для перестановок (2^3) и ещё умножаем на 2 из-за "перетекания". В итоге школьнику нужно просто заметить перестановочные пары и за счёт ограничений вывести 11 фиксированных значений, а далее взять любой из 16 вариантов перестановок.Но надо было сначала все ограничения расписать, а потом потратить примерно час, чтобы отбросить ненужные пары из х16 и х13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 13:51 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovНо надо было сначала все ограничения расписать, а потом потратить примерно час, чтобы отбросить ненужные пары из х16 и х13 Да, суммарно на это нужно приличное время. Если задача не олимпиадная, то тогда наверное нашлись бы "успевшие вовремя" (ибо время не ограничено), а вот в 3 часа - не знаю, разве что если аналогичный подход был отработан на другой задаче. А с нуля всё расписать, да учитывая разные направления, перебирая которые уходит время, сильно не уверен в возможности в 3 часа уложиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 16:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Gennadiy UsovНо надо было сначала все ограничения расписать, а потом потратить примерно час, чтобы отбросить ненужные пары из х16 и х13Да, суммарно на это нужно приличное время. Если задача не олимпиадная, то тогда наверное нашлись бы "успевшие вовремя" (ибо время не ограничено), а вот в 3 часа - не знаю, разве что если аналогичный подход был отработан на другой задаче. А с нуля всё расписать, да учитывая разные направления, перебирая которые уходит время, сильно не уверен в возможности в 3 часа уложиться.На самом деле, уложиться можно. В своё время я был на подготовительных курсах мехмата, где обсуждались типовые задачи (почти "натаскивание") и пути их решения. Это позволило мне решить все задачи на приёмных экзаменах за время, меньшее часа. Мы же старались обсуждать задачку со стороны, без строгого подхода к её решению. В нашем случае, получена задача, и необходима следующая последовательность типовых действий : - выявить все неизвестные и написать все уравнения. При этом окажется, то неизвестных много больше, чем уравнений. - найти пути упрощения уравнений (определить а1, а2, а3). При этом окажется, что неизвестных всё равно больше. - попытаться работать с уравнениями, находить более простые уравнения. Можно попробовать метод Гаусса.(смотря кто в чем преуспел) - определить свободные переменные, и за счет того, что множество чисел конечное, попытаться выработать неравенства. - далее, продолжительное, отсекание лишних сочетаний свободных неизвестных (у меня на EXCELе ушло минут 20). Определение а1, а2, а3. - а разложить а1, а2, а3 - это совсем просто. Конечно, сейчас это просто говорить, после нескольких дней работы, но "натасканный" школьник будет работать примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2019, 18:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Gennadiy UsovКонечно, сейчас это просто говорить, после нескольких дней работы, но "натасканный" школьник будет работать примерно так. То есть он должен решить аналогичную задачу до встречи с данной задачей. По сути олимпиада отбирает тех, кто решал аналогичные олимпиадным задания раньше. Но это означает отсев безумных заучек. В смысле школьнику нет необходимости думать, ему нужно лишь усердно запоминать кучу различных способов решений стандартных задач. Потом он даже где-то может применить свои знания, но вот столкнувшись с проблемой, для которой в его голове нет типового решения, он побежит к мамочке другим математикам и станет выяснять, а нет ли у них в голове чего-то подходящего. А если и у них нет? Кто математику-то двигать будет? Готовые решения никому не интересны, а они все натасканы именно на такое. Поколение ЕГЭ отличается именно таким подходом, но поколение олимпиадников на них в чём-то похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2019, 14:42 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555, ну приблизительно так, только объём гораздо больше, часов по 6 каждый день несколько месяцев мало кто осилит всё как в спорте, разве что не с 3-х лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2019, 15:01 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Gennadiy UsovКонечно, сейчас это просто говорить, после нескольких дней работы, но "натасканный" школьник будет работать примерно так. То есть он должен решить аналогичную задачу до встречи с данной задачей. По сути олимпиада отбирает тех, кто решал аналогичные олимпиадным задания раньше. Но это означает отсев безумных заучек. В смысле школьнику нет необходимости думать, ему нужно лишь усердно запоминать кучу различных способов решений стандартных задач. Потом он даже где-то может применить свои знания, но вот столкнувшись с проблемой, для которой в его голове нет типового решения, он побежит к мамочке другим математикам и станет выяснять, а нет ли у них в голове чего-то подходящего. А если и у них нет? Кто математику-то двигать будет? Готовые решения никому не интересны, а они все натасканы именно на такое. Поколение ЕГЭ отличается именно таким подходом, но поколение олимпиадников на них в чём-то похоже.Если Вы заметили по репортажам, в которых рассказывали о победителях международных олимпиад, то в разговоре наши победители говорили о том, как они готовились. В том числе, был тренинг, который проводили преподаватели. И вот в тренинг входит решение основных типовых задач, которые могут встретиться, естественно, по мнению преподавателей. Такая же практика наверное существует и на местных олимпиадах. А насчет проблем? Все сталкиваются, и Вы тоже. Всё объять невозможно. И Вы просите помощь у сподвижников, когда непонятно, и что-то новое. А имея некоторый математический аппарат и имея искусство логически мыслить можно прийти к решению неизвестной задачи. Даже при этом двигая науку вперед. А то, что мало, по Вашему мнению, у нас математиков, то это виновато программирование. Школьнику дали инструмент всё решать, не вдаваясь в формулы. Зачем ему упрощать систему уравнений? Пусть машина думает. А он пока покурит. В насчет ЕГЭ? Наши победители международных олимпиад сдавали ЕГЭ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2019, 17:11 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)alex55555, ну приблизительно так, только объём гораздо больше, часов по 6 каждый день несколько месяцев мало кто осилит всё как в спорте, разве что не с 3-х летКто-то занимается борьбой, кто-то шахматами, кто-то фигуркой, кто-то гимнастикой (разной), ..., а кто-то математикой. Либо сам выбирает, либо родители подсказывают. И с раннего возраста. Иначе можно опоздать, или придут другие мысли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2019, 17:15 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
В общем нашёл стандартную задачу для ЕГЭ. Вот здесь . У нас типичное решение с помощью динамического программирования. Ну а сочинять такие задачи как раз удобно используя ссылки из википедии. Интересно, 3 фиксированных авторами переменных принадлежат к множеству обязательно фиксированных или всё же могут иметь другие значения? Перестановки и перетекания для них исключены, но, возможно, отказ от фиксации этих переменных даст другие наборы для 11 фиксированных в нашем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2019, 18:14 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555В общем нашёл стандартную задачу для ЕГЭ. Вот здесь . У нас типичное решение с помощью динамического программирования. Ну а сочинять такие задачи как раз удобно используя ссылки из википедии.В статье "Задача о сумме подмножеств" рассматривается задача разделения некоторого множества чисел на несколько подмножеств, имеющих определенную сумму входящих в это подмножество чисел. В этом случае необходимо динамическое программирование. У нас в задачке имеется множество из 20 чисел от 1 до 20 и 5 не пересекающихся подмножеств этого множества: 3 окружности по 6 чисел, центр и некоторый центр (число, "вычеркнутое" из множества). Для каждого подмножества неизвестна сумма чисел, однако у 3-х окружностей сумма одинаковая. В данной постановке задачка подпадает под динамическое программирование. Но у задачки есть ещё дополнительные условия: дополнительно имеются 3 диагонали и 6 внутренних окружностей, то есть 9 подмножеств из того же множества, которые пересекаются с основными окружностями и между собой: 5 подмножества по 5 чисел и 6 подмножеств по 6 чисел. И у всех этих новых подмножеств сумма чисел совпадает с суммами чисел в основных окружностях. Поскольку появляются дополнительные условия, то задача динамического программирования упрощается до перебора 2-х чисел, а если в уравнениях использовать замкнутость множества, то задачка решается без динамического программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 16:13 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Основная задача - решена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 16:19 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
alex55555Интересно, 3 фиксированных авторами переменных принадлежат к множеству обязательно фиксированных или всё же могут иметь другие значения? Перестановки и перетекания для них исключены, но, возможно, отказ от фиксации этих переменных даст другие наборы для 11 фиксированных в нашем случае.Если бы авторы не поставили числа 6, 12, 18 в кружочки задачки, то расширенная задачка решалась бы с помощью динамического программирования, когда переменных - 5. Замкнутость множества тут бы не помогла для уменьшения переменных. А получение х2,х3,х4,х5,х6,х7 из а1, а2, а3 останется таким же. Поскольку в расширенной задачке увеличивается количество степеней свободы на 3, то, возможно, в данном варианте расширенной задачки может быть больше решений. чем в исходной задачке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 16:20 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
maytonОсновная задача - решена?Решена. Решена двумя способами: динамическим программированием полученных уравнений (назовем так с учетом новых сообщений) 21794557 и решением полученных уравнений с учетом уравнений неравенств и замкнутости множества чисел 21801191 , 21801209 и 21801227 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 16:54 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Дмитрий СмерксСпасибо всем, очень облегчели работу. Но вот для себя, чтобы потом просто так не обращаться, как эту задачу можно без компьютера решить - без подбора. Ведь такая возможность безусловно есть, на мой взглядКак оказалась, такая возможность (без применения компьютера) есть. А в чем заключалась Ваша работа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 16:58 |
|
||
|
Как решить задачу по комбинаторике?
|
|||
|---|---|---|---|
|
#18+
Я предлагаю тему закрыть. Дима задачу решил. Исключительно из соображений модерации и чистоты контента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2019, 17:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1339994]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
389ms |
get tp. blocked users: |
1ms |
| others: | 286ms |
| total: | 881ms |

| 0 / 0 |
