ในสนามกอล์ฟรหัสนี้คุณจะต้องมีการกำหนดทิศทางของการยิงที่สั้นที่สุดที่นิยมตรงnเบาะรองนั่งก่อนที่จะตกไปอยู่ในกระเป๋า
โต๊ะบิลเลียดเป็นโต๊ะพูล 6 พ็อตที่มีคุณสมบัติดังต่อไปนี้:
- ขนาดเป็นตัวแปร ( a x b )
- ไม่มีแรงเสียดทาน: ลูกบอลจะกลิ้งอย่างถาวรจนกว่ามันจะตกลงไปในกระเป๋า
- ขนาดกระเป๋าและลูกบอลเกือบเป็นศูนย์ ซึ่งหมายความว่าลูกจะตกอยู่ในกระเป๋าเฉพาะในกรณีที่พวกเขามีตำแหน่งเดียวกัน
- ลูกบอลถูกวางไว้ที่รูซ้ายล่างที่จุดเริ่มต้น (แต่ไม่ตกอยู่ในนั้น)
สร้างโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่ใช้มิติ ( , ข ) ของตารางและจำนวนของหมอนอิงที่จะตีnเป็น input และผลตอบแทนในมุมองศาของเส้นทางที่สั้นที่สุดกดปุ่มตรงnเบาะรองนั่งก่อนที่จะตกไปอยู่ในกระเป๋า
- a > 0
- b > 0
- 0 <= n <10,000000
- 0 < alpha <90 (เป็นองศา) ความแม่นยำ: อย่างน้อย 10 ^ -6
ตัวอย่าง :
ด้วยa = 2, b = 1, n = 1 มีสามเส้นทางที่เป็นไปได้: (1) (2) (3) ในรูปต่อไปนี้ จำนวน (1) สั้นที่สุดดังนั้นเอาต์พุตควรเป็น atan (2) = 63.43494882292201 องศา
คำตอบสำหรับa = 2, b = 1, n = 4 คือ atan (4/3) = 53.13010235415598 องศา
ตัวอย่างทดสอบ:
a = 2, b = 1, n = 1, -> alpha = 63.43494882292201
a = 2, b = 1, n = 2, -> alpha = 71.56505117707799
a = 2, b = 1, n = 3, -> alpha = 75.96375653207353
a = 2, b = 1, n = 4, -> alpha = 53.13010235415598
a = 2, b = 1, n = 5, -> alpha = 59.03624346792648
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 4.76, b = 3.64, n = 27, -> alpha = 48.503531644784466
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 8, b = 3, n = 33, -> alpha = 73.24425107080101
a = 43, b = 21, n = 10005, -> alpha = 63.97789961246943
นี่คือรหัส / บิลเลียดกอล์ฟ: รหัสที่สั้นที่สุดชนะ!
n
หมอนอิงหรืออย่างน้อยn
หมอน?