Aşağıdaki senaryo bana birkaç kez oldu.
Belli bir sorunu çözen bir algoritma programladım. İyi çalışır ve doğru çözümleri bulur. Şimdi, algoritmaya "çözüme nasıl ulaştığınıza dair tam bir açıklama yazın" deme bir seçeneğim var. Amacım, çevrimiçi gösterilerde, öğretici sınıflarda vb. Kullanılacak iyi bir tasarım deseni nedir?
ÖRNEK: En büyük ortak böleni bulmak için bu yöntemi uyguladığımı varsayalım . Geçerli uygulanan yöntem, doğru bir yanıt verir, ancak açıklama içermez. Yöntem gibi eylemlerini açıklamak için bir seçenek var istiyorum:
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.
Çıktı, hem konsolda hem de web tabanlı uygulamalarda kolayca görüntülenebilecek şekilde döndürülmelidir.
Açıklama gerekmediğinde algoritmanın gerçek zamanlı performansını etkilemeden, gerektiğinde açıklama sağlamak için iyi bir model nedir?