Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの極角に基づいてデカルト点の特定のセットを並べ替えるプログラム


ポイントと呼ばれるリストにデカルトポイントのセットがあるとします。極角に基づいて並べ替える必要があります。極角は0から2*PIの範囲で変化します。一部のポイントの極角が同じである場合は、原点からのそのポイントの距離に基づいてそれらを配置します。

したがって、入力がpoints =[(1,1)、(1、-2)、(-2,2)、(5,4)、(4,5)、(2,3)、(- 3,4)]、

Pythonの極角に基づいてデカルト点の特定のセットを並べ替えるプログラム

その場合、出力は[(5、4)、(1、1)、(4、5)、(2、3)、(-3、4)、(-2、2)、(1、-2)になります。 ]

Pythonの極角に基づいてデカルト点の特定のセットを並べ替えるプログラム

これを解決するには、次の手順に従います-

  • コンパレータのファンクションキー()を定義します。これにはxがかかります
  • atan:=tan-x [1] / x[0]の逆関数
  • atan> =0の場合はペア(atan、x [1] ^ 2 + x [0] ^ 2)を返し、それ以外の場合は(2 * pi + atan、x [0] ^ 2 + x [1] ^ 2)
  • 次に、コンパレータファンクションキー()を使用してポイントを並べ替えます

理解を深めるために、次の実装を見てみましょう-

import math
def solve(points):
   def key(x):
      atan = math.atan2(x[1], x[0])
      return (atan, x[1]**2+x[0]**2) if atan >= 0 else (2*math.pi + atan, x[0]**2+x[1]**2)

   return sorted(points, key=key)

points = [(1,1), (1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)]
print(solve(points))
>

入力

[(1,1), (1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)]

出力

[(5, 4), (1, 1), (4, 5), (2, 3), (-3, 4), (-2, 2), (1, -2)]

  1. Pythonプログラムでの選択ソート

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでに並べ替えられているサブ配列。 ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう-

  2. 選択ソート用のPythonプログラム

    この記事では、Python3.xでの選択ソートとその実装について学習します。またはそれ以前。 選択ソート アルゴリズムでは、配列は、ソートされていない部分から最小要素を再帰的に見つけて、それを先頭に挿入することによってソートされます。特定の配列での選択ソートの実行中に、2つのサブ配列が形成されます。 すでにソートされているサブアレイ ソートされていないサブアレイ。 選択ソートを繰り返すたびに、ソートされていないサブアレイの最小要素がポップされ、ソートされたサブアレイに挿入されます。 アルゴリズムの視覚的表現を見てみましょう- それでは、アルゴリズムの実装を見てみましょう- 例