После того как мы узнали, что такое уравнение, и научились решать самые простые из них, в которых находили неизвестное слагаемое, уменьшаемое, множитель и т.п., логично познакомиться с уравнениями и других видов. Следующими по очереди идут линейные уравнения, целенаправленное изучение которых начинается на уроках алгебры в 7 классе. Понятно, что сначала надо объяснить, что такое линейное уравнение, дать определение линейного уравнения, его коэффициентов, показать его общий вид. Дальше можно разбираться, сколько решений имеет линейное уравнение в зависимости от значений коэффициентов, и как находятся корни. Это позволит перейти к решению примеров, и тем самым закрепить изученную теорию. В этой статье мы это сделаем: детально остановимся на всех теоретических и практических моментах, касающихся линейных уравнений и их решения. Сразу скажем, что здесь мы будем рассматривать только линейные уравнения с одной переменной, а уже в отдельной статье будем изучать принципы решения линейных уравнений с двумя переменными.
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.
while not to_process.empty(): s, prev = to_process.get() if s in prec: continue for i in range(7): for j in range(i + 1, 8): if i == 0: next_s = s[j::-1] + s[j+1:] else: next_s = s[:i] + s[j:i-1:-1] + s[j+1:] if next_s not in prec: to_process.put((next_s, s)) prec[s] = prev
current = "abcdefgh" print(current) while prec[current] is not None: current = prec[current] print(current)