2011-01-29 16 views
10

与えられる:= N解決機能方程式は、プログラム

F(0)= 1

F(F(N))= N

F((N + 2)+ 2 F)

ここで、nは負でない整数です。 F(129)=?

このような種類の関数方程式をプログラム的に解決するにはどうすればよいですか?私のプログラミング言語はPythonです。

+0

何後にしているものではありません場合Fの条件は? n = 0のとき、F(n)= 1となる。 FはF(F(n))とF(F(n + 2)+2)をどのような条件で計算しますか? – inspectorG4dget

+0

@ inspectorG4dget FはRで連続しています – Sharathiitr

+0

これらの問題を解決する際にどのような制約が発生する可能性があるのか​​をより正確に説明できますか?任意の数学的表現を許可すれば、どこでも定義されていないシーケンスを記述することは簡単です。 – templatetypedef

答えて

5

機能的な方程式は、最も一般的な用語では、本当に本当に難しいです。ほとんどすべての国際数学大会には、あなたが書いたものと同じくらい無邪気に見えるものがあります。それらを解決する方法は、単純誘導から無限次元Banach空間解析まで様々であり、それらを解決するための包括的なプログラミング手法はほとんどありません。この特定のケースで

は、ここで直接的なアプローチは次のとおり

は、任意の2つの整数mについて仮定、N我々は、F(M)= F(N)= Kを有しています。しかし、m = F(F(m))= F(k)= F(F(n))= n:したがって、m = nであり、Fは2つの異なる入力で同じ値をとることはない。しかし、F(n)= n = F(F(n + 2)+2)なので、F(n)とF(n + 2) 、F(n + 2)== F(n)-2 == F(n-2)-4 = ...となる。 F(129)= F(127) - 2 = F(125) - 4 = ...ここで、F(0)= 1なので、F(1)= F = F(1) - 128 = -128

あなたの解決策はありますが、あらゆるバリエーションを解決する機械的アルゴリズムは存在しません。

+0

あなたは 'F(F) (n))= n'はそれ自身の逆数である 'F'の定義式である。それが双方向性であるという事実は、その結果です。 – aaronasterling

+0

多くの場合、記号的回帰はこれらをうまく解くことができます – Inverse

1

言ったこと@ivanchoと@aaronasterlingに基づいて、私はトリックを行う必要があり、このプログラムを書くことができたが:

def f(n): 
    if not n: 
     return 1 
    else: 
     return f(n-2)-2 

>>> f(4) 
-3 

コメントこれはあなたが