Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/93: Рейтинг темы: голосов - 93, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 11
1

Найти все целые корни кубического уравнения

04.11.2010, 20:04. Показов 17401. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер.
Есть задача :
Вводятся целые числа a,b,c,d.Найти все целые корни уравнения ax3+bx2+cx+d=0 (корни искать среди делителей d).
Помогите написать код,который бы давал верный результат.Используя либо Cin,cout,либо printF,scanF.
Спасибо за раннее.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2010, 20:04
Ответы с готовыми решениями:

Найти все целые корни кубического уравнения
Найти все целые корни уравнения ах3 + bх2 + сх + d = 0, где а, b, с и d — заданные целые числа,...

Найти целые корни кубического уравнения
Найти первые ненулевые корни уравнения k^3-n^2+m=0 через while. Первым решением будут числа k=1....

Найти все целые корни уравнения
Найти все целые корни уравнения ах^3 + bх^2 + сх + d = 0, где а, b, с и d — заданные целые числа,...

Найти все целые корни уравнения ax3+bx2+cx+d=0
Здравствуйте! Помогите, пожалуйста, решить задачу: "Вводятся целые значения для a, b, c, d. Найти...

32
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
07.02.2023, 17:58 21
Author24 — интернет-сервис помощи студентам
das1,
(x-1)(x-1)(x-5)= xxx-7xx+11x-5
Enter a: 1
Enter b: -7
Enter c: 11
Enter d: -5
Root = 1
0
1 / 1 / 0
Регистрация: 26.11.2022
Сообщений: 47
07.02.2023, 18:24 22
Kuzia domovenok, Ну вот, пример уравнения где свободный член 5 - корень уравнения, значит ищем i перебираем до d, а не до d/2.
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
07.02.2023, 19:00 23
Bradley, нет смысла, уже 1 перебирали и выяснили, что это делитель.
0
1 / 1 / 0
Регистрация: 26.11.2022
Сообщений: 47
07.08.2023, 17:00 24
Как решить эту задачу для больших чисел, например a, b, c, d = 109?
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{d}{2}=\frac{{10}^{9}}{2}=500 000 000 Считать будет больше одной секунды.
0
2834 / 2336 / 708
Регистрация: 29.06.2020
Сообщений: 8,655
07.08.2023, 19:07 25
Цитата Сообщение от Bradley Посмотреть сообщение
например a, b, c, d = 109?
Так а почему перебором ?
Сколько может быть корней в кубическом уравнении ? )
0
3268 / 1487 / 469
Регистрация: 01.06.2021
Сообщений: 5,023
07.08.2023, 19:53 26
Кубическое уравнение разрешимо в радикалах (согласно теореме Абеля - Руффини общее алгебраическое уравнение степени <= 4 разрешимо в радикалах). Соответственно, как верно выразился уважаемый SmallEvil, перебор не нужен, а корни можно найти по точной формуле (например, формула Кардано или тригонометрическая формула Виета), причем мы гарантированно найдем все три корня, независимо от того, целые они или нет. Если по условию задания нужно найти целые корни, то разумеется не составит труда реализовать проверку и вывести только целые корни (если, конечно, такие будут).
1
1 / 1 / 0
Регистрация: 26.11.2022
Сообщений: 47
17.08.2023, 17:50 27
SmallEvil, В формулах Кардано нужно будет считать числа https://www.cyberforum.ru/cgi-bin/latex.cgi?{10}^{27} т.к. входные данные a, b, c, d могут быть https://www.cyberforum.ru/cgi-bin/latex.cgi?2*{10}^{9}. Эти значения выходят за пределы типа данных long. Получается нужна длинная арифметика?
0
3268 / 1487 / 469
Регистрация: 01.06.2021
Сообщений: 5,023
17.08.2023, 20:56 28
Bradley, считать нужно в double. При чём здесь long?
0
2834 / 2336 / 708
Регистрация: 29.06.2020
Сообщений: 8,655
17.08.2023, 20:56 29
Так, еще раз прочитал условие (ТЗ), и что я вижу.
Цитата Сообщение от alextsi Посмотреть сообщение
корни искать среди делителей d
То есть, находим делители d, и подставляем их в уравнение.
При чем тут d/2 ?
1
Royal_X
17.08.2023, 21:03
  #30

Не по теме:

SmallEvil, я тоже не обратил внимание на этот момент... Бывает.

0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.08.2023, 21:14 31
Цитата Сообщение от Bradley Посмотреть сообщение
Как решить эту задачу для больших чисел, например a, b, c, d = 109?
А зачем до d/2 перебирать делители, достаточно до sqrt(d), а это будет порядка 10^4.
1
1 / 1 / 0
Регистрация: 26.11.2022
Сообщений: 47
18.08.2023, 09:09 32
Jewbacabra, если идти до https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{d}, то мы не переберем все возможные делители d.
0
2834 / 2336 / 708
Регистрация: 29.06.2020
Сообщений: 8,655
18.08.2023, 10:18 33
Цитата Сообщение от Bradley Посмотреть сообщение
если идти до , то мы не переберем все возможные делители d.
Переберем.
Код
i = 1;
end = sqrt(n);
while(i <= end)
   if (n % i == 0)
      divisors.push_back(i)
      divisors.push_back(n/i)
   i = i + 1;
А вообще, конечно решить уравнение было бы неплохо, даже попробовать с тем же double .
1
18.08.2023, 10:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2023, 10:18
Помогаю со студенческими работами здесь

Найти корни кубического уравнения
(x+a)(x^2-bx)+c(x+a)=0

Найти целые корни уравнения
Привет! Я с С не знаком вообще, тока начал синтаксис учить,поэтому не бейте сильно. Нужно решить 3...

Корни кубического уравнения
Доброго времени суток, в общем ситуация обстоит следующим образом Нужна программа определения...

Действительные корни кубического уравнения методом Кардано
Помогите, пожалуйста! Не понимаю правильно ли написано, какие цифры не ввожу не решается //...

Найти все корни уравнения
Здравствуйте, нужна помощь в написании программы. Найти все корни уравнения с точностью 10-5. ...

Как найти все корни уравнения?
Программа находит решение уравнения методом деления отрезка пополам. Но на выходе я получаю только...

Найти все корни уравнения двумя способами
f(x)=2*x*x*x+3*x*x-5*x-6=0 Для данного уравнения провести его предварительный анализ, отделив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru