結果の膨大なコレクションで解決策を探すという、非常に難しい問題 (おそらく NP 困難な問題 ^^) があります。そのためのアルゴリズムがあるのかもしれません。
以下の演習は人工的ですが、私の問題を説明するのに最適な例です。
整数を持つ大きな配列があります。100.000 個の要素があるとしましょう。
int numbers[] = {-123,32,4,-234564,23,5,....}
この配列の任意の 2 つの数値の合計が 0 に等しいかどうかを比較的迅速に確認したいのです。つまり、配列に "-123" がある場合、"123" もあるということです。
最も簡単な解決策は力ずくです-すべてをすべてチェックしてください。これにより、100.000 x 100.000 という大きな数値が得られます ;-) 明らかに、力ずくの方法は最適化できます。番号を注文し、ネガをポジティブのみに対してチェックします。私の質問は、解決策を見つけるために最適化されたブルートフォースよりも優れたものはありますか?