Conway 常数
基本介绍
这里需要先引入外观序列(Look-and-say)序列
Look-and-say数列是指以下特点的整数序列: 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, …… 它以数字1开始,序列的第n项是对第n-1项的描述。比如第5项是111221,描述就是3个1,2个2,1个1, 所以下一项(第六项)就是312211。
Conway常数的由来
关于这个方程和Conway常数的由来,可以参考下面这篇文章。
大概就是Conway发现了一个定理:从数列第8项开始的每一项都可以由92的基本串中的某些构成,这92个串相当于原子串。
我们可以构造一个 92 × 92 92\times 92 92×92的矩阵 T T T,矩阵的每一列代表第 i i i串迭代一次后会变成哪些基本串。
举例来说,第 2 个基本串是 1112133 ,它的下一个数就是 31121123 , 是由第 64 个基本串和第 62 个基本串拼接组成的。
这个特征方程就是上述的71次多项式方程,而Conway常数就是该方程的唯一正实数解。
外观序列的生成和程序代码
主要就是利用了递归思想,我们要求第 n n n个序列就是要知道第 n − 1 n-1 n−1序列,然后就一直递归,直到第一个序列 1 1 1。
代码
class Solution {
public:
string countAndSay(int n) {
if(n==1) return "1";
string s=countAndSay(n-1);
int m=s.size();
string ans;
char ch=s[0];
int cnt=0;
for(int i=0;i<m;i++){
if(ch==s[i]) cnt++;
else {
ans+=to_string(cnt)+ch;
cnt=1,ch=s[i];
}
}
if(cnt) ans+=to_string(cnt)+ch;
return ans;
}
};
例题
LeetCode-18.外观数列
黄金分割比
以肚脐眼为分界,人的上本身与下半身之比,下半身与全身之比为 0.618 0.618 0.618左右是最优的。
Φ = 5 − 1 2 = 1 Φ + 1 ≈ 0.6180339887 \Phi=\dfrac{\sqrt{5}-1}{2}=\dfrac{1}{\Phi+1}\approx 0.6180339887 Φ=25 −1=Φ+11≈0.6180339887
斐波那契数列 { 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 … } \{1,1,2,3,5,8,13,21\dots\} {1,1,2,3,5,8,13,21…}当 n n n越大时,后一项与前一项之比越来接近 1 Φ ≈ 1.6180339887 \dfrac{1}{\Phi}\approx 1.6180339887 Φ1≈1.6180339887。