草庐IT

java - Horner 的小数部分递归算法 - Java

我正在尝试创建一种递归方法,该方法使用Horner算法将以n为底的小数转换为以10为底的小数。我在这里和所有地方都进行了搜索,但找不到任何地方详细处理小数部分。提醒一下,我在递归方面很弱,因为我还没有在我的编程课上正式学习它,但已经被另一个类(class)分配了。我能够创建一个方法来处理数字的整数部分,而不是小数部分。我觉得我写的方法相当接近,因为它让我的测试数字的答案加倍(可能是因为我正在测试基数2)。传递的第一个参数是一个填充有系数的int数组。我不太关心系数的顺序,因为我正在使所有系数相同以对其进行测试。第二个参数是基础。第三个参数初始化为系数数减1,我也将其用于整数部分方法。我

用于使用 Horner 方法进行多项式计算的 C++ constexpr

我希望能够使用Horner方法计算多项式的导数并将结果用作constexpr.这看起来非常平凡,但我遗漏了一些明显的东西,因为编译器说我超出了最大递归深度。核心递归发生在这里:templateconstexprXevalImpl(constC&c,constX&x){returni>=(C::SizeAtCompileTime-1-d)?1:evalImpl(c,x);}你甚至不需要知道Horner的方法就知道这里发生了什么,所以我尽可能地剥离了代码,甚至删除了如何x使用,因为它似乎与我遇到的问题无关。想法是当一个索引i等于多项式的次数Degree::value减去导数的阶数d,那么递