Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
3 / 3 / 0
Регистрация: 10.08.2022
Сообщений: 29

Верно записать в файл многочлен определённой степени

04.10.2022, 19:58. Показов 8632. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! Пожалуйста, помогите с кодом на задачу.
Задана натуральная степень k.
Сформировать случайным образом список коэффициентов
(значения от 0 до 100) многочлена и записать в файл многочлен степени k.
Пример:
k=2 => 2*x^2 + 4*x + 5 = 0 или x^2 + 5 = 0 или 10*x^2 = 0
Вот мой код.
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
from random import randint
 
print('Введите натуральную степень k:')
k = int(input())
 
def write_file(st):
    with open('Task04.txt', 'w') as data:
        data.write(st)
 
def create_list(k):
    list = []
    for i in range(k + 1):
        list.append(randint(0, 101))    
    return list
    
def create_str(sp):
    list = sp[::-1]
    wr = ''
    if len(list) < 1:
        wr = 'x = 0'
    else:
        for i in range(len(list)):
            if i != len(list) - 1 and list[i] != 0 and i != len(list) - 2:
                wr += f'{list[i]}x^{len(list) - i - 1}'
                if list [i + 1] != 0:
                    wr += ' + '
            elif i == len(list) - 2 and list[i] != 0:
                wr += f'{list[i]}x'
                if list[i + 1] != 0:
                    wr += ' + '
            elif i == len(list) - 1 and list[i] != 0:
                wr += f'{list[i]} = 0'
            elif i == len(list) - 1 and list[i] == 0:
                wr += ' = 0'
    return wr
 
koef = create_list(k)
write_file(create_str(koef))
Проблема заключается в том, что при степени, большей 2, в уравнение записывается ещё один многочлен, а этого быть не должно. То есть, при степени, равной 2, получается вот такое выражение со случайными числами: 83x^2 + 20x + 5 = 0.
При степени, равной 3, выражение становится вот таким: 73x^3 + 49x^2 + 39x + 38 = 0.
А при степени, равной 4 - таким: 19x^4 + 73x^3 + 49x^2 + 39x + 38 = 0.
Нужно, чтобы уравнение было квадратным при любой степени числа.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2022, 19:58
Ответы с готовыми решениями:

Дан многочлен P(x) степени n. Получить многочлен P(x+1)- P(x). Какова степень этого многочлена?
Всем привет нужно написать программу, желательно простым понятным методом, заранее спасибо большое!! Дан многочленP(x)степени n....

Сгенерировать случайным образом многочлен P(x) заданной степени N и найти многочлен P(x+1)
Сгенерировать случайным образом многочлен P(x) заданной степени N и найти многочлен P(x+1).

Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р
Кратко опишу требуемую задачу: Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р. При этом Р =...

4
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
04.10.2022, 20:36
Цитата Сообщение от Kline81 Посмотреть сообщение
Нужно, чтобы уравнение было квадратным при любой степени числа.
А зачем? По-моему в условии сказано, что нужно сформировать многочлен степени k, а не квадратное уравнение (многочлен степени 2).
1
3 / 3 / 0
Регистрация: 10.08.2022
Сообщений: 29
05.10.2022, 01:04  [ТС]
u235, Слушайте, а может Вы и правы...

Добавлено через 45 минут
А есть ли решение попроще этой задачи?
0
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
05.10.2022, 07:16
Kline81, не знаю, насколько проще, но можно так (без использования модуля re):
Python
1
2
3
4
5
6
7
8
9
10
11
12
from random import randint
max_val=100
k = int(input('Введите натуральную степень k:'))
# коэфф. при старшей степени не должен быть равен 0
koeff=[randint(0,max_val) for i in range(k)]+[randint(1,max_val)]
poly='+'.join([f'{(j,"")[j==1]}x^{i}' for i, j in enumerate(koeff) if j][::-1])
# Поиск и замены:
poly=poly.replace('x^1+', 'x+')
poly=poly.replace('x^0', '')
poly+=('','1')[poly[-1]=='+']
poly=(poly, poly[:-2])[poly[-2:]=='^1']
print(poly)
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
05.10.2022, 16:23
Если допускается использование сторонних модулей, то отлично зайдет sympy (можно и отрицательные коэффициенты в том числе не задумываясь использовать:
Python
1
2
3
4
5
6
7
8
9
10
from random import randint
from sympy import symbols
from math import prod
 
max_val=100
k = int(input('Введите натуральную степень k:'))
# коэфф. при старшей степени не должен быть равен 0
koeff=[randint(-max_val ,max_val) for i in range(k)]+[randint(1,max_val)]
x = symbols('x')
print (sum(map(prod,zip(koeff,[x**i for i in range(k+1)]))), '= 0')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2022, 16:23
Помогаю со студенческими работами здесь

Даны действительное число а, многочлен степени n. Получить многочлен (x^2+2ax+3)*P(x)
Даны действительное число а, многочлен степени n. Получить многочлен (x^2+2ax+3)*P(x). :help: ...

Сгенерировать случайным образом многочлен P(x) заданной степени n и найти многочлен (x-a)*P(x) для заданного а
Добрые Люди! Не откажите в помощи, пожалуйста! Задание: Сгенерировать случайным образом многочлен P(x) заданной степени n и найти многочлен...

Даны действительные числа s, t, многочлен Р (x) степени п. Получить многочлен (sх2 + t) Р (х) + Р' (х), где Р'(х)—производная многочлена Р(х).
Даны действительные числа s, t, многочлен Р (x) степени п. Получить многочлен (sх2 + t) Р (х) + Р' (х), где Р'(х)—производная многочлена...

Даны действительное число a,многочлен P(x) степени n.Получить многочлен
Даны действительное число a,многочлен P(x) степени n.Получить многочлен (x^2+a^2)P(x) Люди,помогите,пожалуйста написать программу!

Даны действительное число a, многочлен P(x) степени n. Получить многочлен (x^2+a^2)P(x)
Даны действительное число a, многочлен P(x) степени n. Получить многочлен (x^2+a^2)P(x) нужна ваша помощь!!!


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru