什么是局部努塞尔数
首先,努塞尔数是指以下递归式定义的一组数:

N(0) = 0
N(1) = 1
N(n + 1) = N(n) + 2 * N(n - 1),其中 n >= 1
而局部努塞尔数则是指把某个非负整数的所有数字全排列得到的数中,每个数字和其相邻的数字之和的和。
比如说,对于数字 123,它的全排列有 123, 132, 213, 231, 312, 321,它们分别的局部努塞尔数为:
123: 3
132: 6
213: 6
231: 9
312: 8
321: 6
可以发现,每个数字的局部努塞尔数都不同。
一些有趣的性质
局部努塞尔数有一些有趣的性质。
首先,局部努塞尔数最小的数字是 124。
其次,任何数字的局部努塞尔数都不会超过 27。
还有,不能组成局部努塞尔数的数字非常有限。
具体来说,所有的一位数和两位数都不能组成局部努塞尔数,而三位数、四位数以及部分五位数可以组成局部努塞尔数。比如说,局部努塞尔数为 27 的数字有 1248 和 1258。
局部努塞尔数的计算方法
如何计算某个数字的局部努塞尔数呢?
一种朴素的方法是,先枚举出这个数字的所有全排列,然后分别计算它们的局部努塞尔数,最后取其中的最大值即可。
不过这种方法的时间复杂度是阶乘级别的,显然不太可取。
另一种更高效的方法是,考虑把数字按照升序排列,然后逐位向左移动,每次移动一位,直到数字的最高位变成 1。比如说,对于数字 1258,它逐步变成以下几个数字:
1258 -> 2581 -> 5812 -> 8124 -> 1248 -> 2481 -> 4812 -> 8125
每次移动后,我们可以通过一些简单的计算得到新数字的局部努塞尔数,并取其中的最大值即可。
结论与应用
局部努塞尔数是一个很有趣的数学对象,它有很多值得研究的性质和应用。
比如说,通过计算局部努塞尔数,我们可以找到一些有趣的数字,比如素数,或者将某些数字翻转后得到的数字。
此外,局部努塞尔数还可以用来刻画某些图形的形态。比如说,在一个网格图中,如果某个格子的左上、左边、上边的三个格子的颜色之和为某个固定的数(比如 10),那么这个网格图就可以被称为 10-orthogonal。
综上,局部努塞尔数是一个十分有趣的数学对象,有着很多值得深入探究的性质和应用。