|
Модераторы: Poseidon |
|
Stroks |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.10.2006 Репутация: 1 Всего: 1 |
Дан многочлен вида:
x^n + a1*(x^(n-1)) + a2*(x^(n-2)) + .... + a(n-1)*(x^1) + an = 0 Где n - значение степени уравнения, a1...an - коэффициенты, которые задаются пользователем с клавиатуры. n<=10 Учитывая, что корни данного многочлена находятся в разложении свободного коэффициена (an), выведите на экран все целые корни. часть алгоритма должна быть такая: for i:=1 to an do if mod(an/i)=0 then подставляем это "i" вместо икса в многочлен. Если он при этом значении "i" обращается в ноль, тогда нужно вывести его на экран. Решите пожалуйста, нужно к утру. ICQ: 303-72-72-75 |
|||
|
||||
Kuvaldis |
|
|||
механик-вредитель Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Stroks,
Быстрая версия программы, используется схема Горнера, оптимизация по выборке делителей (просмотр только до корень из длины). Оптимизация при проверке на корень. Коротко поясню. Сначала проверяем, являются ли 1 и -1 корнями полинома. Это просто, нужно сложить определенным образом коэффициенты. Допустим, что А - корень. значит f(x) = (x - A) * q(x) q(x) - целый полином, значит q(1) и й(-1) - целые числа. Но тогда f(1) = - (A - 1) * q(1), f(-1) = - (A + 1) * q(-1) Значит, А - 1 и А + 1 соотвественно делят f(1) и а(-1) Это значит, что из делителей А (А <> =-1) свободного члена для проверки и непосредственного вычисления значения нужно выбирать числа, для которых f(1) / (A - 1) f(-1) / (A + 1) - целые числа Теперь сама программа
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
Stroks |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.10.2006 Репутация: 1 Всего: 1 |
Не работает. Точнее работает, но неправильно. И то, что ты написал перед программой - непонятно. Ты полагаешь x равным 1 и -1, но говоришь, что корень - это A.
Тогда x нужно оставить. Это сообщение отредактировал(а) Stroks - 22.12.2006, 23:13 |
|||
|
||||
Kuvaldis |
|
||||
механик-вредитель Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Stroks,
Дай мне тест, на котором программа легла (на моих всех работает)
Сначала проверили на корень числа 1 и -1 Но нужно же проверить и остальные делители свободного члена. Поэтому и написано "допустим, что корень - это А". Т.е. неединичный делитель Это сообщение отредактировал(а) Kuvaldis - 23.12.2006, 00:01 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
Правила форума "Центр помощи" | |
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |