cpp-interview/Problems/NeumannNeighborProblem/Formula/README.md
2018-12-26 01:23:18 +08:00

853 B
Raw Blame History

冯诺依曼邻居问题(通项公式)

代码

冯诺依曼邻居问题(通项公式)代码

问题说明

某算法从一个1×1的方格开始每次都会在上次图形的周围再加上一圈方格在第n次的时候要生成多少个方格下图给出了n = 012是的结果。

功能说明

本程序使用通项公式求解。

代码简述

若设第n次生成的方格数是a(n),则:

a(1) = a(0) + 4 * 1 a(2) = a(1) + 4 * 2 a(3) = a(2) + 4 * 3 ... a(n) = a(n-1) + 4 * n

化简可得:

a(n) - a(1) = 4 * (n + (n-1) + ... + 2 )

即:

a(n) = 2 * n*n + 2 * n + 1

则可得出a(n)的通项公式,即可用通项公式直接求解。

在程序中用Neumann2_3_12函数返回a(n)的值。