06_Func_22.py
WARNING
โค้ดกาวมากครับ อย่าลอกเลย 😭😭😭
ทำเองเถอะนะครับ จะได้ทำข้อสอบได้ 🥲🥲🥲
py
# pylint: disable=C,W
from functools import reduce
import math
def distance1(x1, y1, x2, y2):
# คืนระยะห่างระหว่างจุด (x1,y1) กับ (x2,y2)
# ตัวอย่างการใช้: d1 = distance1(0.0, 0, 3, 4) ได้ d1 = 5.0
return math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
def distance2(p1, p2):
# p1 และ p2 เป็นลิสต์
# แต่ละลิสต์แทนจุด ที่เป็นลิสต์ที่ภายในมี 2 ช่อง เก็บพิกัด x กับ y
# คืนระยะระหว่างจุด p1 กับ p2
# ตัวอย่างการใช้: d2 = distance2([0.0, 0], [3, 4]) ได้ d2 = 5.0
return distance1(p1[0], p1[1], p2[0], p2[1])
def distance3(c1, c2):
# c1 และ c2 แทนวงกลม 2 วง
# แต่ละลิสต์เป็นลิสต์ 3 ช่อง เก็บพิกัด x กับ y (ของจุดศูนย์กลาง) และรัศมี
# คืนระยะระหว่างจุดศูนย์กลางของ c1 กับ c2 และค่าจริง/เท็จว่า c1 กับ c2 แตะหรือทับกันหรือไม่
# ตัวอย่างการใช้: d3,overlap = distance3([0.0, 0, 1], [5, 0, 2])
# ได้ d3 = 5.0, overlap = False
d = distance2(c1, c2)
return (d, d <= c1[2] + c2[2])
def perimeter(points):
# points เป็นลิสต์ของจุดต่าง ๆ แต่ละจุดเป็นลิสต์ 2 ช่อง (เก็บพิกัด x และ y)
# จุดเหล่านี้คือลำดับของมุมของรูปหลายเหลี่ยม (รูป k เหลี่ยมก็มี k จุด, k>=3)
# คืนความยาวรอบรูปของรูปหลายเหลี่ยมที่กำหนดโดย points
return reduce(lambda prev, curr: prev +
distance2(points[curr],
points[curr + 1]),
range(len(points) - 1),
0) + distance2(points[0],
points[-1])
exec(input().strip())
People who plagiarize Com Prog HW: | People who do Com Prog HW by themself: |
|
|
|---|

