あなたの質問はあまりにも漠然としていて、誰も解決策を投稿するには難しすぎます。これは解決策ではありません。むしろ、こういう問題をどう攻略するかの教訓だ。これを読むことから始めます:
http://en.wikipedia.org/wiki/How_to_Solve_It
そして、あなたがそれをしている間に本のコピーを手に取ってください.
ポリアが賢明に言うように
問題を解決できない場合は、もっと簡単に解決できる問題があります。それを見つけることです。
問題のはるかに簡単なバージョンを次に示します。
私は直線を持っています。この行には、線分のコレクションがあります。コレクション内の各ライン セグメントの始点と終点は、どちらも 0 から何らかのパラメーター n までの範囲内にあります。一部の線分が互いに重なる場合があります。
n 未満の新しい線分の長さが与えられた場合、始点と終点の両方が 0 から n の間にあり、コレクション内の線分が「重ならない」ように、新しい線分をランダムに配置します。それが不可能な場合は、重複する量を最小限に抑える新しい線分の開始座標と終了座標を計算します。
その問題の解決策を C# で書いてもらえますか? 簡単な問題を解決できない場合は、四角形の問題を解決することはできません。
その問題を解決できない場合は、解決できるまで簡単にしてください。n が 200 より大きくならない場合はどうなるでしょうか? 既存のセグメントのコレクションに要素が 0、1、または 2 つしかない場合はどうなるでしょうか? 新しいセグメントの長さが常に 3 の場合はどうなるでしょうか? ランダム性の要件を取り除くとどうなりますか? 最小化問題を解くとどうなるでしょうか? 等々。問題が解決できるまで、問題を単純化し続けます。単純な問題の解決策を見つけたら、それをより大きな問題の解決策に適応させてみてください。簡単な問題を解く練習をすることで、より難しい問題を解くための洞察を得ることができます。