У меня проблема: одна комната вмещает 13 человек, одну 9 и другую 4. Комнаты все начинают пустым 0 0 0 и могут быть заполнены до их емкость или содержимое одной комнаты могут быть перенесены в другую. Таким образом, для ситуации, такой как 13 0 0, 13 могли заполнить третью комнату, сделав ее 9 0 4. И так далее. Я хочу генерировать всевозможные возможности (следуйте за каждым поколением до тех пор, пока не достигнет END или состояния, которое я уже создал. Я уже реализовал это с помощью LOTS из If Ifse statement ... Что является наиболее кратким способом, я могу сгенерировать это ?AI - Как сжато генерировать все возможные результаты, основанные на правилах
ответ
Вы можете определить класс с именем State, который содержит состояние трех комнат, например, вы можете сделать что-то вроде State st = new State (13, 0, 0). Конструктор состояния также может проверить состояние, чтобы garntee, что первый номер может содержать только 13 человек, второй 9 и третий один 4.
Затем вы можете реализовать функцию с именем расширения, с подписью:
List<State> expand (State st)
Эта функция получает состояние и возвращает список состояний, которые могут быть сгенерированы из принятого состояния.
Чтобы сделать:
Я хочу, чтобы создать все различные возможности (следовать за каждое поколение , пока не достигнет конца или состояние я уже приданного
Есть много способов сделайте это, это зависит от того, какие данные вы хотите получить? Вы хотите, чтобы набор государств привел вас к состоянию, которое вы хотите? Или вы просто хотите знать, что состояние доступно?
EDIT: Ok, так как вы хотите, чтобы получить все достижимые состояния, вы можете создать еще одну функцию, как:
List<State> getReachableStates(State root)
Теперь вы можете реализовать это в рекурсивном способе или в итерационном пути. Это итеративный номер: Этот метод содержит список расширенных состояний и список состояний, в которые разыгрываются состояния, которые поддерживают состояние корня, которое вы получаете в качестве аргумента. Затем, пока у вас есть состояние для расширения, вы вызываете расширение на состояние, которое вы удаляете из списка состояний для расширения. После вызова расширения вы добавляете расширенное состояние в список обработанных состояний и добавляете результат вызова expand в список процессов. Когда вы закончите, верните список расширенных состояний.
Я хочу сгенерировать все достижимые состояния, что означает, что я должен учитывать всевозможные ситуации передачи частей комнат в другую комнату, плюс, в любое время комнаты = 0, ее можно изменить на макс (как возможный ход) – jonbon
- 1. Как генерировать все возможные комбинации
- 2. Все возможные результаты
- 3. Основанные на правилах основанные на шаблонах шаблоны соответствия/извлечения информации?
- 4. Все возможные результаты модуля?
- 5. PHP генерировать все возможные строки
- 6. алгоритм Python, чтобы последовательно генерировать все возможные результаты слот-автомата
- 7. Ограничивающие решения Prolog, основанные на правилах
- 8. Получить все возможные результаты для шаблона RegEx
- 9. Matlab генерировать все возможные комбинации команд
- 10. генерировать все возможные уникальные подстроки строки
- 11. Может ли CryptGenRandom генерировать все возможные перестановки?
- 12. Результаты, основанные на пользовательских навыках
- 13. Результаты, основанные на диаграмме UML?
- 14. вернуть все возможные результаты из инструкции коммутатора
- 15. Запрос не возвращает все возможные результаты
- 16. Разделить результаты, основанные на процентах
- 17. Перемешивание вектора - все возможные результаты выборки()?
- 18. Макро, чтобы дать все возможные результаты
- 19. Как генерировать все возможные комбинации строки, когда дан список значений
- 20. Как генерировать все возможные комбинации п векторов после конкретного состояния
- 21. Убрать все результаты поиска Google, основанные на определенных критериях?
- 22. генерировать несколько выходов, основанные на различном Mixins
- 23. есть ли способ получить все возможные результаты регулярного шаблона выражения?
- 24. Результаты фильтрации, основанные на пересечениях коллекции?
- 25. Результаты группы, основанные на значении дочернего элемента
- 26. как проверить все возможные результаты формулы в Python?
- 27. как найти в таблице все возможные результаты jquery
- 28. PHP: генерировать все возможные буквенно-цифровые комбинации строки
- 29. Динамически изменять результаты, основанные на выбранном сортировке
- 30. все возможные комбинации бит
Покажите нам код, который у вас есть, и, основываясь на формулировке вопроса, я также предлагаю http://codereview.stackexchange.com для широкого обзора кода. – MeetTitan
Это звучит как хороший случай для рекурсии. – yshavit