Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 06.02.2023
Сообщений: 17

Формула полинома

21.02.2023, 22:06. Показов 2483. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводится две строки: в первой - имя переменной, во второй через пробел - коэффициенты полинома по порядку убывания степеней. Требуется вывести на экран одну строку - формулу полинома.

Полином с одной переменной - это сумма вида:
P(x)=cnx^n +...+c2x^2 +c1x^1 +c0

Python
1
2
3
Ввод                                        Вывод
x                                          P(x) = x^4 + 2x^3 + 3x^2 + 4x^1 + 5x
1 2 3 4 5
Подскажите пожалуйста решение на Python
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2023, 22:06
Ответы с готовыми решениями:

Формула полинома
Вводится две строки: в первой - имя переменной, во второй через пробел - коэффициенты полинома по порядку убывания степеней. Требуется...

Найти значение полинома
Здравствуйте, помогите, пожалуйста, с кодом на эту задачу У многочлена P(x) все коэффициенты — целые неотрицательные числа. Известно, что...

Добавить промежуточные суммы интерполяционного полинома лагранжа
Имеется код, в котором считается значение интерполяционного полинома в точке на основании сеточной функции Нужно добавить вывод...

8
2 / 1 / 1
Регистрация: 11.05.2022
Сообщений: 3
21.02.2023, 22:12
Лучший ответ Сообщение было отмечено teddy bear как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# считываем имя переменной
var_name = input()
 
# считываем коэффициенты полинома
coefs = input().split()
 
# генерируем список членов полинома
terms = [f"{coefs[i]}{var_name}^{len(coefs)-1-i}" for i in range(len(coefs))]
 
# объединяем члены полинома в одну строку
polynomial = " + ".join(terms)
 
# выводим результат
print(f"{var_name} P({var_name}) = {polynomial}")
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
21.02.2023, 23:06
Python
1
2
3
4
5
6
7
8
var = 'x' #input()
*c, co= '1 2 3 4 5'.split() #input().split()
 
n = len(c)
res =' + '.join([f'{"" if c[i]=="1" else c[i]}{var}^{n-i}' for i in range(n-1)])
res = f'P({var}) = {res} + {c[-1]}{var} + {co}'
 
print(res)
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.02.2023, 09:32
Лучший ответ Сообщение было отмечено teddy bear как решение

Решение

Gdez, про отрицательные забыли
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
22.02.2023, 09:37
Лучший ответ Сообщение было отмечено teddy bear как решение

Решение

Вот набор функций для работы с полиномами:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
def polyAdd(p1,p2):
    n1=len(p1)
    n2=len(p2)
    if n1>n2:
        n=n1
    else:
        n=n2
    r=[0 for i in range(n)]
    for i in range(n1):
        r[i]+=p1[i]
    for i in range(n2):
        r[i]+=p2[i]
    for i in range(n):
        j=n-i-1
        print(j)
        if r[j] !=0:
            break
        else:
           del r[j]
    return r
 
def polySub(p1,p2):
    p3=[-a for a in p2]
    return polyAdd(p1,p3)
    
def polyMult(p1,p2):
    n1=len(p1)
    n2=len(p2)
    n=n1+n2-1
    r=[0 for i in range(n)]
    for k in range(n):
        for i in range(k+1):
            j=k-i
            if (j<n2) and (i<n1):
                r[k]+=p1[i]*p2[j]
    return r
    
def polyPrint(p):
    flgf=0
    res=""
    for i in range(len(p)):
        a=p[i]
        if a==0:
            continue
        if abs(a)==1:
            if a>0:
                if flgf==0:
                    z="1"
                else:
                    z="+"
            else:
                z="-"
        else:
            if flgf==0:
                z=str(a)
            else:
                if (a>0):
                    z="+"+str(a)
                else:
                    z=str(a)
        if (i>=1):
            z+="x"
        if (i>=2):
            z+="^"+str(i)
        res+=z
        flgf=1
    return res
 
def parsePoly(p):
    r=[]
    acc=""
    for a in p:
        if a=="-" or a=="+":
            if acc != "":
                r+=[acc]
            acc=a
        else:
            acc=acc+a
    r+=[acc]
    return r
    
def inputPoly(p):
    tmp=parsePoly(p)
    d=0
    if p.find("x") >= 0:
        d=1
    for mon in tmp:
        k=mon.find("^")
        if k>=0:
            z=int(mon[k+1:])
            if z>d:
                d=z
    r=[0 for i in range(d+1)]
    for mon in tmp:
        k=mon.find("x")
        u=mon.find("^")
        if k==-1 and u==-1:
            r[0]=r[0]+int(mon)
            continue
        if mon=="x":
            mon="+1x"
        elif mon[2]=="-x":
            mon="-1"+mon[1]
        elif mon[2]=="+x":
            mon="+1"+mon[1]
        elif mon[0]=="x":
            mon="+1"+mon
        if u==-1:
            mon=mon+"^1"
        k=mon.find("x")
        u=mon.find("^")
        c=int(mon[:k])
        z=int(mon[u+1:])
        r[z]=r[z]+c
    return r
    
 
s1=inputPoly("x+1")
s2=inputPoly("x^2+2x+1")
s3=polyMult(s1,s2)
print(polyPrint(s3))
 
s1=inputPoly("x-1")
s2=inputPoly("1")
for i in range(100):
    s2=polyMult(s1,s2)
print(polyPrint(s2))
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.02.2023, 10:33
Red white socks, Исправил
Python
1
2
3
4
5
6
7
8
var = 'x' #input()
c, co= '-1 -2 1 -1 -5'.rsplit(maxsplit=1) #input().split()
c = list(map(lambda a: "" if a=="1" else "-" if a=="-1" else a, c.split()))
n = len(c)
res =' + '.join([f'{c[i]}{var}^{n-i}' for i in range(n-1)])
res = (f'P({var}) = {res} + {c[-1]}{var} + {co}').replace("+ -", "- ")
 
print(res)
2
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 10:47
Momonga,

Не по теме:

Нейросети атакуют форум с каждым днём всё сильнее и сильнее...

0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.02.2023, 11:17
Gdez, разрешите чуть подкорректировать)
Python
1
2
3
4
5
6
7
var = 'x' #input()
*c, co = '-1 0 11 -1 -5'.split() #input().split()
*c, = map(lambda a: "" if a=="1" else "-" if a=="-1" else a, c)
res =' + '.join([f'{u}{var}^{n-i}' for i, u in enumerate(c[:-1]) if u != '0'])
res = (f'P({var}) = {res} + {c[-1]}{var} + {co}').replace("+ -", "- ")
 
print(res)
2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.02.2023, 11:32
Red white socks,

Не по теме:

ноль, точно…

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2023, 11:32
Помогаю со студенческими работами здесь

Вторая производная полинома (NumPy)
Дан numpy-вектор и действительное число x. Вектор длины n+1 задает полином степени n. Найти вторую производную этого полинома (Например...

Вычислить значение полинома в точке x
Коэффициенты полинома хранятся в массиве A(N-натуральное число, степень полинома). Вычислить значение полинома в точке x (т.е....

Лучший r2_score для степени полинома
В задаче полиномиальной регрессии реализовать код для выбора лучшей степени полинома: - взять все степени от 1 до 10 по порядку - найти...

Формула полинома 6 степени
Подскажите пожалуйста, я составил формулу полинома 6 степени, это верная формула? (см. приложение)

Формула Кардано для полинома третьей степени
Добрый вечер! Имеется полином третьей степени, необходимо в Maple использовать формулу Кардано для нахождения корней, кто может сказать или...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru