以下情况发生在我身上几次。
我编写了解决特定问题的算法。它工作正常,并找到正确的解决方案。现在,我希望有一个选项可以告诉算法“写出有关如何获得解决方案的完整说明”。我的目标是能够在在线演示,教程课程等中使用该算法。我仍然希望有一个选项可以实时运行算法,而无需解释。什么是好的设计模式?
示例:假设我实现了用于找到最大公约数的方法。当前实现的方法返回正确答案,但没有解释。我想为该方法提供一个选项来解释其操作,例如:
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.
应该返回输出,以便可以在控制台和基于Web的应用程序中轻松显示输出。
什么是在需要时提供解释,而又在不需要解释时又不损害算法实时性能的良好模式?