Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Найти количество целых решений


Автор: Lollipo 18.10.2010, 07:03
Количество решений
У вас есть пять номеров, b, c, d и e. Найти число целых решений уравнения (ax3 + bx2 + сх + d) / (х - е) = 0 в интервале [0,1000].

Автор: Alexeis 18.10.2010, 08:26
Lollipo, теперь хотелось бы увидеть, как вы пытались решить эту задачу.

Автор: bsa 18.10.2010, 10:11
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Elerond 18.10.2010, 12:30
Я так понимаю достаточно решить только ax^3 + bx^2 + cx + d = 0 , и не забыть что x<>e

Для решения кубических уравнений уже есть готовые методы.

Автор: Alexeis 18.10.2010, 14:06
  Я бы домножил на (х - е) обе части уравнения и применил теорему виета. Тут единственное что нужно исключить решение х = е; Количество вариантов перебора в пределе 1000^3, но всегда меньше либо равно d / a . Так что для целочисленной арифметики вполне подъемно решить менее чем за 1с.

А, вообще, все все аналитические решения представлены тут http://www.terver.ru/algeq6.php . Так что можно воспользоваться более эффективным и быстрым решением.
  Но мне все же кажется, что задача не в записи аналитической формулы, а в численном решении. Учитывая что численный метод не указан, то можно решать любым.

Автор: Elerond 18.10.2010, 14:14
Цитата(Alexeis @  18.10.2010,  14:06 Найти цитируемый пост)
Я бы домножил на (х - е) обе части уравнения и применил теорему виета. Тут единственное что нужно исключить решение х = е;

Это и имелось в виду... 

Что касательно поиска решения, можно перебором, можно так же  использовать метод Виета-Кардано... в принципе, выбор метода дело автора.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)