助けて!私の数学の試験はすぐに来て、私は勉強しませんでした!1試験の一部は、頂点座標を指定して四角形を分類することです。残念ながら、その方法はわかりません。2
だから、あなたの挑戦は私のためにこれを行うプログラムを書くことです。そうすれば私は失敗しません!
チャレンジ
3つの頂点が同一直線上にない4つの頂点が与えられた場合、それらの4つの頂点によって形成される四辺形の最も具体的な分類を決定します。
「最も具体的な分類」とは、すべての正方形が長方形であっても、形状が正方形である場合、長方形であることを示すのではなく、正方形であることを示す必要があるということです。
入力
入力は4つの(x、y)座標として与えられます。これらは、長さ2のリスト/タプルの長さ4のリストとして取得できます。また、入力をx座標のリストおよびそれぞれのy座標のリストとして取得することもできます。
私の形状がポイントで頂点を持っている場合たとえば、(0, 0)
、(5, 0)
、(6, 1)
、そして(1, 1)
、あなたは以下の形式または類似のもののいずれかの入力を取ることを選択することがあります。
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
四辺形は自己交差しておらず、ポイントは正しい順序で与えられていると想定できます(つまり、入力内の連続する2つのポイントは、四辺形の線分で接続されます)。
出力
次の四辺形のクラスごとに一意の出力が必要になります。
- 平方
- 矩形
- ひし形
- 平行四辺形
- 台形/台形
- カイト
- 四辺形
これは、正確な名前そのもの、文字、整数などです。
ルール
- 標準的な抜け穴が適用されます
- プログラミング言語にこの正確なタスクを実行するビルトインがある場合、そのビルトインは許可されません。
- 2点間の距離を見つけるためのビルトインが許可されています。
- 2本の線の間の角度を見つけるためのビルトインが許可されています。
この時点で、すべての用語を知っていれば、プログラミングを開始できます。(テストケースは最後にあります)
用語
このセクションは、さまざまな形状の定義を明確にする必要がある人を対象としています。
平方
四辺形は、その4辺すべての長さが等しく、隣接する辺のすべてのペアが垂直である(つまり、長方形と菱形の両方である)場合にのみ、正方形です。
矩形
四辺形は、隣接する辺のすべてのペアが垂直である場合にのみ、長方形です。
ひし形
四辺形は、その4つの辺すべてが等しい場合にのみ菱形になります。
平行四辺形
四辺形は、対向する辺の各ペアが平行で、対向する角度の各ペアが等しい場合にのみ平行四辺形です。これらの条件は両方とも相互に関係しているため、どちらか一方のみをチェックする必要があります。
台形/台形
四辺形は、少なくとも1組の平行な辺がある場合にのみ、台形/台形です。
カイト
四辺形は、隣接する2つの対の長さが等しい場合、カイトです。つまり、隣接する2つの側面は等しく、他の2つの側面も等しくなります。
テストケース
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
リンク(Desmos Graphing Calculator)
以下に、各テストケースの視覚化へのリンクを示します。
正方形の
長方形の
菱形の
平行四辺形の
台形/台形の
iteの
四辺形
受賞基準
私は明らかに試験にコンピュータを持ち込むことはできませんので、覚えられるようにできるだけ短いコードを書く必要があります。プログラムをできるだけ小さくする必要があるマージンに収まるように、マージンに書き込み、TryItOffline TMを使用して実行する必要があります!
1もちろん私は実際にやった:P
2もちろん私は実際にやった:P