C++

mysql库

1
sudo apt-get install libmysqlclient-dev
1
#include <mysql/mysql.h>

libcurl库

阅读全文 »

\[ L{\sideset{^1_2}{^3_4}\bigotimes} \\ \frac{1}{3} \\ 4 \over 3 \\ \sqrt{6} \\ \sqrt[7]{49} \\ f(x_1,x_2,\ldots,x_n)=x_1^2+x_2^2+\cdots+x_n^2 \\ \vec{a} \cdot \vec{b}=0 \\ \int_0^1 x^2 {\rm d}x \\ \lim_{n \rightarrow +\infty} \frac{1}{n(n+1)} \\ \sum_{i=0}^n \frac{1}{i^2} \\ \alpha \beta \gamma \Gamma \delta \Delta \epsilon \Epsilon \\ \pm \times \div \mid \nmid \cdot \circ \ast \bigodot \bigotimes \leq \geq \neq \approx \equiv \sum \prod \coprod \\ \emptyset \in \notin\subset \supset \subseteq \supseteq \bigcap \bigcup \bigvee \bigwedge \biguplus \bigsqcup \\ \bot \angle 30^\circ \sin \cos \tan \cot \sec \csc \\ \prime \int \iint \iiint \iiiint \lim \infty \nabla \\ \because \therefore \forall \exists \not= \not> \not\subset \\ \hat{y} \check{y} \breve{y} \\ \overline{a+b+c+d} \\ \underline{a+b+c+d} \\ \overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0} \\ \uparrow \downarrow \Uparrow \Downarrow \rightarrow \leftarrow \Rightarrow \Leftarrow \longrightarrow \longleftarrow \Longleftarrow \Longrightarrow \\ \begin{cases} a_1x+b_1y+c_1z=d_1\\ a_2x+b_2y+c_2z=d_2\\ a_3x+b_3y+c_3z=d_3\\ \end{cases}\\ \begin{matrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{matrix} \]

\[ \wedge 合取 \\ \vee 析取 \\ \neg 否定 \\ \rightarrow 蕴含\\ \leftrightarrow 双条件 \\ \Rightarrow 推出 \\ \Leftrightarrow 等价 \\ \forall 任意 \\ \exists 存在 \\ \]

两个quad空格 a b a b 两个m的宽度
quad空格 a b a b 一个m的宽度
大空格 a b a b 1/3m宽度
中等空格 a;b a;b 2/7m宽度
小空格 a,b a,b 1/6m宽度
没有空格 ab ab,
紧贴 a!b a!b 缩进1/6m宽度

Set

Basis

Definition

  • 外延公理
  • 空集存在公理
  • 无序对公理
  • 并集公理
  • 幂集公理
  • 无穷公理
  • 替换公理
  • 正则公理 (以上为ZF公理化集合论)
  • 选择公理 (以上为ZFC公理化集合论)

若a是集合A中的元素,则成a属于A,记为\(s\in A\)

阅读全文 »

命题逻辑

命题

数理逻辑研究的中心问题是推理,而推理的前提和结论都是命题,因而命题是推理的基本单位

Definition

具有确切真值的陈述句成为命题(proposition)。该命题可以取一个值,称为真值。真值只有“真”和“假”两种,分别用“T”(1)或者“F”(0)表示。

一切没有判断的句子,图命令句(祈使句)、感叹句、疑问句、二义性的陈述句等都不能作为命题

阅读全文 »

谓词逻辑

谓词

Definition

在原子命题中,可以独立存在的客体(句子中的主语、宾语等),成为个体词。而用以刻画客体的心智或者客体之间关系即为谓词。

个体词

Definition

个体词可分为两种,个体常量和个体变量,均在个体域内取值。

  1. 表示具体或特定的个体词成为个体常量。一般用带或不带下标的小写英文字母\(a,b,c,\cdots,a_1,b_1,c_1,\cdots\)等表示
  2. 表示抽象或泛指的个体词成为个体变量。一般用带或不带下标的小写英文字母\(x,y,z,\cdots,x_1,y_1,z_1,\cdots\)等表示
  3. 个体词的取值范围称为取值域(或论域),常用D表示
  4. 宇宙间的所有个体域聚集在一起所构成的个体域成为全总个体域。若如特别说明,均使用全总个体域
阅读全文 »

二元关系

序偶和笛卡尔积

有序组

Definition

由两个元素按照一定的次序组成的二元组成为序偶,记作<x,y>,其中x是第一元素,y是第二元素。

tips:

由定义可知,两个序偶<a,b>=<c,d>当且仅当a=c,b=d

笛卡尔积

阅读全文 »

sqrt{3}是无理数​

反证法

假设\(\sqrt{3}\)是有理数。

根据有理数定义,存在\(m,n\in \mathbb{N^+}\),使得\(\sqrt{3}=\frac{m}{n},gcd(m,n)=1\)

其中m,n互质,即\(gcd(m,n)=1\)

将上述等式平方得到\(3n^2=m^2\)

由于3是素数,得到m是3的倍数,即假设\(m=3k,k\in \mathbb{N^+}\)

代入原先等式,\(3n^2=m^2=9k^2\),即\(n^2=3k^2\)

同样道理,得到n也是3的倍数,与gcd(m,n)=1矛盾。QED

任取素数开平方是无理数

\[ 证明\sqrt{x}是无理数,x为任意素数\\\\ 假设\sqrt{x}是有理数,存在m,n\in \mathbb{N^+}使得\sqrt{x}=\frac{m}{n},gcd(m,n)=1\\\\ \sqrt{x}n=m\\\\ \Rightarrow xn^2=m^2\\\\ \Rightarrow m为x的倍数,令m=xt\\\\ \Rightarrow n^2=xt^2\\\\ \Rightarrow n为x的倍数,则\sqrt{x}为无理数 \]

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
//冒泡 每次会确定一个数字的最终位置
void sort_bubble(int *a){
int i,j;
for(i=n-1;i>0;i--){
for(j=0;j<i;j++){
if(a[j]>a[j+1]){//改成<变成递减
swap(a[j],a[j+1]);
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
//选择排序 一次循环找到一个当前未排序序列的最大(最小)值,放到队列首位(或末尾)
void sort_select(int *a){
int i,j,min_pos;
for(i=0;i<n-1;i++){
min_pos=i;
for(j=i+1;j<n;j++){//找未排序序列最小值
if(a[min_pos]>a[j]){
min_pos=j;
}
}
swap(a[i],a[min_pos]);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//插入排序,类比打扑克洗牌,注意把未排序数字插入合适位置
void sort_insert(int *a){
int i,j,k,insert_val;
for(i=1;i<n;i++){
for(j=0;j<i;j++){
if(a[i]<a[j]){
insert_val=a[i];
for(k=i-1;k>=j;k--){//元素后移
a[k+1]=a[k];
}
a[j]=insert_val;
break;
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//快速排序 以一个数为锚点分为两部分,递归到每组一个元素
int partition(int *a,int left,int right){//以该部分数组最后一个数为锚点
int i,k=left;
for(i=left;i<right;i++){
if(a[i]<a[right]){
swap(a[k],a[i]);
k++;
}
}
swap(a[right],a[k]);
return k;
}
int sort_quick(int *a,int left,int right){
int pivot;
if(left<right){
pivot=partition(a,left,right);
sort_quick(a,left,pivot-1);
sort_quick(a,pivot,right);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//堆排
void heap_max(int *a,int start,int end){
int dad=start;
int son=2*dad+1;
while(son<end){
if(son+1<end&&a[son]<a[son+1]) son++;
if(a[dad]<a[son]){
swap(a[dad],a[son]);
dad=son;
son=dad*2+1;
}
}
}
void arr_heap(int *a){
int i;
for(i=n/2-1;i>0;i--){
heap_max(a,i,n);
}
swap(a[0],a[n-1]);//把最大值放到最后
for(i=N-1;i>1;i--){//由于除了根节点,其他节点都没有改变,所以只需要对根节点进行一个排序即可
heap_max(a,0,i);
swap(a[0],a[i-1]);
}
}
阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
//malloc C里没有new
char* t=(char*)malloc(n*sizeof(char));
free(t);
//二维数组传参用指针,必须要写列数
void print(int p[][4],int row){
int i,j;
for(i=0;i<row;i++){
for(j=0;j<sizeof(*p)/sizeof(int);j++){
printf("%d",p[i][j]);
}
printf("\n");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//二级指针实现数据排序,不改变源数据
#include<stdio.h>
#include<stdlib.h>
#inclued<string.h>

void print(char **p){ //char *p[]
for(int i=0;i<5;i++){
puts(p[i]);
}
}

int main(){
char *p[5];
char b[5][10]={"l","w","hh","mm","tt"};
int i,j,tmp;
char *t;
char **p2;
for(i=0;i<5;i++){
p[i]=b[i];
}
for(i=4;i>0;i--){
for(j=0;j<i;j++){
if(strcmp(p2[j],p2[j+1])==1){
t=p2[j];
p2[j]=p2[j+1];
p2[j+1]=t;
}
}
}
print(p2);
for(i=0;i<5;i++){
puts(b[i]);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//函数指针
#include<stdio.h>
#include<stdlib.h>

void b(){
printf("fun b\n");
}

void a(void (*p)()){
p();
}

int main(){
void (*p)();//函数指针
p=b;
a(p);//相当于执行p函数
return 0;
}
1
2
extern int k;//借用main.c文件的全局变量k
static int i;//只能在本文件中使用,static也可以修饰函数
1
2
3
4
5
6
7
8
9
//递归 Hanoi
void hanoi(int n,int a,int b,int c){
if(n==1) printf("%c->%c\n",a,c);
else{
hanoi(n-1,a,c,b); //把n-1个盘子从a通过c移动到b
printf("%c->%c\n",a,c);//把a的最后一个盘子移动c
hanoi(n-1,b,a,c);//把n-1个盘子从b通过a移动到c
}
}
阅读全文 »

Python

mysql库

1
pip install pymysql

正则re.S与rs.M

本来呢: ^只匹配字符串的开头,$只匹配字符串结尾,.不匹配换行符. re.S做的事情是: 让.也匹配换行符 re.M做的事情是: 让^匹配每行的开头,$匹配每行的结尾

阅读全文 »
0%