こんにちは私は、数式で不必要なカッコを取り除くための既知の方法があるかどうか疑問に思っていました。私はこの質問をしていた理由は、私はそれが基本的にSQLのSELECT文の一部である、このような式長数式で不必要なカッコを取り除く方法
if((-if(([V].[6432])=0;0;(([V].[6432])-([V].[6445]))*(((([V].[6443]))/1000*([V].[6448])
+(([V].[6443]))*([V].[6449])+([V].[6450]))*(1-([V].[6446])))))=0;([V].[6428])*
((((([V].[6443]))/1000*([V].[6445])*([V].[6448])+(([V].[6443]))*([V].[6445])*
([V].[6449])+([V].[6445])*([V].[6450])))*(1-([V].[6446])));
を最小限にしなければならないということです。 255文字を超えることはできません。この式を生成するコードを変更することはできません(基本的にはブラックボックスです)。 多くの括弧は無用です。
((a) * (b)) + (c) = a * b + c
は、だから私は加算/減算、操作括弧、乗算/除算の順序を維持したい:という事実に言及していません。
私はVBで作業していますが、どの言語のソリューションでも問題ありません。
編集
私はQuestion(式に括弧を追加)逆の問題を発見しました。
私は本当にこれが重い解析なしで達成できると思っていました。しかし、式を通過して式ツリーにそれを保存するパーサーは避けられないようです。
ありがとうございました。私はそれを行こう。 – Pawel