3
星条旗のコードチャレンジ
アメリカ合衆国の旗には、カントンに50の州を表す50の星が含まれています。 過去には、州の数が少なかったとき、もちろん星の数も少なく、それらの配置も異なっていました。たとえば、1912-1959年(ニューメキシコとアリゾナの入国後、アラスカの前)からは、6×8の長方形に48個の星がありました。 1867-1877年から使用された37星旗(ネブラスカ州の入場後、コロラド州の前)には、非対称の星の模様がありました。 将来51番目の州が追加される場合、ヘラルドリー陸軍研究所はすでに新しい旗の予備設計を開発しています。 しかし、星を配置するための一般的なアルゴリズムはないので、作ってみましょう! チャレンジ 所定の数の星が米国旗のカントン(青い部分)に配置されるように、それらの星を配置する最適な座標を出力するプログラムを作成します。 座標系は、カントン【で定義されていない 0≤x≤Wと0≤y≤Hと全体としてフラグ]。 この課題の目的のために、「最適な」配置は、カントン内のポイントと最も近い星の中心との間の平均(ユークリッド)距離を最小化するものとして定義されます。 この値を近似するための簡単な(最適でない場合があります)アルゴリズムは次のとおりです。 def mean_distance_to_nearest_star(stars, width, height, point_density=100): """ Approximate the mean distance between a point in the rectangle 0 < x < width and 0 < y < height, and the nearest point in stars. stars -- list of (x, y) …