เป้าหมายของคุณคือการพิจารณาว่าจุด 2D ที่ได้รับอยู่ในพื้นที่ของสามเหลี่ยมที่มีจุดยอด A, B, C หรือไม่
เขียนฟังก์ชั่นที่ใช้ในพิกัดของจุดทดสอบ X และจุดยอดสามเหลี่ยมสามรูป (นั่นคือทั้งหมด 8 พิกัด) และส่งกลับค่าจริงถ้าจุดนั้นอยู่ภายในสามเหลี่ยมนั้นและเท็จถ้าอยู่นอก
ไม่ต้องกังวลเกี่ยวกับกรณีขอบ หากจุดนั้นอยู่บนขอบเขตของสามเหลี่ยม (ขอบหรือจุดสุดยอด) หรือสามเหลี่ยมนั้นเป็นส่วนของเส้นตรงโค้ดของคุณสามารถทำอะไรก็ได้รวมถึงการกระแทก ยังไม่ต้องกังวลกับความเสถียรเชิงตัวเลขหรือความแม่นยำจุดลอยตัว
รหัสของคุณจะต้องเป็นชื่อฟังก์ชั่น จะไม่ยอมรับข้อมูลโค้ด
ตัวละครที่ชนะน้อยที่สุด
การป้อนข้อมูล:
แปดตัวเลขจริงที่แสดงถึงพิกัด (-1,1)
ตัวเลขจะอยู่ในช่วง
รูปแบบการป้อนข้อมูลที่แน่นอนมีความยืดหยุ่น ยกตัวอย่างเช่นคุณสามารถใช้ตัวเลขแปดตัวรายการแปดหลักรายการสี่จุดแต่ละจุดที่กำหนดโดย tuple เมทริกซ์ 2 * 4 จำนวนเชิงซ้อนสี่จำนวนสองรายการของพิกัด x และพิกัด y และอื่น ๆ
อินพุตต้องเป็นตัวเลขในคอนเทนเนอร์บางตัวโดยไม่มีข้อมูลเพิ่มเติม คุณไม่สามารถใช้อินพุตเพื่อดำเนินการประมวลผลล่วงหน้าและคุณไม่จำเป็นต้องมีข้อ จำกัด ใด ๆ ในอินพุตเช่นต้องการให้มีการให้คะแนนในพิกัด y จากน้อยไปหามาก ข้อมูลที่คุณป้อนจะต้องอนุญาตให้ใช้พิกัดแปดพิกัดใด ๆ (แม้ว่ารหัสของคุณจะทำงานโดยพลการในกรณีขอบที่ระบุไว้ก่อนหน้านี้)
โปรดระบุรูปแบบการป้อนข้อมูลของคุณ
เอาท์พุท:
ไม่ว่าจะเป็นบูลีนTrue
/ False
หมายเลขที่สอดคล้องกัน1
/ 0
หรือแอนะล็อกในภาษาของคุณ
กรณีทดสอบ
อินพุตจะได้รับรายการ[X,A,B,C]
ของสิ่งอันดับสี่จุดทดสอบก่อนจากนั้นจุดยอดสามเหลี่ยมทั้งสาม ผมได้จัดกลุ่มพวกเขาเป็นผู้ที่มีผลควรจะเป็นและผู้ที่ควรจะเป็นTrue
False
True
ตัวอย่าง:
[(-0.31961, -0.12646), (0.38478, 0.37419), (-0.30613, -0.59754), (-0.85548, 0.6633)]
[(-0.87427, -0.00831), (0.78829, 0.60409), (-0.90904, -0.13856), (-0.80685, 0.48468)]
[(0.28997, -0.03668), (-0.28362, 0.42831), (0.39332, -0.07474), (-0.48694, -0.10497)]
[(-0.07783, 0.04415), (-0.34355, -0.07161), (0.59105, -0.93145), (0.29402, 0.90334)]
[(0.36107, 0.05389), (0.27103, 0.47754), (-0.00341, -0.79472), (0.82549, -0.29028)]
[(-0.01655, -0.20437), (-0.36194, -0.90281), (-0.26515, -0.4172), (0.36181, 0.51683)]
[(-0.12198, -0.45897), (-0.35128, -0.85405), (0.84566, 0.99364), (0.13767, 0.78618)]
[(-0.03847, -0.81531), (-0.18704, -0.33282), (-0.95717, -0.6337), (0.10976, -0.88374)]
[(0.07904, -0.06245), (0.95181, -0.84223), (-0.75583, -0.34406), (0.16785, 0.87519)]
[(-0.33485, 0.53875), (-0.25173, 0.51317), (-0.62441, -0.90698), (-0.47925, 0.74832)]
False
ตัวอย่าง:
[(-0.99103, 0.43842), (0.78128, -0.10985), (-0.84714, -0.20558), (-0.08925, -0.78608)]
[(0.15087, -0.56212), (-0.87374, -0.3787), (0.86403, 0.60374), (0.01392, 0.84362)]
[(0.1114, 0.66496), (-0.92633, 0.27408), (0.92439, 0.43692), (0.8298, -0.29647)]
[(0.87786, -0.8594), (-0.42283, -0.97999), (0.58659, -0.327), (-0.22656, 0.80896)]
[(0.43525, -0.8923), (0.86119, 0.78278), (-0.01348, 0.98093), (-0.56244, -0.75129)]
[(-0.73365, 0.28332), (0.63263, 0.17177), (-0.38398, -0.43497), (-0.31123, 0.73168)]
[(-0.57694, -0.87713), (-0.93622, 0.89397), (0.93117, 0.40775), (0.2323, -0.30718)]
[(0.91059, 0.75966), (0.60118, 0.73186), (0.32178, 0.88296), (-0.90087, -0.26367)]
[(0.3463, -0.89397), (0.99108, 0.13557), (0.50122, -0.8724), (0.43385, 0.00167)]
[(0.88121, 0.36469), (-0.29829, 0.21429), (0.31395, 0.2734), (0.43267, -0.78192)]