- 博客(10)
- 资源 (2)
- 问答 (3)
- 收藏
- 关注
转载 卡特兰数
首先引出问题:n个元素进栈,共有多少种出栈顺序我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出: f(1) = 1 //即 1 f(2) = 2 //即 12、21 f(3) = 5 //即 123、132、213、321、231然后我们来考虑f(4), 我们给4个元素编号为a,b,c,d,
2017-06-03 11:40:38 395
转载 c++指针的指针和指针的引用
为什么需要使用它们当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来的值。我们用下边的代码说明一下问题:int m_value = 1;void func(int *p){ p = &m_value;}int main(in
2017-05-28 16:41:06 296
转载 关于UNION
什么是union?翻译过来说,就是共用体,或者也叫联合体。说到了union,也就是共用体,就不得不说一下struct了,当我们有如下的struct的定义时:struct student{ char mark; long num; float score;};关于struct的内存结构,将就会像下图所示这样(在x86机器上演示): sizeof(struct s
2017-05-22 12:44:25 791
原创 波那契数列的复杂度求解
设f(n)为参数为n时的时间复杂度,很明显:f(n)=f(n-1)+f(n-2) 这就转化为了数学上的二阶常系数差分方程,并且为其次方程。 即转化为了求f(n)的值,f(n)=f(n-1)+f(n-2)且f(0)=0; f(1)=1; 特征方程为:x^2-x-1=0 得 x=(1±√5)/2 因而f(n)的通解为: 由f(0)=0; f(1)=1可解得c_1,c_2 最终可得,时间
2017-05-19 11:11:36 494
转载 va_start,va_end,va_arg用法
下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va在这里是variable-argu
2017-05-17 19:23:55 382
转载 KMP算法
当遇到不匹配时,查表可知,最后一个匹配字符对应的"部分匹配值",因此按照下面的公式算出向后移动的位数: 移动位数 = 已匹配的字符数 - 对应的部分匹配值 首先,要了解两个概念:"前缀"和"后缀"。 "前缀"指除了最后一个字符以外,一个字符串的全部头部组合;"后缀"指除了第一个字符以外,一个字符串的全部尾部组合。“部分匹配值”就是”前缀”和”后缀”的最长的共有元素的长度。以”ABCDA
2017-05-16 17:53:00 359
转载 数论的欧拉定理证明 & 欧拉函数公式
欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 完全余数集合:定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| =φ(n) 。有关性质:对于素数 p ,φ(p) = p -1 。对于两个不同素数 p, q
2017-05-15 18:58:52 1550
转载 数论的欧拉定理证明&欧拉函数公式
欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 完全余数集合:定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| =φ(n) 。有关性质:对于素数 p ,φ(p) = p -1 。对于两个不同素数 p, q
2017-05-15 18:56:12 1156
转载 struct和typedefstruct
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是s
2017-05-11 12:24:54 244
转载 数组里a和&a的区别
#include<stdio.h>int main(void){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); //&a代表整个数组的地址,+1应该加上sizeof(a)的长度,所以ptr指向a[5]位置处。 printf("%d %d\n",*(a+1),*(ptr-1));//a代表数组首元素的地址,+1应该加上sizeof(a[0])
2017-05-11 12:21:48 316
基于QT的五子棋系统
2017-04-20
Sofa要怎么用注解实现rpc服务调用?
2019-05-14
Sofa要怎么用注解实现rpc服务调用?
2019-05-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人