Hướng dẫn print polynomial in python - in đa thức trong python

Python có sự lặp lại thực sự mạnh mẽ sẽ giúp bạn ra khỏi đây.

Show

Đối với người mới bắt đầu, đừng chuyển len của một cái gì đó cho range. Lặp lại một cái gì đó trực tiếp.

for x in self.coeffs:

Tuy nhiên, điều này sẽ không hoàn toàn giúp bạn vì chỉ số của phép lặp là cần thiết cho sức mạnh. enumerate có thể được sử dụng cho điều đó.

for i, x in enumerate(self.coeffs):

Điều này trình bày một vấn đề khác, tuy nhiên. Sức mạnh là ngược. Đối với điều này, bạn muốn

for i, x in enumerate(self.coeffs):
0.

for i, x in enumerate(reversed(self.coeffs)):

Từ đây bạn chỉ cần xử lý đầu ra của mình:

items = []
for i, x in enumerate(reversed(self.coeffs)):
    if not x:
        continue
    items.append('{}x^{}'.format(x if x != 1 else '', i))
result = ' + '.join(items)
result = result.replace('x^0', '')
result = result.replace('^1 ', ' ')
result = result.replace('+ -', '- ')

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Examples:

    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15

    Bàn luận

    Hướng dẫn print polynomial in python - in đa thức trong python

    Bài viết sau đây chứa các chương trình để tính toán một phương trình đa thức cho rằng các hệ số của đa thức được lưu trữ trong một danh sách.

    Phương trình sẽ thuộc loại:

    • Chúng tôi sẽ được cung cấp giá trị của biến và chúng tôi phải tính toán giá trị của đa thức tại thời điểm đó. Để làm như vậy chúng tôi có hai cách tiếp cận.Using for loop to compute the value.
    • Cách tiếp cậnUsing Horner’s Method for computing the value.

    Phương pháp ngây thơ: Sử dụng cho vòng lặp để tính toán giá trị.

    Phương pháp tối ưu hóa: Sử dụng phương pháp Horner, để tính toán giá trị.

    • Phương pháp ngây thơ:cn will be multiplied with xn
    • Trong phương pháp này, phương pháp sau đây sẽ được tuân thủ. Đây là cách tiếp cận ngây thơ nhất để làm những câu hỏi như vậy.cn-1 will be multiplied with xn-1
    • Hệ số đầu tiên CN sẽ được nhân với XN
    • Sau đó, hệ số CN-1 sẽ được nhân với XN-1

    Example:

    Python3

    Các kết quả được tạo ra trong hai bước trên sẽ được thêm

    Điều này sẽ tiếp tục cho đến khi tất cả các hệ số được bảo hiểm.

    for i, x in enumerate(self.coeffs):
    
    1
    for i, x in enumerate(self.coeffs):
    
    2
    for i, x in enumerate(self.coeffs):
    
    3
    for i, x in enumerate(self.coeffs):
    
    4
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    6
    for i, x in enumerate(self.coeffs):
    
    7
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    4
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    6
    for i, x in enumerate(reversed(self.coeffs)):
    
    223

    for i, x in enumerate(reversed(self.coeffs)):
    
    4
    for i, x in enumerate(self.coeffs):
    
    2
    for i, x in enumerate(reversed(self.coeffs)):
    
    6

    for i, x in enumerate(reversed(self.coeffs)):
    
    7
    for i, x in enumerate(self.coeffs):
    
    2 len
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    0

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    1
    for i, x in enumerate(self.coeffs):
    
    2
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    3

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    4
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    5
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    6 range
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    8

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    for i, x in enumerate(self.coeffs):
    
    2
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    2

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    4
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    5
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    6 range__

    Value of polynomial is: 5
    6
    Value of polynomial is: 5
    7

    Output:

    5

    5
    4
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    for i, x in enumerate(self.coeffs):
    
    2
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    5
    8
    5
    9
    O(n2)

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    1
    for i, x in enumerate(self.coeffs):
    
    2
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    1
    Value of polynomial is: 5
    4
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0

    Độ phức tạp về thời gian: O (N2)

    Python3

    Phương pháp được tối ưu hóa:

    Phương pháp Horner có thể được sử dụng để đánh giá đa thức trong thời gian O (N). Để hiểu phương pháp, chúng ta hãy xem xét ví dụ về 2x3 - 6x2 + 2x - 1. đa thức có thể được đánh giá là ((2x - 6) x + 2) x - 1. Ý tưởng là khởi tạo kết quả là hệ số của XN Đó là 2 trong trường hợp này, nhiều lần nhân kết quả với X và thêm hệ số tiếp theo để kết quả. Cuối cùng, trả về kết quả. & Nbsp;

    Value of polynomial is: 5
    8
    Value of polynomial is: 5
    9

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    1
    for i, x in enumerate(self.coeffs):
    
    2 len3
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    3
    for i, x in enumerate(reversed(self.coeffs)):
    
    3

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    4
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    5
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    6 rangerange1
    for i, x in enumerate(reversed(self.coeffs)):
    
    222

    Các kết quả được tạo ra trong hai bước trên sẽ được thêm

    Điều này sẽ tiếp tục cho đến khi tất cả các hệ số được bảo hiểm.

    for i, x in enumerate(self.coeffs):
    
    1
    for i, x in enumerate(self.coeffs):
    
    2
    for i, x in enumerate(self.coeffs):
    
    3
    for i, x in enumerate(self.coeffs):
    
    4
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    6
    for i, x in enumerate(self.coeffs):
    
    7
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    4
    for i, x in enumerate(self.coeffs):
    
    5
    for i, x in enumerate(self.coeffs):
    
    6
    for i, x in enumerate(reversed(self.coeffs)):
    
    223

    Value of polynomial is: 5
    6range1
    for i, x in enumerate(self.coeffs):
    
    17
    for i, x in enumerate(self.coeffs):
    
    18

    Output:

    Value of polynomial is: 5

    for i, x in enumerate(reversed(self.coeffs)):
    
    4
    for i, x in enumerate(self.coeffs):
    
    2
    for i, x in enumerate(reversed(self.coeffs)):
    
    6
    O(n)


    for i, x in enumerate(reversed(self.coeffs)): 7for i, x in enumerate(self.coeffs): 2 lenitems = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 0

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    1
    for i, x in enumerate(self.coeffs):
    
    2
    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    3 . For example, eval_polynomial([1, 0, 3], 2) should return 1*2^2 + 0*2 + 3 = 7. Use a single while loop.

    items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 4 items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 5items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 6 rangeitems = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 8

    items = []
    for i, x in enumerate(reversed(self.coeffs)):
        if not x:
            continue
        items.append('{}x^{}'.format(x if x != 1 else '', i))
    result = ' + '.join(items)
    result = result.replace('x^0', '')
    result = result.replace('^1 ', ' ')
    result = result.replace('+ -', '- ')
    
    9
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    for i, x in enumerate(self.coeffs):
    
    2
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    2group together like-exponents and sum their coefficients. (In fact, if you were to stick with the Counter representation throughout, you could just return p + q ).

    items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 9items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 4 # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3 Input: poly[] = {2, -6, 2, -1}, x = 3 Output: 5 # Evaluate value of 2x3 + 3x + 1 for x = 2 Input: poly[] = {2, 0, 3, 1}, x = 2 Output: 23 # Evaluate value of 2x + 5 for x = 5 Input: poly[] = {2, 5}, x = 5 Output: 155items = [] for i, x in enumerate(reversed(self.coeffs)): if not x: continue items.append('{}x^{}'.format(x if x != 1 else '', i)) result = ' + '.join(items) result = result.replace('x^0', '') result = result.replace('^1 ', ' ') result = result.replace('+ -', '- ') 6 range__

    5
    4
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    for i, x in enumerate(self.coeffs):
    
    2
    # Evaluate value of 2x3 - 6x2 + 2x - 1 for x = 3
    Input: poly[] = {2, -6, 2, -1}, x = 3
    Output: 5
    
    # Evaluate value of 2x3 + 3x + 1 for x = 2
    Input: poly[] = {2, 0, 3, 1}, x = 2
    Output: 23
    
    # Evaluate value of 2x + 5 for x = 5
    Input: poly[] = {2, 5}, x = 5
    Output: 15
    0
    5
    8
    5
    9