Я совершенно уверен, что есть более подробная информация дается, например, как его решить (например, с использованием пробной версии и ошибки или алгоритма решателя). Любое слово по этому поводу?
С данной информацией:
У вас есть 3 переменные, так что вам нужно 3 уравнений для решения этой проблемы. Это не так. Это приводит к выводу, что 2 из 3 переменных могут стать (почти) любыми значениями (например, две из трех переменных не должны быть 0).
Учитывая то, что мы определили выше (2 переменные не будут вычислены, но задается пользователем - или иначе просто установить на любое значение), это довольно легко изменить уравнение так это соответствующий классический квадратное уравнение:
(а + б) * (B + C) * (с + а) = 2012
(а + б) * (B + C) * (с + а) - 2012 = 0
(a + b) * (a + c) - 2012/(b + c) = 0
a * a + a * c + a * b + b * c - 2012/(b + С) = 0
a² + (б * в) * а + Ь * с - 2012/(Ь + с) = 0
Не забывайте будучи единственной реальной переменной, мы должны определить, !
Теперь у нас есть простая формула, которую мы можем решить с помощью школьной математики.
Стандартная формула x² + px + q = 0
может быть решена численным образом: x1 = -p/2 - sgn(p) * sqrt(pow(p/2, 2) - q)
и x2 = q/x1
Сравнивая обе формулы нужно просто связать:
х =
р = Ь * С
q = b * c - 2012/(b + c)
То, что сейчас отсутствует, - это просто решение приведенного выше уравнения.
Всё. Хотя подумайте, что прошло довольно много времени, так как я сделал это в последний раз, поэтому я мог ошибаться где-то по дороге. Поэтому, пожалуйста, решите сами уравнения, чтобы проверить это. :)
Редактировать: Чтобы решить эту проблему с помощью c> = b> = a, просто установите одну переменную в фиксированное число, например. c = 10000, затем пусть b пробежит от 0 до c, пока вы не найдете решение, где < b (не пробовал, но должен работать).
Невозможно решить 3 вложенных цикла? – batbaatar
Когда проблема небольшая, переборьте ее. – pad
У меня есть ответы -249 250 и 253. Я вычислил это на бумаге, три вложенные петли заняли у меня много времени, так что это не очень хорошо. – MJA