如何在Python中使用循环和调用另一个函数来乘以两个多项式?

问题描述 投票:1回答:3

我已经在这个问题上工作了两个小时,但是我不知道从哪里开始或做任何事情。我了解其背后的数学/逻辑,但我不知道将其很好地放入代码中。

这是问题:

  1. 编写并测试函数multiply(self,other)] >>,该函数返回两个多项式的乘积。使用一个循环(for或while);在其中调用上一个问题的* multiply_by_one_term *。
  2. 这是我一开始所设置的,我不记得它叫什么了:

class Polynomial:
    def __init__(self, coeffs=[0]):
        self.coeffs = coeffs

这是我进行的测试:

def multiply(self, other):
    """
      >>> p1 = Polynomial([1, 2])
      >>> p2 = Polynomial([3, 4])
      >>> p1.multiply(p2).coeffs
      [3, 10, 8]
    """

这是我需要调用的功能:

def multiply_by_one_term(self, a, exp):
    """       
      >>> p = Polynomial([2, 1, 3])
      >>> p.multiply_by_one_term(3, 2).coeffs
      [6, 3, 9, 0, 0]
      >>> p = Polynomial([2, 1, 3])
      >>> p.multiply_by_one_term(3, 0).coeffs
      [6, 3, 9]
    """

    return Polynomial([a*i for i in self.coeffs] + [0]*exp)

如果有人可以帮助我,我将非常感激。在编程方面,我还是一个菜鸟,我不太了解。

我已经在这个问题上工作了两个小时,但是我不知道从哪里开始或做任何事情。我了解其背后的数学/逻辑,但我不知道将其很好地融入代码中。这个...

python class loops polynomial-math multiplying
3个回答
4
投票

从数学上讲,我们最终拥有的系数量(或幂)应该是第一个多项式的幂加上第二个多项式的幂,因此我们生成了一个包含多个零的列表。现在我们遍历第一个多项式的系数。在这里,我使用枚举来跟踪当前正在使用的索引。当然,这是假设每个数的幂为系数与其索引相同。因此,第2项中的数字将在x ^ 2之前。


1
投票

由于特殊的限制,我假设这是一项作业。


0
投票

所以这就是我所做的:def multiple_polynoms(a,b):len_a = len(a)len_b = len(b)多人= []mult_dict = {}mult_len = len_a + len_b-1对于范围内的我(mult_len):附加(0.0)对于范围内的我(len_a):对于范围(len_b)中的c:多= a [i] * b [c]地方= i + c如果放在mult_dict中:mult_dict [place] + = multi其他:mult_dict [place] = multi对于mult_dict中的t:mult [t] = mult_dict [t]返回多页

© www.soinside.com 2019 - 2024. All rights reserved.