หากเราเขียนลำดับของตัวเลขเป็นค่าสัมประสิทธิ์ของชุดพลังงานชุดพลังงานนั้นจะเรียกว่า (ธรรมดา) ฟังก์ชันสร้าง (หรือ Gf) ของลำดับนั้น นั่นคือถ้าสำหรับฟังก์ชันF(x)
และชุดของจำนวนเต็มa(n)
เรามี:
a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x)
จากนั้นเป็นหน้าที่ของการสร้างF(x)
a
ตัวอย่างเช่นชุดรูปทรงเรขาคณิตบอกเราว่า:
1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x)
ดังนั้นการสร้างฟังก์ชั่นของการมี1, 1, 1, ...
1/(1-x)
หากเราแยกความแตกต่างทั้งสองข้างของสมการข้างบนและคูณด้วยx
เราจะได้ความเสมอภาคต่อไปนี้:
x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2
ดังนั้นการสร้างฟังก์ชั่นของการมี1, 2, 3, ...
x/(1-x)^2
การสร้างฟังก์ชั่นเป็นเครื่องมือที่ทรงพลังมากและคุณสามารถทำสิ่งที่มีประโยชน์มากมายกับพวกเขา คำแนะนำสั้น ๆ สามารถพบได้ที่นี่แต่สำหรับคำอธิบายที่ละเอียดมาก ๆ มีฟังก์ชั่นการสร้างหนังสือที่น่าทึ่ง
ในการท้าทายนี้คุณจะรับฟังก์ชั่น rational (ความฉลาดทางของสองชื่อประกอบด้วยหลายค่าสัมประสิทธิ์จำนวนเต็ม) เป็นอินพุทเป็นสองอาร์เรย์ของสัมประสิทธิ์จำนวนเต็มแรกคือตัวเศษแล้วตัวส่วน ตัวอย่างเช่นฟังก์ชั่นf(x) = x / (1 - x - x^2)
จะถูกเข้ารหัสเช่นเดียวกับ[0, 1], [1, -1, -1]
ในอินพุต
โปรแกรมของคุณจะต้องพิมพ์ค่าสัมประสิทธิ์ของซีรีย์พาวเวอร์ที่เท่ากับฟังก์ชั่นการสร้างหนึ่งค่าต่อบรรทัดโดยเริ่มจากสัมประสิทธิ์x
แล้วx^2
เป็นต้น
ตัวอย่าง:
[1], [1, -1] -> 1, 1, 1, 1, 1, 1, 1, ...
[1], [2, -2] -> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, ...
[0, 1], [1, -2, 1] -> 1, 2, 3, 4, 5, 6, 7, 8, ...
[0, 1], [1, -1, -1] -> 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
[1], [1, -2] -> 1, 2, 4, 8, 16, 32, 64, 128, ...
[0, 1, 1], [1, -3, 3, -1] -> 1, 4, 9, 16, 25, 36, ...