У меня есть основная проблема в Python, где я должен проверить, нашел ли мой код обратного отслеживания некоторые решения (я должен найти все подсписные числа от 1 до n
номеров с свойством |x[i] - x[i-1]| == m
). Как проверить, есть ли какое-то решение? Я имею в виду потенциальные решения, которые я нахожу, я просто печатаю их и не сохраняю их в памяти. Я должен напечатать правильное сообщение, если нет никаких решений.Python backtracking
0
A
ответ
0
Как я предложил в комментариях, вы можете отделить вычисления с печатью ввода/вывода, создав генератор ваших решений |x[i] - x[i-1]| == m
Давайте предположим, что вы определили генератор для получая свои решения:
def mysolutions(...):
....
# Something with 'yield', or maybe not.
....
Вот генератор декоратора, который вы можете использовать, чтобы проверить, если реализован генератор имеет значение
from itertools import chain
def checkGen(generator, doubt):
"""Decorator used to check that we have data in the generator."""
try:
first = next(generator)
except StopIteration:
raise RuntimeError("I had no value!")
return chain([first], generator)
Используя этот декоратор, теперь вы можете определить ваше предыдущее решение с:
@checkGen
def mysolutions(...):
....
Затем, вы можете просто использовать его как есть, для отделяя ваш I/O:
try:
for solution in mysolutions(...):
print(solution) #Probably needs some formatting
except RuntimeError:
print("I found no value (or there was some error somewhere...)")
Смежные вопросы
- 1. python перестановки списка backtracking
- 2. Python Backtracking (queens checkboard)
- 3. backtracking suduko solver python
- 4. Backtracking in Python [2]
- 5. Перестановки Python с условием (backtracking)
- 6. Backtracking лабиринт
- 7. Backtracking Java
- 8. RegEx backtracking
- 9. Sudoku Backtracking
- 10. Prolog Backtracking
- 11. backtracking на графике
- 12. sudoku solver using backtracking
- 13. Regex Pattern Catastrophic backtracking
- 14. Реализация F # Backtracking
- 15. StackOverFlowError on Backtracking method
- 16. Recursion + backtracking. Что вернуть?
- 17. Backtracking: N Bishops Problem
- 18. XText Включение Backtracking правильно
- 19. nkeen without backtracking
- 20. Реализация Backtracking на Haskell
- 21. Java Sudoku solver backtracking
- 22. optparse-applyative Backtracking
- 23. Sudoku solver backtracking
- 24. Backtracking с рекурсией
- 25. Backtracking в Java debug
- 26. Parsec: backtracking not working
- 27. recursive backtracking makeChange
- 28. Backtracking FamilyTree SQL
- 29. Hanoi Towers BackTracking bad_alloc
- 30. backtracking in haskell
Может диссоциируют вычислений от I/O (здесь, печать), используя генератор. Затем вы можете проверить, есть ли у вас хотя бы первое значение в генераторе. – DainDwarf