python - 以编程方式求解函数方程

标签 python function math

给定:

F(F(n)) = n

F(F(n + 2) + 2) = n

F(0) = 1

其中 n 是一个非负整数。 F(129) = ?

我们如何以编程方式求解此类函数方程?我选择的编程语言是 Python。

最佳答案

用最一般的术语来说,函数方程真的很难。几乎每个国际数学竞赛都有其中一个,这并非巧合,通常看起来和你写的一样无辜。解决它们的方法从简单的归纳法到无限维 Banach 空间分析不等,而且解决它们的通用编程方法是不太可能的。

在这种特殊情况下,这是一种直接的方法:

假设对于任意两个整数 m,n 我们有 F(m) = F(n) = k。但是然后 m = F(F(m)) = F(k) = F(F(n)) = n :因此 m = n 和 F 永远不会在两个不同的输入上采用相同的值。但是我们知道 F(F(n)) = n = F(F(n+2)+2) - 因此 F(n) 和 F(n+2)+2 必须是相同的数字 - 也就是说, F(n+2) == F(n) - 2 == F(n-2) - 4 = ... 。现在我们知道 F(0) = 1,所以 F(1) = F(F(0)) = 0。但是 F(129) = F(127) - 2 = F(125) - 4 = ... = F(1) - 128 = -128

这就是您的解决方案 - 但用于解决任何变化的机械算法并不存在。

关于python - 以编程方式求解函数方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4835484/

相关文章:

python - 为什么 python 模块名称有一些大写字母,但总是以小写形式导入?

javascript - 为什么我的函数值被调用了两次?

javascript - 将 javascript 数组传递给 onclick 属性的函数

c++ - 在 C++ 中切换矩阵列和行

python - Sympy 不会评估 2x 但会评估 x*2

python - 如何检查在 Python 中使用 Walrus 运算符时是否按下了 Enter 键?

python - Matplotlib 未设置最小 y 轴

python - 如何找到距其他三个点特定距离的点的坐标?

javascript - 使用 jQuery 将带有参数的函数附加到动态创建的 div

android - 我如何获得一个矩阵,我在其中平移然后旋转然后平移然后再次旋转?