计算具体功能

时间:2016-11-24 06:37:41

标签: python math

import math


if x == 2 ** (((x-1000)/10)^(1/2)):
    print( x)

我正在尝试编写一个函数来解决函数N = 10 *(Log2 N)^ 2 + 1000,但它不起作用,有人可以帮我解决吗?

3 个答案:

答案 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