前書き
あなたが2次元のデカルト平面上にいて、その上で自分の位置を判断したいと想像してください。その平面上の3つのポイントとそれぞれの距離を知っています。それからあなたの位置を計算することは常に可能ですが、あなたの頭の中でそれをすることはかなり難しいです。そこで、あなたはそのためのプログラムを書くことにします。
チャレンジ
3つのポイントとそれらまでの距離が与えられたら、位置の座標を出力します。
- 入力と出力は、実数の代わりに複素数を使用するなど、任意の便利な形式にすることができます。使用する形式を回答で明確にしてください。
- あなたは常にあなたとの距離で正確に3つの異なるポイントを取得します。
- 座標と距離は、任意の精度の浮動小数点数です。出力は小数点以下3桁まで正確でなければなりません。丸めはあなた次第です。答えを明確にしてください。
- 3つのポイントが同一直線上にないことを前提とする場合があるため、常に一意のソリューションが存在します。
- ソリューションをブルートフォースすることは許可されていません。
- この特定の問題を単純化する組み込み機能は使用できません。ただし、ベクトルノルムなどのビルトインは許可されます。
始めるためのヒント:
半径としてあなたまでの距離でそれらの3点のそれぞれの周りの円について考えてください。
ルール
- 機能または完全なプログラムが許可されます。
- 入出力のデフォルト規則。
- 標準の抜け穴が適用されます。
- これはcode-golfなので、バイト数が最も少なくなります。Tiebreakerは以前の提出です。
テストケース
ここで一点の入力フォーマットである[[x,y],d]
とx
し、y
座標であり、かつd
この点までの距離です。これらの3つのポイントはリストに配置されます。出力は次のようになりx
、その後とy
、リストに。
[[[1、2]、1.414]、[[1、1]、2.236]、[[2、2]、1.0]]-> [2、3] [[[24.234、-13.902]、31.46]、[[12.3242、234.12]、229.953]、[[23.983、0.321]、25.572]]-> [-1.234、4.567] [[[973.23、-123.221]、1398.016]、[[-12.123、-98.001]、990.537]、[[-176.92、0]、912.087]]-> [12.345、892.234]
このPythプログラムを使用して、追加のテストケースを生成できます。場所は入力の最初の行にあり、3つのポイントは次の3行にあります。
ハッピーコーディング!
solve
(3つの円の方程式が与えられた場合)問題を単純化していますか?私はそれがそうだと思ったが、もしあなたがそのようなことで大丈夫なら、私は先に行ってそれを投稿する。