我有一个功能
f(x,y)=4x^2*y+3x+y
显示为
four_x_squared_y_plus_three_x_plus_y = [(4, 2, 1), (3, 1, 0), (1, 0, 1)]
其中,元组中的第一项是系数,第二项是x的指数,第三项是y的指数。我正在尝试以一定的x和y值计算输出
我尝试将术语列表拆分成它们代表的内容,然后在输入它们时输入x和y的值,但是我得到了关于**元组的不受支持的操作数类型-即使我试图拆分在条款内将它们分成单独的值
这是分割像这样的元组的有效方法吗?
def multivariable_output_at(list_of_terms, x_value, y_value):
coefficient, exponent, intersect = list_of_terms
calculation =int(coefficient*x_value^exponent*y_value)+int(coefficient*x_value)+int(y_value)
return calculation
multivariable_output_at(four_x_squared_y_plus_three_x_plus_y, 1, 1) # 8 should be the output
答案 0 :(得分:1)
请尝试以下操作:
four_x_squared_y_plus_three_x_plus_y = [(4, 2, 1), (3, 1, 0), (1, 0, 1)]
def multivariable_output_at(list_of_terms, x_value, y_value):
return sum(coeff*(x_value**x_exp)*(y_value**y_exp) for coeff,x_exp,y_exp in list_of_terms)
print(multivariable_output_at(four_x_squared_y_plus_three_x_plus_y, 1, 1))
注意:
这与您的代码最初对待变量的方式不同,并且基于我对术语列表的含义的直观理解(给出示例)。
如果您有更多输入->输出示例,则应检查所有答案,以确保我做的正确。
答案 1 :(得分:0)
第一行代码将元组列表解压缩为三个不同的元组:
coefficient, exponent, intersect = list_of_terms
# coefficient = (4, 2, 1)
# exponent = (3, 1, 0)
# intersect = (1, 0, 1)
元组不支持乘积运算符*
,您看到此问题了吗?