2

私は現在Javaプロジェクトに取り組んでおり、その一部の1つが、入力として取得される任意の整数を満たす数字の組み合わせのリストを提供する必要
1<= A<=B<=C<=D<=E<=F<=Nがあります。それと同じくらい長くすることができます。Nas small as 75A B C D E Fany integerfulfills the equality

を使用してすべての組み合わせを簡単に実行できることはわかっていbrute forceますが、時間がかかります。私がやろうとしているsplitのは、オリジナルを満たした方法で平等をtwo separate平等にすることですが、実行をほぼ半分に削減します.

4

2 に答える 2

2

A, B, C, D, E, F指定された条件を満たすすべての可能な組み合わせのリストが必要であると仮定すると、ブルート フォースバックトラッキング検索を実行するよりも効率的な方法はありません。

の許容値ごとにA: の許容値をすべて見つけてBから、それらのそれぞれについて、C… などを見つけます。

以下を使用すると、同等の実行時間が得られます。

  • 分割統治
  • 動的計画法
  • 貪欲(バックトラックに還元されるだけ)

(ただし、これらのアルゴリズムはこの問題には適しておらず、不自然な実装が必要になります)

于 2012-11-15T18:30:12.150 に答える