2016-11-18 6 views
0

たとえば、ユーザにabと尋ねて、return a+bと評価することで、GoogleまたはWolframAlpha 6+6または2+237を入力することができます。しかし、5*5^(e)または他の任意の組み合わせを入力することもできますが、プログラムはa+bの式のみを評価するようにハードコードされています。数学プログラムはどのような形式の方程式を受け入れますか?

コード内のより複雑な問題を共通言語で表現するのは簡単です。

return 5*pow(5,Math.E) #pseudocode 

しかし、私は与えられた形式であるために、ユーザの入力を期待することができない場合、それは、このコードで

x = Input("enter coefficient") 
b = input("enter base") 
p = input("enter power") 
print(x*pow(b,p)) 

ように単純ではありません、私はロックインによ私のプログラムは、フォームx*b^pの問題だけを評価することができます。

人々は、どのような形式の数式を動的に処理するためにコードを書くのですか?

+1

これは非常に幅広い質問です。私はあなたのタグを編集しました。「ダイナミックプログラミング」は、あなたがここで意味するわけではない非常に特殊なものです。グーグルの "シンボリック数学ライブラリ"を試してみてください。 (あなたのダウンワードではない、btw。= /) – BadZen

+0

式パーサーを書くことによって。テキストエディタとキーボードを使用して、コードを他のコードと同じように記述します。 –

+0

私はそれがかなり広い、私がここでここで尋ねた他の質問よりもずっと多いことを実感します。私は、どのタグが適切であるか、暗闇の中の一種のショットでさえ確信していませんでした。ありがとうございました。 –

答えて

1

これは、この会場にとっては「適切な」問題ではないかもしれません。しかし、私はそれが妥当だと思う。質問と一緒に私の答えを投票してもらうリスクがあるので、私は簡単な答えを提供します。

単純なものから複雑なものまでの合法的な数学的表現は、文法的な規則に従います。合法的な数学的表現は理解できないように見えるかもしれないが、文法的に言えば、人間の発話の小さな体を理解するのに必要な文法よりはるかに複雑ではない。

まだ、ネット上で利用可能な製品に「理解」のレベルがあります。 GoogleとWolframAlphaは間違いなく「ハイエンド」です。彼らは、できるだけ人間の発声を表すことができる文法をできるだけ近づけるように試みる。より厳密に定義された入力を受け入れるSympyのような製品が下位に近いほど近い。

ソフトウェアは、入力のどの部分が名詞であり、動詞が何であるかを決定すると、言い換えれば、要求された動作を実行します。

私が想像することのできない形式的言語、人工知能、プログラミング、および分野についての研究をさらに行う必要があるかもしれません。

関連する問題