import math
if x == 2 ** (((x-1000)/10)^(1/2)):
print(x)
我想写一个函数来解决函数N = 10 *(Log2 N)^ 2 + 1000,但它不工作,有人可以帮我解决它吗?计算具体功能
import math
if x == 2 ** (((x-1000)/10)^(1/2)):
print(x)
我想写一个函数来解决函数N = 10 *(Log2 N)^ 2 + 1000,但它不工作,有人可以帮我解决它吗?计算具体功能
恕我直言:
这是你在找什么,基于此公式:功能N = 10 *(LOG2 N)^ 2 + 1000
import math
def funct_try(x):
return (10*(math.log(x,2)**2)+1000)
funct_try(100)
的答案是1441.4082507040794
你为什么要100作为输入? x的答案是? – jiahuiding
是100是一个输入,并且是x是100,所以函数给出函数 –
很难理解你真正想要的东西。你写的代码似乎与你的问题中提到的问题没有任何关系。 假设您有问题,了解如何使用日志功能:
可以说你要计算与当时基地2日志功能:
import math
print(math.log(8,2))
输出:
3.0
假设帮助。没有,让我们尝试你的功能;它应该看起来像这样:
import math
def function_name(N):
print(10*(math.pow(math.log(N,2),2))+1000)
function_name(110) #here I called the above function with a value 100
输出:
1459.8683956421526
的值,是否解决了x?你为什么放110? – jiahuiding
是的,它解决了这个问题。就像我说的,110只是一个示例值来证明你。 – Inconnu
或者迭代函数有些时候,只要它是偶然的固定点迭代
from math import log
func = lambda x : 10*log(x,2)**2 + 1000
x=1000
for _ in range(15): x = func(x); print "%.12f" % x
这使得它看起来像略少输出
1993.168564084178
2201.401890990801
2233.034094200055
2237.609428257210
2238.266536460564
2238.360814103042
2238.374338474385
2238.376278539726
2238.376556840441
2238.376596762423
2238.376602489195
2238.376603310695
2238.376603428538
2238.376603445443
2238.376603447868
比每次迭代增加一个正确的数字。
你写的“函数”似乎与你的问题中陈述的问题没有任何关系。我认为你需要先学习一些Python基础知识。例如,不需要初始化变量。你不需要'if'语句,只需要一个简单的任务。你需要的是一个值来计算(在你的例子中'N')。查看[Python教程](http://docs.python.org/3/tutorial/index.html)。 –
我写的函数是函数的简化版本 – jiahuiding
它看起来像函数的反函数,但它至少需要另一个变量('x'将永远不会等于'2 **(((x-1000)/10)^(1/2))'),你需要一个为'N'找到匹配值的策略。如果你的目标是在不使用'math.log()'的情况下解决这个问题,那么可能会有一些迭代。 –