Как создать функцию для решения двух неизвестных - PullRequest
1 голос
/ 17 сентября 2011

Попытка выяснить, с чего начать.Уравнение содержит два неизвестных, и решением для x или y является всегда положительное число.

Дано a = 123 и b = 55 и c = 5. В этом случае x = 31 иy = 93 но я не знаю этого заранее и пытаюсь написать функцию на C # для ее решения.

a - (x + 1) * 96 - (y + 2) + 3104 - c = b

Также если a = 30 и b = 8 и c = 19затем x = 32 и y = 35

так для: Функция раунда 1 Функция convertX (123, 55, 5) возвращает 31 функцию. РешениеYY (123, 55, 5) возвращает 93

Функция раунда 2Функция convertX (30, 8, 19) возвращает 32 функция Функция convertY (30, 8, 19) возвращает 35

Любые указатели с того, с чего начать, были бы хорошими.

Спасибо.

1 Ответ

9 голосов
/ 17 сентября 2011

Это линейное диофантово уравнение. Его решение очень хорошо известно. Его можно переписать в виде ex + fy = d. Найти g = gcd(e, f). Если d = g, то существует бесконечно много интегральных решений, и их можно найти, используя расширенный евклидов алгоритм . Следовательно, если d является кратным g, существует также бесконечно много решений. Если d не кратно g, решения не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...