คุณมีพหุนามจำนวนมากที่อ้างว้างดังนั้นทำให้พวกเขามีเพื่อนบางคน (ที่ไม่ขู่ว่าจะแทง)!
สำหรับพหุนามของดีกรีn
มีเมทริกซ์คิวบ์n by n
คู่หูสำหรับมัน คุณต้องสร้างฟังก์ชั่นที่ยอมรับรายการค่าสัมประสิทธิ์สำหรับพหุนามทั้งจากน้อยไปหามาก ( ) หรือจากมากไปหาน้อย ( ) (แต่ไม่ใช่ทั้งคู่) และเอาท์พุทเมทริกซ์สหาย a + bx +cx^2 + …
ax^n + bx^(n-1) + cx^(n-2)+…
สำหรับพหุนามc0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n
เมทริกซ์คู่หูคือ
(0, 0, 0, ..., -c0 ),
(1, 0, 0, ..., -c1 ),
(0, 1, 0, ..., -c2 ),
(...................),
(0, 0, ..., 1, -cn-1)
โปรดทราบว่าค่าสัมประสิทธิ์สำหรับx^n
คือ 1 สำหรับค่าอื่น ๆ ให้หารค่าสัมประสิทธิ์ที่เหลือทั้งหมดด้วยx^n
's นอกจากนี้ค่า 1 จะถูกชดเชยจากเส้นทแยงมุม
หากภาษาที่คุณใช้มีฟังก์ชันหรือโมดูลอยู่แล้วคุณไม่สามารถใช้งานได้ - คุณต้องเขียนด้วยตัวคุณเอง
ตัวอย่างเช่นถ้าคุณมี4x^2 – 7x + 12
ค่าสัมประสิทธิ์ในลำดับที่มีและลำดับถัดลงมา(12, -7, 4)
(4, -7, 12)
ฟังก์ชั่นหรือโปรแกรมควรส่งออก[(0, -3.0), (1, 1.75)]
สำหรับการสั่งซื้อทั้ง ระบุคำสั่งซื้อที่ยอมรับรหัสของคุณ พหุนามขั้นต่ำควรเป็นกำลังสอง ค่าสัมประสิทธิ์ถูก จำกัด ให้เป็นจำนวนจริง
ด้านล่างเป็นตัวอย่าง - ผลลัพธ์ของคุณไม่จำเป็นต้องตรงกับการจัดรูปแบบที่สวยงาม แต่ควรส่งออกแถว (ใน()
) ของเมทริกซ์ตามลำดับ
เรียงลำดับขึ้น:
input:
[3., 7., -5., 4., 1.]
output:
[(0, 0, 0, -3.),
(1, 0, 0, -7.),
(0, 1, 0, 5.),
(0, 0, 1, -4.)]
input:
[-4., -7., 13.]
output:
[(0, 0.30769231),
(1, 0.53846154)]
input:
[23., 1., 92., 8., -45., 88., 88.]
output:
[(0, 0, 0, 0, 0, -0.26136364),
(1, 0, 0, 0, 0, -0.01136364),
(0, 1, 0, 0, 0, -1.04545455),
(0, 0, 1, 0, 0, -0.09090909),
(0, 0, 0, 1, 0, 0.51136364),
(0, 0, 0, 0, 1, -1. )]
มากไปน้อย:
input:
[1., 4., -5., 7., 3.]
output:
[(0, 0, 0, -3.),
(1, 0, 0, -7.),
(0, 1, 0, 5.),
(0, 0, 1, -4.)]
input:
[13., -7., -4.]
output:
[(0, 0.30769231),
(1, 0.53846154)]
input:
[88., 88., -45., 8., 92.,1., 23.]
output:
[(0, 0, 0, 0, 0, -0.26136364),
(1, 0, 0, 0, 0, -0.01136364),
(0, 1, 0, 0, 0, -1.04545455),
(0, 0, 1, 0, 0, -0.09090909),
(0, 0, 0, 1, 0, 0.51136364),
(0, 0, 0, 0, 1, -1. )]
เดนนิสชนะด้วยจำนวน 20 ไบต์!