0

100 万個の要素の配列があり、それらの各要素に適用する数学の種類についてユーザー入力を受け入れたいとしましょう。

プログラムは、要素ごとにユーザー式 (文字列) を 100 万回評価する必要がありますか。それとも、数式自体を何らかの方法で保存して、一度だけ解釈することはできますか? そして、何百万もの要素にループで適用されますか?

これがどのように機能するかについての一般的なアイデアを得ようとしています。現在、Excel タイプのプログラムは常に解釈されているように見えるため、データ調査には遅すぎます。つまり、基本的に私が行っているのは、ユーザー定義の数学を変更するたびに再コンパイルすることです。また、プログラムをコンパイルして、それ自体の実行中に再コンパイルする方法はないようです。ユーザー入力を受け入れ、コンパイルし、終了せずに実行できるようにします。おそらくDLLと個別のアプリドメインを使用しますが、すべてのデータをマーシャリングする必要があります.

すべてがうまくいかないとき、どうやってデータ研究の最高速度を達成するのか理解できません。セキュリティ上の懸念から、DLL のアンロードやロードを許可できない愚かなオペレーティング システムも含まれます。か何か。ただし、数か月前にプログラミングを始めたばかりなので、ナンセンスを吐き出しているだけかもしれません。

4

2 に答える 2

0

ソリューションに興味がある場合、または自分でソリューションを実装することを好む場合は、数式を解析して (バイナリ) ツリーにすることができます。各ノードは演算子 (+、-、​​、..) または関数 (cos()) を表します。 、max()、..) であり、各葉は定数または数式の変数のいずれかを表します。

これは非常に効率的な方法で行うことができ、その後、リーフに正しい変数を入力しながらルートの値を再帰的に計算することで、データ セット全体に適用できます。

これを行う最善の方法を理解するために、この質問はいくつかの指針を提供するかもしれません (ただし、いくつかの方法のうちの 1 つしかない場合、答えはかなり確信しています): 数式からバイナリ ツリーを作成する

これが役立つか、少なくとも他の読者の興味を引くことを願っています!

于 2012-12-06T11:11:57.333 に答える
0

その場でコンパイルされたデータセットと式に対するユーザー入力が必要な場合は、適切なC# REPLを確認してください。

変換などを簡単に入力し、REPL をコンパイルして適用できるようにする必要があります。クラス/コンポーネントで適切にコーディングする前に、ソリューションを試すための便利なツール/手法です。

于 2012-12-06T10:56:31.823 に答える