Algorithm 算法:使用分解递归计算总价

Algorithm 算法:使用分解递归计算总价,algorithm,recursion,Algorithm,Recursion,我正在设计一个计算产品总价格的算法 产品可以由复合成分(X、Y、Z)或基本成分(a、b、c)组成,每种基本成分都与价格相关 复合成分本身由其他复合物或成分组成。例如:X(复合材料)=Z(复合材料)+a(基本成分) 现在,为了计算产品的总价格,我现在使用递归算法,将每个复合成分分解为基本成分,并汇总其价格 我想知道是否已经有更好的算法来解决这类问题 谢谢。不,没有更好的算法了。你可以通过记忆(对于大型问题空间)来增强,这样你只需计算一次每个组合。所以这是尾部递归?不,这不是尾部递归。记忆化意味着您

我正在设计一个计算产品总价格的算法

产品可以由复合成分(X、Y、Z)或基本成分(a、b、c)组成,每种基本成分都与价格相关

复合成分本身由其他复合物或成分组成。例如:
X(复合材料)=Z(复合材料)+a(基本成分)

现在,为了计算产品的总价格,我现在使用递归算法,将每个复合成分分解为基本成分,并汇总其价格

我想知道是否已经有更好的算法来解决这类问题


谢谢。

不,没有更好的算法了。你可以通过记忆(对于大型问题空间)来增强,这样你只需计算一次每个组合。所以这是尾部递归?不,这不是尾部递归。记忆化意味着您存储由组合键控的计算价格。尾部递归只有在组合只能由1个(非记忆的)元素组成时才可能,这显然不是这里的情况。这让我想起了递归计算阶乘(n)。要么声明一个存储合成成分价格的Hashmap,要么将合成成分的价格直接存储在对象中。