Extended Multi Members (Python)Разреженные Многочлены(Python)
2 – 1
0 7
1 – 1
The first line of input tells us what operation to do: add to compose, mul to multiply or div to share with the rest.In the following lines, two cut polynomas are introduced.Register the result of the operation again in the form of a decrease multi-member.The result of the div operation is two multiple members: the private and the rest of the division.Please note that unnumerate numbers may occur when sharing; write them in the form of pieces (we recommend using the type Fraction).For example, the Input:add
6 1
4 3
3 – 3
0 5
1 – 1
3 3
0 - 3
1 – 1
The right output: 6 1
4 3
0 2
1 – 1
If the operation was mul output:9 3
7 9
6 – 12
4 – 9
3 24
0 to 15
1 – 1
Div output: 3 1/3
1 1
0 - 2 / 3
1 – 1
1 3
0 3
1 – 1
Note: NumPy functions for working with polynoms are not suitable for this task as they do not use a decrease representation of polynoms.Therefore, they are too slow for high-degree polynomes with a large number of zero members.
Напишите программу сложения, умножения и деления с остатком от разреженных многочленов, т.е. многочленов, для которых мы храним только ненулевые члены.
Разреженный многочлен определяется как последовательность пар (e,x)(e,x), где ee — показатель степени, а xx — соответствующий коэффициент. Пары перечислены в порядке убывания показателей, каждая на отдельной строке. Весь полином заканчивается линией -1 -1. Мы никогда не перечисляем пары с нулевыми коэффициентами, особенно нулевой полином представлен самой линией -1 -1.
Например полином 3x^5 - x^2 + 7 запишем так:
5 3
2 -1
0 7
-1 -1
Первая строка ввода говорит нам, какую операцию выполнять: add для сложения, mul для умножения или div для деления с остатком. В следующих строках вводятся два разреженных полинома.
Снова запишите результат операции в виде разреженного многочлена. Результатом операции div являются два многочлена: частное и остаток от деления. Обратите внимание, что при делении могут получиться нечетные числа; запишите их в виде дробей (мы рекомендуем использовать тип Fraction
).
Например сложение Input:
add
6 1
4 3
3 -3
0 5
-1 -1
3 3
0 -3
-1 -1
Правильный Output:
6 1
4 3
0 2
-1 -1
Если бы операция была mul
Output:
9 3
7 9
6 -12
4 -9
3 24
0 -15
-1 -1
И про деление div
Output:
3 1/3
1 1
0 -2/3
-1 -1
1 3
0 3
-1 -1
Примечание: функции NumPy для работы с полиномами не подходят для этой задачи, так как не используют разреженное представление полиномов. Поэтому они слишком медленны для полиномов высокой степени с большим количеством нулевых членов.
Client's feedback on cooperation with Anton T.
Extended Multi Members (Python)The work was done quickly and quality.
Everyone is happy and I can recommend it!
-
1317 21 0 1 Ready to implement now. Contact me to clarify details.
Готов реализовать сейчас. Свяжитесь со мной для уточнения деталей
-
2179 111 0 I’m going to analyze the task and do it on Python.
The type of operation and multiple members will be entered from the Input file, the result will be extracted into the Output file according to the specified format.
Проанализировал задачу, сделаю на Python.
Тип операции и многочлены будут вводиться из файла Input, результат выводиться в файл Output согласно указанному формату.