4 つの整数 (a、b、c、d) と、数学演算子 (+、-、、/) を表す 3 つの文字列があります。これらの int と String から特定の数 (e) を作成できるかどうかを確認したいと思います。
例えば:
a + b * c - d == e;
int はそれぞれ 1 回だけ使用でき、演算子は複数回使用できますが、2 つの int ごとに 1 回だけ使用できます。
誰でも私を助けることができますか?
4 つの整数 (a、b、c、d) と、数学演算子 (+、-、、/) を表す 3 つの文字列があります。これらの int と String から特定の数 (e) を作成できるかどうかを確認したいと思います。
例えば:
a + b * c - d == e;
int はそれぞれ 1 回だけ使用でき、演算子は複数回使用できますが、2 つの int ごとに 1 回だけ使用できます。
誰でも私を助けることができますか?
まず、問題を細かく分割します。
次のように分解します。
4 つの int のすべての順列を計算します。これらの 4!(24) があるはずです。(順列の生成を調べます)
発生する可能性のある 3 つの操作のすべての組み合わせを計算します。これらの 3*3 (9) があるはずです。(繰り返しを伴う順列の生成を調べてください)。
整数の順序と演算の順序がわかったので、e を試して計算します。(組み合わせを織り交ぜます。つまり、int から 1、ops から 1、int から 2 番目、ops ect から 2 番目...) これは、すべての int 順列とすべての op の組み合わせで行う必要があります。
すべての方程式 (これらのうち 216 個) を評価した後、どれも e に等しくない場合、解はありません。