特殊信息记录

来源:互联网 发布:小米系统内存优化级别 编辑:程序博客网 时间:2024/06/15 04:46

1.卡特兰数Catalan

其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ..原理

h(0)=1,h(1)=1;

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
另类递推式:
h(n)=h(n-1)*(4*n-2)/(n+1);
递推关系的解为:
h(n)=C(2n,n)/(n+1) (n=0,1,2,...)
递推关系的另类解为:

h(n)=c(2n,n)-c(2n,n+1)(n=0,1,2,...)

运用:

1.一个(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

2.凸多边形三角划分。

3.给定节点组成二叉树。

2.康托展开

有一个序列,长度为n,其所有元素都不相同,为了便于哈希,我们将其转换成0~n!的值,表示序列在所有排列中的位置。

int hash[9]={1,1,2,6,24,120,720,5040,40320};int get_hash(string e)//获得hash值,倒着来,不过效果一样,我们只是用于标识唯一性{    int s=0,i,j,k;    for(i=0;i<9;i++)    {        k=0;        for(j=0;j<i;j++)            if(e[j]>e[i])k++;        s+=k*hash[i];    }    return s;}


2.勾股数

链接:勾股数-维基百科

勾股数,又名商高数或毕氏三元数(Pythagorean triple),是由三个正整数组成的数组;能符合勾股定理(毕式定理)“a^2 + b^2 = c^2 ”之中, (a, b, c) 的正整数解。而且,基于勾股定理的逆定理,任何边长是勾股数组的三角形都是直角三角形。

勾股数举例:


(3,4,5)
(5,12,13)
(6,8,10)
(7,24,25)
(8,15,17)
(20,21,29)
如果 (a, b, c) 是勾股数,它们的正整数倍数,也是勾股数,即 (na, nb, nc) 也是勾股数。若果 a, b, c 三者互质(它们的最大公因数是 1),它们就称为素勾股数。

以下的方法可用来找出勾股数。设 m > n 、 m 和 n 均是正整数,
a = m^2 − n^2,
b = 2*m*n,
c = m^2 + n^2
若 m 和 n 是互质,而且 m 和 n 其中有一个是偶数,计算出来的 a, b, c 就是素勾股数。(若 m 和 n 都是奇数, a, b, c 就会全是偶数,不符合互质。)

3.抛针问题

问题介绍:将凸包放在一个充满间距为D的平行线的平面上,求其与直线相交的概率

P=L/(πD)。其中L为凸包的周长。

过程:

一条边放在这个平面上的概率是Pi=2Li/(πD)(抛针问题的结论)

P=1/2∑Pi=L/(πD)。

0 0
原创粉丝点击