【问题标题】:How to write a (numerical) function using another (numerical) function?如何使用另一个(数字)函数编写(数字)函数?
【发布时间】:2016-03-13 06:08:43
【问题描述】:

(这可能是一个奇怪的问题,所以请不要告诉我“你为什么要这样做?”。)

我想知道是否有方法、技巧或工具,或者......使用另一个函数编写函数(具体语言并不重要)。例如,假设给定一个函数“power”,定义如下:

int power (int n) { return n == 0 ? 1 : 2 * power (n - 1); }

并假设您被要求编写,使用该函数或(甚至更好)通过转换该函数,另一个计算例如卢卡斯数(2、1、3、4、7、11、18、29 , 47, 76, 123, 199, 322, 521, ...)。当然,使用给定函数的简单方法是:

int lucas (int n) { ... + power (n) - power (n) + ... }

但这不是我正在寻找的答案。同样,转换函数的简单方法是删除它的主体并改写另一个,但这显然不是我想要做的。

【问题讨论】:

  • 有一个用于计算需要指数的卢卡斯数的封闭式公式:pow (0.5 + 0.5 * sqrt(5.0), n) + pow(0.5 - 0.5 * sqrt(5.0), n)。你指的是这个吗?
  • 是和不是。是的,因为它是给定示例的答案(用 pow 计算卢卡斯数),但不是,因为我在问是否有更普遍的方法可以做到这一点(如果你被赋予了另一个函数而不是“power”作为基础和另一个函数比“lucas”来写)。
  • 在这种情况下,您的问题尚不清楚(因此,我将投票结束)。一般来说,在很多情况下,一个数学函数可以用另一个数学函数来表示,例如tan(x) = sin(x) / cos(x)。这些是数学恒等式,与编程问题(本网站的内容)的联系尚不清楚。对于数学恒等式,您可能想查询Mathematics Stackexchange
  • 我同意你的观点,这个问题可能更适合数学 Stackexchange。与编程的联系(至少在我看来)是数字序列可以(而且经常是?)由函数定义(在编程意义上)。

标签: numerical-methods


【解决方案1】:

是的。 这在许多语言中都是相当标准的。

函数接受某种输入参数,并可能调用其他函数或自身,并最终返回某种值。

如果您有特定的语言,有人可能会向您展示 简单的例子。

【讨论】:

  • 当然(也许从我的问题来看这并不是那么明显......)我知道这一点。我要问的是:给定一个数值函数(例如“pow”),通常是否有一种方法可以编写另一个使用给定函数(“pow”)的数值函数(例如“lucas”)(并在计算中做一些有用的事情)。
  • 是的。一般的方法就是调用函数。
猜你喜欢
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多