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なので関数は関数の値を与えます –
だろうあなたが実際に望んでいることを理解するのは難しいです。あなたが書いたコードは、あなたの質問に記載されている問題とは関係がないようです。あなたは問題がログ機能を使用する方法を理解するために行っていると仮定すると、 :
import math
print(math.log(8,2))
出力:
3.0
と仮定すると、
あなたはその後、ベース2と、ログ機能を計算したいと言うことができます助けてください。さあ、あなたの機能を試してみましょう。これは次のようになります:
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
や機能にいくつかの回を繰り返すが、それは偶然にわずかに少ないように見える出力
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
を与える不動点反復
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
で提供反復ごとに1つの正しい数字が得られました。
あなたが書いた「機能」は、あなたの質問に記載された問題とは関係がないようです。私はあなたが最初にいくつかのPythonの基礎を学ぶ必要があると思います。たとえば、変数を初期化する必要はありません。そして、ここに 'if'文は必要なく、単純な代入が必要です。あなたが必要とするのは計算する値です(あなたの例では 'N')。 [Pythonチュートリアル](http://docs.python.org/3/tutorial/index.html)を参照してください。 –
私が書いた関数は、関数の簡略化されたバージョンです – jiahuiding
関数の逆のように見えますが、少なくとも別の変数が必要です( 'x'は' 2 **((x-1000)/10)^(1/2)) ')、' N 'に一致する値を見つける戦略が必要です。あなたの目標が 'math.log()'を使わずにこの問題を解決することであれば、おそらく何か繰り返します。 –