問題タブ [algebra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3433 参照

c - C で代数式を解析する方法が必要

私が取り組んでいるアプリケーションの代数式を解析する必要があり、それを試してみて、おそらく間違った道に向かう前に、少しの集合的な知恵を飾りたいと思っています。

テキスト代数式 (3*x - 4(y - sin(pi))) が与えられた場合、方程式のオブジェクト表現を作成します。カスタム オブジェクトは既に存在するため、必要なオブジェクトをインスタンス化するためにウォークできるツリーを作成するパーサーが必要です。

基本的な要件は次のとおりです。

  1. 代数を文法として表現できるので、必要に応じて制御し、カスタマイズ/拡張できます。

  2. 初期構文には、整数、実数、定数、変数、算術演算子 (+、-、​​、/)、累乗 (^)、方程式 (=)、括弧、優先順位、および単純な関数 (sin(pi)) が含まれます。適切な機能 (f(x) = 3x +2) をサポートするために、アプリをかなり迅速に拡張したいと考えています。

  3. コードに統合する必要があるため、C でコンパイルする必要があります。

式を数学的に評価する必要はないので、変数を解いたり演算を実行したりするソフトウェアはノイズです。

私はGoogleの宿題をしましたが、BNF文法とソフトウェアを使用してCでコンパイラを生成するのが最善のアプローチのようです.だから私の質問:

  1. 代数式 (またはさらに良いことに、LaTex) に対応するパーサー ジェネレーターを備えた BNF 文法は既に存在しますか? 誰かがすでにこれを行っている必要があります。主にテストしたくないので、自分でロールバックすることは本当に避けたいです。図書館に妥当な金額 (50 ドル未満) を支払っても構わないと思っています。

  2. そうでない場合、ここで学習/使用するのに最も簡単な C のパーサー ジェネレーターはどれだと思いますか? レックス?YACC? Flex、Bison、Python/SymPy、その他? 私はこれらのどれにも精通していません。

0 投票する
5 に答える
1921 参照

c++ - レイトレーサーを書きたいのですが、使用する代数ライブラリにこだわっています (C++)

独自のマルチスレッド リアルタイム レイトレーサーを C++ で書きたいと思っていましたが、それに付随するすべてのベクトルおよびマトリックス ロジックを実装したくありません。これに適したライブラリを見つけるためにいくつかの調査を行うと考えましたが、あまり成功していません...

実装が高速であることが重要であり、できれば使いやすいライセンスが付属していることが重要です。基本的な代数があると読んだことboostがありますが、その速度に関してどれだけ優れているかについては何も見つかりませんでした。

残りについては、Google から提供Armadilloされた .
それからSeldon、効率的で便利だと主張している を取得しましたが、スケール上の正確な位置を見つけることはできませんでした.
最後に、について読みEigenました。これは、ここで検索しているときに StackOverflow で言及されていることもわかりました。

大学の CG の講義でHLSL、代数 (学生にレイトレーサーの一部を実装/最適化させる) に使用されているので、これに使用できるかどうかを考えさせGLSLられました。繰り返しになりますが、どのオプションが最も効率的であるか、代数ライブラリーに関する一般的なコンセンサスが何であるかはわかりません。SOがここで私を助けてくれることを望んでいたので、実際の開発を始めることができます:)

PS: サイトへのリンクを試みましたが、まだ十分な担当者がいません。

0 投票する
5 に答える
33341 参照

java - Java の代数方程式パーサー

方程式を解析して、入力を与える結果を得ることができるライブラリが必要です。

たとえば、次のようなものです。

そして、次のように評価されます: 6

私のためにそれを行うことができるJava用のライブラリはありますか?

ありがとう

0 投票する
3 に答える
4364 参照

java - 任意の数の変数を持つ任意の数の線形方程式の解を見つけるためのライブラリ

任意の数の変数を持つ任意の数の与えられた線形方程式の任意の解 (多数またはまったく存在しない可能性があります) を見つける必要があります。ジャワで。どのライブラリとメソッドを使用しますか? 何を実装しますか?最低限の作業で作りたいと思っています。

0 投票する
3 に答える
4007 参照

ruby - Ruby による科学プログラミング

本当に素晴らしい関数とライブラリが手元にあるので、私は python または octave で数学的計算を行っていました。しかし、最近、私は Ruby に興味を持ち始めました。Python の numpy や scipy に相当する科学技術プログラミング用のものが Ruby にあるのではないかと考えています。具体的には、matplotlib のようにプロットを描画し、numpy や scipy のように数学的代数計算をすばやく実行できるものを探しています。

0 投票する
2 に答える
584 参照

sql - 関係代数

関係代数でこれを解決するのを手伝ってくれませんか。私はこのDB(論文防衛)を持っています。

  • Teachers(Teacher_ID、Name、Specialty)
  • プロジェクト(Project_ID、タイトル、専門分野)
  • 論文(Thesis_ID、Project_ID、Jury_ID、Decision)
  • 審査員(審査員ID、スーパーバイザーID、First_Member_ID、Second_Member_ID)

専門分野の論文を監督する教師(ID、名前)を取得するための代数クエリを見つけたいと思います。

私はすでにSQLでそれを行いました、これはそれがどのように見えるべきかです:

ご協力いただきありがとうございます!

0 投票する
3 に答える
425 参照

python - Pythonを使用して比較的複雑な数式で分子と分母を決定する

電卓の入力を LaTeX に変換しようとしています。ユーザーがこれを入力した場合:

これを次のように変換する必要があります。

ただし、分子がいつ開始および終了するかを判断する際に問題があります。助言がありますか?

0 投票する
1 に答える
448 参照

boolean - これを単純化する手順は何ですか (a+b)(a+!b)=a

これを単純化する手順は何ですか (a+b)(a+!b)=a

0 投票する
1 に答える
512 参照

prolog - プロローグ セット、スタック オーバーフロー

いくつかのコードを示して、何が最適化できるのか、どこに問題があるのか​​を尋ねます。

N 要素のすべての可能なグラフ セットをモデル化しようとしています。述語 Relations(List, E) は、可能なグラフのリスト (List) と入力セット E を接続します。次に、いくつかのプロパティについて関係の List をチェックするセミラティス述語を記述します。

それで、私が持っているもの。

1) semilattice/2 は高速かつ明確に動作しています

2)関係/ 2がうまく機能していません

3) 可能なすべての半格子を見つけるためにそれらを混合しても、まったく機能しません。

0 投票する
1 に答える
719 参照

prolog - Prologで接続グラフを定義する

私は格子と半束の研究を続けており、突然この質問があります。

基本的に、[a、b]ペアのRelationListがあります。これは、(a、b)がエッジであることを意味します。ここで知っておくべきことは、このRelationList1-接続性によって形成されるグラフです。ちなみに、順序グラフがあるので、(a、b)の順序が重要です。

しかし、6要素のグラフの場合、stackoverflowがあります。

私はそれを間違って定義していますか?