บทนำ
มนุษย์เป็นเผ่าพันธุ์ที่น่าทึ่ง แต่เราก็อาจจะเข้าใจได้ยากในบางครั้ง - โดยเฉพาะอย่างยิ่งสำหรับคอมพิวเตอร์ โดยเฉพาะอย่างยิ่งเราดูเหมือนจะชอบเขียนชื่อพหุนามในรูปแบบที่ซับซ้อนมากและมีกฎเกณฑ์ที่ไม่เจาะจง
โปรแกรมสั้นที่สุดที่คุณสามารถเขียนเพื่อจัดรูปแบบพหุนามถูกต้องโดยใช้กฎเหล่านี้คืออะไร
ท้าทาย
อินพุต
รายการจำนวนเต็มระหว่าง -1000 ถึง 1,000 (รวม) แสดงถึงค่าสัมประสิทธิ์ของพหุนามกับรายการสุดท้ายเป็นค่าสัมประสิทธิ์ของ x ^ 0 (ค่าคงที่) ครั้งที่สองเป็นค่าสัมประสิทธิ์ของ x ^ 1 เป็นต้น
เอาท์พุต
สตริงที่แสดงพหุนามนี้ในรูปแบบทางคณิตศาสตร์ที่จัดรูปแบบอย่างถูกต้องของมนุษย์
กฎ:
- เครื่องหมายบนสัมประสิทธิ์นำจะแสดงเฉพาะเมื่อมันเป็นลบ
Right: -x^2+3
Wrong: +x^2+3
- ส่วนประกอบที่มีค่าสัมประสิทธิ์เป็น 0 จะไม่ถูกพิมพ์ (ยกเว้นกรณีมุมซึ่งค่าสัมประสิทธิ์ทั้งหมดเป็น 0 *)
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- ค่าสัมประสิทธิ์
-1
และ+1
จะแสดงโดยไม่ต้อง 1 ยกเว้นว่าเป็นค่าคงที่
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- เลขชี้กำลังจะแสดงก็ต่อเมื่อมันมีค่ามากกว่า 1 และตัวแปรจะแสดงก็ต่อเมื่อเลขชี้กำลังมีค่ามากกว่า 0
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * ตัวเรือนมุม: ในขณะที่ค่าศูนย์มักส่งผลให้ไม่พิมพ์องค์ประกอบนั้นหากค่าสัมประสิทธิ์ทั้งหมดเป็นศูนย์จะต้องพิมพ์ค่าคงที่ 0
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- นี่คือโค้ดกอล์ฟดังนั้นผู้ชนะจะเป็นโปรแกรมที่มีจำนวนไบต์น้อยที่สุด
ตัวอย่างอินพุตและเอาต์พุต
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
ฉันหวังว่าจะเห็นทางออกของคุณ มีความสุข!
แก้ไข:
- คุณสามารถล้อมรอบการดำเนินงานโดยช่องว่างหากคุณต้องการ ดังนั้น
3x+5
และ3x + 5
ทั้งคู่ก็ดี3x+ 5
และ3x +5
ไม่ใช่ - หากคุณต้องการสร้างตัวอักษรเลขชี้กำลังจริง (พูดเป็นเท็กซ์) ที่ได้รับอนุญาตเนื่องจากใกล้เคียงกับที่มนุษย์เขียนมากขึ้น
- ค่าสัมประสิทธิ์จะต้องปรากฏขึ้นโดยไม่มีทศนิยมเช่น
9x^2
ถูกต้อง9.0x^2
ไม่ใช่
1x
-> x
การเปลี่ยนไม่เปลี่ยนเข้าไป21x^2
2x^2
3x^2 + 4
เมื่อเทียบกับ3x^2+4
?