Решение уравнений в python перебором
19 июня 2019 - Администратор
Комментарии (0)
Нет комментариев. Ваш будет первым!
Приведем пример программы на использование цикла for и функций в программах Python для поиска решений уравнения в целых числах В программе в функции задаётся уравнение, которое нужно решить в целых числах. Пользователем задаётся диапазон, в котором ищутся решения [lowerBound, upperBound], и свободный член уравнения a. Компьютер перебирает все числа для всех переменных в заданном диапазоне , проверяет являются ли они решением уравнения и выводит найденные решения уравнения на экран.
Для примера мы разберём поиск решений для уравнения x^2 + y^2 + z^2 = a. Вы можете легко поменять уравнение в функции eq()
Возведение в степень в Python осуществляется с помощью **, тогда выражение для нашего уравнения запишется в виде
x ** 2 + y ** 2 + z ** 2
Уравнение eq(x, y, z) объявляется с помощью функции def eq(x, y, z). def это ключевое слово в python для задания процедур или функций, eq это название функции, задающей выражение левой части уравнения в программе, а x, y, z это аргументы уравнения. С помощью команды return в конце функции в python обозначается то, что возвращает функция при ее вызове в программе, после return мы и записываем выражение левой части уравнения. Подробнее о функциях в Python
С помощью выражения int(input()) вводится в Python вводится целочисленная информация с клавиватуры, значения границ диапазона и свободный член уравнения. Подробнее об вводе данных с клавиатуры в Python
lowerBound = int(input("Введите нижнюю границу поиска. "))
upperBound = int(input("Введите верхнюю границу поиска. "))
a = int(input("Введите свободный член x^2 + y^2 + z^2. "))
Для перебора всех переменных x, y и z используются вложенные циклы for. Подробнее об циклах for в python. Все аргументы перебираются в заданном диапазоне и каждый раз проверяется, равно ли уравнение с подставленными значениями переменных свободному члену. Если это условие выполняется, то на экран выводится решение уравнения
Полная программа на Python для решения уравнения в целых числах методом перебора
def eq(x, y, z):
return x ** 2 + y ** 2 + z ** 2
lowerBound = int(input("Введите нижнюю границу поиска. "))
upperBound = int(input("Введите верхнюю границу поиска. "))
a = int(input("Введите свободный член x^2 + y^2 + z^2. "))
for x in range(lowerBound, upperBound):
for y in range(lowerBound, upperBound):
for z in range(lowerBound, upperBound):
if (eq(x, y, z) == a):
print("x=",x, end = ", ")
print("y=", y, end = ", ")
print("z=",z, end = " ")
Вернуться к содержанию курса python
Поделиться:
Нет комментариев. Ваш будет первым!