import math
if x == 2 ** (((x-1000)/10)^(1/2)):
print( x)
我正在尝试编写一个函数来解决函数N = 10 *(Log2 N)^ 2 + 1000,但它不起作用,有人可以帮我解决吗?
答案 0 :(得分:1)
或者迭代函数一些次数,只要它是偶然的定点迭代
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
看起来比每次迭代获得的正确数字略少一些。
答案 1 :(得分:0)
IMHO:
根据以下公式,您正在寻找:函数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
答案 2 :(得分:0)
很难理解你真正想要的东西。你写的代码似乎与你问题中陈述的问题无关。 假设您在理解如何使用日志功能时遇到问题:
假设你想用base 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