โดยไม่ต้องใช้ฟังก์ชันแฟคตอริ่ง / พหุนามใด ๆ ในตัวปัจจัยพหุนามสมบูรณ์เป็น irreducibles เหนือจำนวนเต็มหรือเขต จำกัด
อินพุต
โปรแกรม / ฟังก์ชั่นของคุณจะได้รับหมายเลขเฉพาะ (หรือศูนย์) จำนวนหนึ่งn
เป็นอินพุต สนาม / แหวนเป็นฟิลด์ จำกัด ของการสั่งซื้อที่ (เช่นZ/nZ
) หรือเพียงแค่Z
ถ้ามีn
0
โปรแกรมของคุณอาจล้มเหลวหากn
ไม่ใช่0
หรือเป็นตัวเฉพาะ F[x]
พหุนามจะอยู่ใน
โปรแกรม / ฟังก์ชั่นของคุณจะได้รับพหุนามเป็นอินพุต
มีความยืดหยุ่นในการป้อนข้อมูลให้แน่ใจว่าได้ระบุวิธีที่คุณต้องการรับอินพุต ตัวอย่างเช่นพหุนามสามารถป้อนเป็นรายการของค่าสัมประสิทธิ์หรือในรูปแบบที่คนส่วนใหญ่คาดหวัง (เช่น:) 50x^3 + x^2
หรือรูปแบบที่เหมาะสมอื่น ๆ หรือรูปแบบของการป้อนสนาม / แหวนอาจแตกต่างกัน
เอาท์พุต
โปรแกรม / ฟังก์ชั่นของคุณจะเอาท์พุทพหุนามสมบูรณ์ คุณอาจขยายหลายราก (เช่น(x + 1)(x + 1)
แทน(x + 1)^2
) คุณสามารถลบช่องว่างระหว่างตัวดำเนินการไบนารี *
คุณอาจจะแทนที่ด้วยการตีข่าว คุณสามารถแทรกช่องว่างในสถานที่แปลก ๆ คุณสามารถจัดลำดับปัจจัยต่าง ๆ ตามที่คุณต้องการ ระยะก็อาจจะx
สามารถเขียนเป็น; แต่ระยะคงที่อาจจะไม่ได้มี สัญญาณภายนอกนั้นอนุญาตให้ทำได้ คุณอาจไม่มีคำศัพท์ที่อยู่ข้างหน้าพวกเขาจะต้องถูกทิ้งไว้ คำที่เป็นผู้นำของแต่ละปัจจัยจะต้องเป็นบวกสัญญาณเชิงลบจะต้องอยู่นอก(x)
x
x^1
x^0
+
0
กรณีทดสอบโปรแกรมของคุณควรสามารถสร้างผลลัพธ์สำหรับแต่ละสิ่งเหล่านี้ในเวลาที่เหมาะสม (พูด <<2 ชั่วโมง):
การป้อนข้อมูล: 2, x^3 + x^2 + x + 1
เอาท์พุท: (x + 1)^3
การป้อนข้อมูล: 0, x^3 + x^2 + x + 1
เอาท์พุท: (x + 1)(x^2 + 1)
การป้อนข้อมูล: 0, 6x^4 – 11x^3 + 8x^2 – 33x – 30
เอาท์พุท: (3x + 2)(2x - 5)(x^2 + 3)
การป้อนข้อมูล: 5, x^4 + 4x^3 + 4x^2 + x
เอาท์พุท: x(x + 4)(x + 4)(x + 1)
การป้อนข้อมูล: 0, x^5 + 5x^3 + x^2 + 4x + 1
เอาท์พุท: (x^3 + 4x + 1)(x^2 + 1)
ขอขอบคุณเป็นพิเศษกับปีเตอร์เทย์เลอร์ที่วิจารณ์การทดสอบของฉัน
p
มีองค์ประกอบ{0, 1, ... , p-1}
และมันก็อยู่ภายใต้นอกจาก / p
คูณพอควร โดยทั่วไปลดสัมประสิทธิ์ใด ๆ ตาม mod p
และคุณก็ทำได้ดี นอกจากนี้โปรดทราบว่าหากมีรากเช่นตัวประกอบเชิงเส้นหนึ่งใน{0, ... , p-1}
นั้นจะสร้าง0
(mod p
) เมื่อเสียบเข้ากับพหุนาม
Z
เป็นปัจจัยมากกว่าZ/pZ
สำหรับเหมาะp
ลิฟท์แล้ว Hensel อย่างไรก็ตามวิธีการตีกอล์ฟนั้นน่าจะเป็น (และนี่คือเส้นทางที่ฉันกำลังมองหาอยู่) เพื่อใช้ขอบเขตที่เรียบง่ายกับความสูงของปัจจัยและดุร้ายบังคับมัน