|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Возникла такая вот алгоритмическая проблема. Есть 19 коробок. В каждой коробке 19 пронумерованных шаров от 1 до 19. Скажем начинаем с первой коробки - выбираем там шар номер 2. Во второй коробке я могу выбрать любой шар кроме номер 2. Скажем выбрал шар номер 3. В третьей коробке я могу выбрать шар только из оставшихся 1,4,5,6,7,8,9,10...и так далее Проблема как отображать оставшиеся шары на дисплее циклически? Есть три кнопки ENTER,UP,DOWN. ENTER выбирает следующую коробку - движение только вверх, вернуться к предыдущей коробке я не могу. UP, DOWN выбирают следующий доступный шар. И текущая коробка и выбранный шар отображаются на дисплее. Я сделал симуляцию на Сшарп Код: c# 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.
Проблема в переходах 1-19, 19-1.Не получается разрулить логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 12:20 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Задача не сформулирована. Покажи, как должно работать, на примере с 4 коробками и шарами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 17:37 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
jenya7, фактически у тебя человек вручную генерирует перестановку, из этого и исходи при проектировании структуры данных. После того как человек выбирает i-тый шар, номер выбранного шара помещаешь на i-тое место, а остальные номера сдвигаешь. Т.о. у тебя всегда в начале массива будут выбранные номера, в конце - не выбранные. Ну и останется только закольцевать в UI невыбранные, ты должен справиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 18:13 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Тут что-то не то. После декремента не принято сравнивать переменную на "больше". Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 21:29 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, на паскале примерно так (не отлаживал) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2018, 22:42 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
А если взглянуть на эту задачу с точки зрения задачи расстановки ферзей. Коробка - это номер ферзя. Номер шара - значение ферзя. А далее, выбирая номер коробки и номер шара, определяем расклад (выборку). Тут и модулярные выборки, и прочие выборки. Всего: 4968057848 выборок. Кто-то захочет исследовать торовые выборки, а кого-то заинтересует выборка из 50000 коробок, а кто-то обозначит множество алгоритмов по выборкам. Так что, jenya7, становитесь участником топика "Расстановка ферзей". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 05:17 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Предыдущее сообщение - первое что пришло на ум. На самом деле имеем выборку не ферзей, а ладей. И количество выборок будет значительно больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 05:31 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Gennadiy Usov ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 09:01 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
jenya7, 2 момента непонятны 1) я могу выбрать шар только из оставшихся Как понимать? обязательно надо переходить к другой коробке и в ней искать, пока не наткнёшься на новый шар? или достаточно обойтись одной коробкой, тогда и искать не надо. В последнем случае типичная схема выбора без возврата. 2) разрулить логику перехода уточнить проблему, остаток от деления на 19 разве не есть логика перехода? что такое отображать циклически? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 09:51 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
exp98jenya7, 2 момента непонятны 1) я могу выбрать шар только из оставшихся Как понимать? обязательно надо переходить к другой коробке и в ней искать, пока не наткнёшься на новый шар? или достаточно обойтись одной коробкой, тогда и искать не надо. В последнем случае типичная схема выбора без возврата. 2) разрулить логику перехода уточнить проблему, остаток от деления на 19 разве не есть логика перехода? что такое отображать циклически? Автор затаился) В меру моего понимания: 1. У него выбор без возврата (причем описание UI мешает описанию алгоритма) 2. Проблема в UI - автор не может изобразить модную нынче "карусель", когда у пользователя есть возможность выбрать текущий элемент или сделать текущим его соседа слева/справа (сверху/снизу). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:17 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Aleksandr SharahovАвтор затаился) В меру моего понимания: 1. У него выбор без возврата (причем описание UI мешает описанию алгоритма) 2. Проблема в UI - автор не может изобразить модную нынче "карусель", когда у пользователя есть возможность выбрать текущий элемент или сделать текущим его соседа слева/справа (сверху/снизу).На самом деле все гораздо проще. Мы не дочитали начальное сообщение до конца. А там:jenya7Проблема в переходах 1-19, 19-1.Не получается разрулить логику.Автор должен показать одну выборку по "логике", и что получилось на печати. Тогда все станет ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:27 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Автору еще рано заниматься шахматной задачей. Но в форуме есть пара людей которых я-бы пригласил. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:29 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
maytonАвтору еще рано заниматься шахматной задачей. Но в форуме есть пара людей которых я-бы пригласил.В шахматной задаче почти ничего не осталось от шахмат: модулярность, торы, алгоритомы. А автор постепенно перестанет называть коробки коробками, и начнет называть их ферзями, и добавит одно (или два) условия. Так что переход возможен. Модератор: Просьба обсуждать свою задачу в своем топике. Данный топик о другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:42 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
jenya7Проблема в переходах 1-19, 19-1.Не получается разрулить логику. ИМХО эти переходы надо запретить. Например ты выбрал все 19, перешел снова на 1-й и что дальше? Выбирать не из чего, т.к. остальные 18 уже выбраны. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:47 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Dima Tjenya7Проблема в переходах 1-19, 19-1.Не получается разрулить логику.ИМХО эти переходы надо запретить. Например ты выбрал все 19, перешел снова на 1-й и что дальше? Выбирать не из чего, т.к. остальные 18 уже выбраны.Выбраны не остальные шары (18), а шары первой выборки. А что делать с остальными шарами: 18 х 19? Наверное, продолжать дальше выбирать (пока автор молчит). Ведь нигде не указано, что только одна выборка. И так до обеда... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 10:58 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Dima Tjenya7Проблема в переходах 1-19, 19-1.Не получается разрулить логику. ИМХО эти переходы надо запретить. Например ты выбрал все 19, перешел снова на 1-й и что дальше? Выбирать не из чего, т.к. остальные 18 уже выбраны. По коробкам он движется строго последовательно, т.е. карусель ему нужна не для коробок, а для невыбранных шаров очередной коробки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:01 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Стоит отметить разнобразие констант 18, 20, 19 красивше, когда одна ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:19 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
exp98Стоит отметить разнобразие констант 18, 20, 19 красивше, когда однаУ автора разные исходные условия, отсуда и чехарда с конечными цифрами.jenya7 Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:30 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Похоже, что всё же тут 19 каналов ошибок, если поднять недавнюю тему ТС. А вот для перемещения по циклу одного канала можно использовать как указатель (с перескакиванием через занятые), так и перемещение по списку свободных. Если надо отображать только свободные. Для каждого канала свой указатель либо свой список. Ну или сверяться с единым массивом занятых как у ТС. По-моему он запутался на ровном месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:31 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
jenya7Возникла такая вот алгоритмическая проблема. Есть 19 коробок. В каждой коробке 19 пронумерованных шаров от 1 до 19. Скажем начинаем с первой коробки - выбираем там шар номер 2. Во второй коробке я могу выбрать любой шар кроме номер 2. Скажем выбрал шар номер 3. В третьей коробке я могу выбрать шар только из оставшихся 1,4,5,6,7,8,9,10...и так далее Проблема как отображать оставшиеся шары на дисплее циклически? Есть три кнопки ENTER,UP,DOWN. ENTER выбирает следующую коробку - движение только вверх, вернуться к предыдущей коробке я не могу. UP, DOWN выбирают следующий доступный шар. И текущая коробка и выбранный шар отображаются на дисплее. похоже на обычную очередь/стэк шарики запомнить и в других коробках игнорировать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 20:30 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
подкоректировал и сейчас работает как надо Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:18 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Зачем переменная done если после ее изменения всегда return? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:25 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
Dima TЗачем переменная done если после ее изменения всегда return? в принципе не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:29 |
|
Перебор не занятых шаров
|
|||
---|---|---|---|
#18+
технически там бесконечный цикл и непонятно откуда взявшийся selected ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 08:49 |
|
|
start [/forum/topic.php?fid=16&fpage=12&tid=1340056]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 407ms |
0 / 0 |