请帮忙!无法想象我的生活
给定函数
f(x,n)= n**x(n-1)
图5c。使用此功能,计算
的变化率(((2^3 + 3^2)^4 -2^4)^2 + (3^4 – (6^2 + 3)^4)^3)^3
这就是我在IDLE中提出的:
def function(x, n):
return (n*(x**(n-1)))
assertEqual (
function ((((
function (2.0, 3.0))+(
function (3.0, 2.0)), 4.0)-(
function (2.0, 4.0)), 2.0)+((
function (3.0, 4.0))-((
function (6.0, 2.0))+(
function (3.0, 1.0)), 4.0), 3.0), 3.0), 35994405888.0)
我保存并运行后,收到此消息:
Traceback (most recent call last):
File "C:\Users\Jonathan Cohen\Desktop\School\CISC 106\lab2.py", line 83, in <module>
assertEqual (function ((((function (2.0, 3.0))+(function (3.0, 2.0)), 4.0)-(function (2.0, 4.0)), 2.0)+((function (3.0, 4.0))-((function (6.0, 2.0))+(function (3.0, 1.0)), 4.0), 3.0), 3.0), 35994405888.0)
TypeError: unsupported operand type(s) for -: 'tuple' and 'float'
答案 0 :(得分:3)
(function(a, b), c)
是由function(a,b)
和c
的结果组成的2元组。
如果你想代表(a^b)^c
,你需要像function(function(a,b), c)
这样的东西(假设function()
计算它的第一个参数被提升到第二个。)
答案 1 :(得分:2)
有一些出现,但这是第一个。
function ((((function (2.0, 3.0))+(function (3.0, 2.0)), 4.0)-(function (2.0, 4.0)), 2.0)+((function (3.0, 4.0))-((function (6.0, 2.0))+(function (3.0, 1.0)), 4.0), 3.0), 3.0)
((function (2.0, 3.0))+(function (3.0, 2.0)), 4.0)
我阻止的细分会产生一个(18.0, 4.0)
的元组。然后你尝试对此进行正常的数学运算,但是失败了。
在回复评论时,如果您执行以下操作,此特定细分将更有效:
function((function (2.0, 3.0))+(function (3.0, 2.0)), 4.0)
答案 2 :(得分:1)
这开始对我来说看起来像微积分,但很快就会失控。
基本微分学说如果你有一个函数:
那么关于自变量x的一阶导数是:
在我看来,你正试图用Python来评估这样的东西,但你给出的元组表达对我来说毫无意义。是否应该在某处隐藏一个独立变量?
答案 3 :(得分:0)
因此,经过两个星期的拉扯我的头发试图解决这个问题,我想我终于明白了。非常感谢大家,你的所有投入真的很有帮助!我打破了每个部分并根据你们所建议的内容重写了一切。这就是我想出的:
def function (x,n):
return (n*(x**(n-1)))
assertEqual (function (function (function((function (2, 3))+(function (3, 2)), 4)-function(function (2, 4), 1), 2)+function (function ((function (3,4)),1)-function ((function (6,2))+(function (3,1)),4),3),3), 161027925052617363)
保存并运行后,Python shell告诉我它成功了,你们都说什么?
再次感谢您的帮助!