ในการท้าทายนี้เราพยายามที่จะแก้ปัญหาที่สำคัญสองอย่างพร้อมกัน พวกเขาเป็น:
- รับจำนวนเต็มaและb , บอกว่าa -1 เป็นจำนวนเฉพาะ
- รับจำนวนเต็มaและbส่งคืนnCr (a, b)
คุณต้องเขียนโปรแกรมสองโปรแกรมหนึ่งที่ทำงานแรกและอีกอันหนึ่งทำงาน เนื่องจากเราต้องการแก้ไขปัญหาทั้งสองพร้อมกันจึงขอแนะนำให้ใช้โค้ดชิ้นเดียวกันในโปรแกรมทั้งสอง
เกณฑ์การให้คะแนน
คะแนนคำตอบคือระยะทางของ Levenshtein ระหว่างสองโปรแกรม คะแนนต่ำกว่าดีกว่า ในกรณีที่เสมอกันคำตอบด้วยรหัสที่สั้นที่สุดของทั้งสองโปรแกรมจะชนะ คุณสามารถใช้สคริปต์นี้เพื่อคำนวณคะแนนการแก้ปัญหาของคุณ
กฎระเบียบ
- คุณต้องเขียนโปรแกรมสองโปรแกรมในภาษาเดียวกันกับที่แก้งานที่อธิบายไว้ข้างต้น คุณสามารถใช้วิธีการ I / O ใด ๆ ที่คุณต้องการ สำหรับภารกิจที่ 1 คุณสามารถส่งกลับค่าความจริง / เท็จหรือเลือกสองค่าเพื่อหมายถึงความจริงและเท็จและคืนค่าเหล่านั้นตามลำดับ เช่น. คุณสามารถเลือกได้ว่า
"prime"
หมายถึงจริงและ"not prime"
หมายถึงเท็จ - อัลกอริทึมที่คุณใช้จะต้องใช้งานได้กับอินพุตที่เป็นไปได้ทั้งหมด แต่ก็โอเคถ้ารหัสล้มเหลวสำหรับจำนวนมากเนื่องจากข้อ จำกัด ของประเภทหมายเลขที่ใช้ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้อง
ไม่มีส่วนย่อยของโปรแกรมที่จะต้องแก้ปัญหาคือ รหัสจะต้องไม่ทำงานหากมีการลบอักขระใด ๆ ออก ตัวอย่างเช่นรหัสต่อไปนี้ไม่ถูกต้องเนื่องจากเป็นไปได้ที่จะลบบล็อกอื่นที่ไม่ได้ใช้โดยไม่ทำให้โปรแกรมแตก:
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
ไม่อนุญาตช่องโหว่มาตรฐาน
กรณีทดสอบ
ข -1 เป็นสำคัญ?
a b
1 1 false
2 3 true
5 2 false
2 5 true
4 3 false
2 7 true
nCr
a b nCr(a,b)
1 1 1
5 2 10
4 3 4
10 7 120
12 5 792