Эта глава продолжает тему, затронутую в главе 32. «Поиск простых чисел с помощью регулярных выражений» — применение регулярных выражений в задачах, связанных с целочисленной делимостью.
Речь пойдёт о линейных диофантовых уравнениях.
Диофантово уравнение — это уравнение (как правило, с несколькими неизвестными),
решение которого ищется в целых (иногда в натуральных) числах. Классическим
диофантовым уравнением является уравнение
Ферма:
Недавно доказанная теорема Ферма утверждает, что при
Нас же сейчас интересуют линейные диофантовы уравнения, то есть такие,
в которых все переменные входят линейным образом:
Читатели, интересующиеся математической стороной вопроса, могут ознакомиться
с двумя методами решения линейных диофантовых уравнений с двумя неизвестными по
винтажной шпаргалке [24] 1924 года издания
(рисунок 33.1); там
такие уравнения называются неопределёнными. Качество печати оставляет желать
лучшего. Формулу (1) на странице 31 следует читать как
Особенностью обсуждаемого в этой главе алгоритма является то, что он может
находить лишь одно из решений уравнений такого типа, причём каждое из чисел
Такого рода задачи возникают, например, в связи с разменом денег. Например:
как разменять
Напишем программу diophantus.pl, получающую в командной
строке числа
%
./diophantus.pl 5 11 37
3 2
%
./diophantus.pl 19 6 11 3 2 51
2 1 0 1 2
%
./diophantus.pl 6 11 37
./diophantus.pl: Не могу решить уравнение!