gpt4 book ai didi

python - 使用 Python 将二维列表打印为多项式

转载 作者:行者123 更新时间:2023-12-01 09:18:16 25 4
gpt4 key购买 nike

我正在尝试使用二维列表作为存储多项式的方法。我已经能够创建一个存储二维列表的对象来表示多项式。但是,当我尝试获取二维列表并以正确的数学符号显示它时,我遇到了困难。这意味着诸如:[[1,8],[-5,7],[-1,1],[-1,0]] 的列表应具有以下输出:x^8 - 5x^7 - x - 1。这是到目前为止我的程序:

global poly
poly = []

class Polynomial():

def __init__(self,num_list = []):
sorted_list = list(sorted(num_list,key=(lambda d:d[1]),reverse=True))
for i in sorted_list:
poly.append(i)
self.num_list = poly

def display(self):
for i in range(len(self.num_list)):
for j in range(len(self.num_list[i])):
print(self.num_list[i][j])

a = Polynomial([[1,8],[-5,7],[-1,1],[-1,0]])
a.display()

但是,该程序只能在新行中显示列表中的每个数字。我需要能够在同一行上显示所有数字,这样我就可以包含变量和指数。

最佳答案

这应该适合你:

class Polynomial():

def __init__(self,num_list = []):
sorted_list = list(sorted(num_list,key=(lambda d:d[1]),reverse=True))
self.num_list = [i for i in sorted_list]

def display(self):
storage = []
for i in range(len(self.num_list)):
storage.append(str(self.num_list[i][0]) + 'x^' + str(self.num_list[i][1]))
print(''.join(storage))

a = Polynomial([[1,8],[-5,7],[-1,1],[-1,0]])
a.display()

输出:

1x^8-5x^7-1x^1-1x^0

显然,您可以使用一些更高级的显示逻辑,但我将其留给您。希望有帮助!

或者,如果您想将显示功能放入一行中(根据@bobrobbob的评论更新):

class Polynomial():

def __init__(self,num_list = []):
sorted_list = list(sorted(num_list,key=(lambda d:d[1]),reverse=True))
self.num_list = [i for i in sorted_list]

def display(self):
print(''.join('%+dx^%d' % (a, b) if b!=0 else '%+d' % (a) for a, b in self.num_list))

a = Polynomial([[1,8],[-5,7],[-1,1],[-1,0]])
a.display()

输出:

+1x^8-5x^7-1x^1-1

关于python - 使用 Python 将二维列表打印为多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com