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()'的情況下解決這個問題,那麼可能會有一些迭代。 –