質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

Python3で座標(x,y)がリスト形式で与えられたとき、2点間の距離で最長のものを求めたい。

Sakana4432
Sakana4432

総合スコア4

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2回答

0リアクション

3クリップ

517閲覧

投稿2022/08/22 13:31

リスト形式でN個の座標[x,y]が与えられたとき、すべての2点間の距離の中で最長になるユークリッド距離を求めるため、以下のプログラムを書いてみました。

出力は最長距離の2乗になっています。

このプログラムではnumpyをつかって求めていますが、他に計算時間を短縮できるような良いプログラムがあればご教授いただけないでしょうか。

よろしくお願い致します。

<制約>
座標x,yは、-10 ** 5<=x,y<=10 ** 5 の範囲
与えられる座標の数 N は, 1<=N<=2*10**5 の範囲

Python3

import numpy as np N = int(input()) nodes = np.array([list(map(int,input().split())) for _ in range(N)]) longest = 0 nodes_diff = np.expand_dims(nodes,axis=0) - np.expand_dims(nodes,axis=1) nodes_diff = np.reshape(nodes_diff,(-1,2)) for a,b in nodes_diff: distance = a**2 + b**2 if dist > longest: longest = distance print(longest)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。