สถานการณ์ต่อไปนี้เกิดขึ้นกับฉันหลายครั้ง
ฉันตั้งโปรแกรมอัลกอริทึมที่แก้ปัญหาบางอย่าง มันทำงานได้ดีและค้นหาวิธีแก้ไขที่ถูกต้อง ตอนนี้ฉันต้องการมีตัวเลือกในการบอกอัลกอริทึม "เขียนคำอธิบายโดยละเอียดเกี่ยวกับวิธีการแก้ปัญหา" เป้าหมายของฉันคือสามารถใช้อัลกอริทึมในการสาธิตออนไลน์ชั้นเรียนกวดวิชาและอื่น ๆ ฉันยังต้องการมีตัวเลือกในการเรียกใช้อัลกอริทึมแบบเรียลไทม์โดยไม่มีคำอธิบาย รูปแบบการออกแบบที่ดีที่จะใช้คืออะไร?
ตัวอย่าง: สมมติว่าผมใช้วิธีนี้ในการหาตัวหารร่วมมาก วิธีที่ใช้ในปัจจุบันส่งกลับคำตอบที่ถูกต้อง แต่ไม่มีคำอธิบาย ฉันต้องการมีตัวเลือกสำหรับวิธีการอธิบายการกระทำของมันเช่น:
Initially, a=6 and b=4. The number of 2-factors, d, is initialized to 0.
a and b are both even, so we divide them by 2 and increment d by 1.
Now, a=3 and b=2.
a is odd but b is even, so we divide b by 2.
Now, a=3 and b=1.
a and b are both odd, so we replace a by (a-b)/2 = 1.
Now, a=1 and b=1.
a=b, so the GCD is a*2^d = 2.
ควรส่งคืนเอาต์พุตเพื่อให้สามารถแสดงได้อย่างง่ายดายทั้งในคอนโซลและในแอปพลิเคชันบนเว็บ
อะไรคือรูปแบบที่ดีในการให้คำอธิบายเมื่อจำเป็นในขณะที่ไม่กระทบต่อประสิทธิภาพของอัลกอริทึมแบบเรียลไทม์เมื่อไม่ต้องการคำอธิบาย