0%

线性空间

用F表示实数全体(R)或者复数全体(C)
定义: 设V是非零空集合,F是R或者C的数域,在V和F上定义两种运算:
加法运算:对 V,在V中有唯一的元素与其和对应,我们记此元素为,称为的和;
数乘运算:对于,在V中有唯一的元素与之对应,记这个元素为,称为的积;
如果V满足下述公理,则称V是数域F上的线性空间,V中的元素称为向量:

Read more »

研一上算法分析期末复习题

单源最短路径

Dijkstra

1
2
3
```
## 最小生成树
### prime
1
2

### Krus
1
2

## 背包问题
1
2

## huffman编码

```

研一上算法分析期末复习题

切割钢条

迭代实现

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
#include<iostream>
#include<algorithm>
using namespace std;
const int MAX = 100;
int r[MAX];
int p[MAX];
void cutRod(int r[], int n) {
int i, j;
p[1] = r[1];
for (i = 2; i <= n; ++i) {
p[i] = r[i];
for (j = 1; j < i; ++j) {
p[i] = max(p[i], p[i - j] + p[j]);
}
}

}
int main() {
int n;
while (cin >> n) {
for (int i = 1; i <= n; ++i) {
cin >> r[i];
}
int K;
cin >> K;
cutRod(r, K);
cout << p[K];
}

return 0;
}
Read more »

研一上算法分析期末复习题

1. 插入排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<vector>
using namespace std;

void InsertSort(vector <int> T, int len) {
for (int i = 1; i < len; ++i) {
int key = T[i];
int j = i - 1;
while (j >= 0 && T[j] > key ) {
T[j + 1] = T[j];
j = j - 1;
}
T[j+1] = key;
}
for (int i = 0; i < T.size(); ++i)
cout << T[i] << ",";
cout << endl;
}
int main(void) {
vector <int> v = {10,3,4,5,6,8,9,7,2,1,100,300,200};
cout << v.size() << endl;
InsertSort(v, v.size());
}
Read more »

大整数加法和大整数乘法

1. 从txt 文件或者excel文件中读取数据

2. 把数据存入mysql数据库

3. 再已经建好的DataFrame中增加新列

4. 修改原来的列名

5. all() 与 any()

6. Dataframe删除某些行后,对index重新按递增排序

Read more »

1.建立n维数组

1.1 常用方法

1
2
3
4
5
6
7
8
9
10
np.random.random(())
np.random.uniform()
np.ones(())
np.zeros(())
np.arange().reshape()
np.arange().resize()
np.array([])
np.empty()
np.linspace()
np.eys()
Read more »

折线图

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-5,5,100)
y1=2*x+4
y2=x**2

plt.figure()


#加标题 plt.suptitle
plt.suptitle('figure1')

#设定x,y轴名称 plt.xlable,plt.ylabel
plt.xlabel('x')
plt.ylabel('y')

#设定x,y轴的范围 plt.xlim,plt.ylim
# plt.xlim((-5,5))
# plt.ylim((-10,10))

#设置坐标轴的单位距离和单元名称
# plt.xticks(np.linspace(-5,5,11))
# plt.yticks(np.linspace(-5,25,31))
# plt.yticks([-10,-5,0,5,12],[r'$very\ bad$',r'$bad\ \alpha$',r'$ok$',r'$good$',r'$very\ good$'])

#设置轴的位置
'''
1.获得当前四边轴线(get current axis)plt.gca()
2.去掉右边和上边的轴线 ax.spines['right and top'].set_color('none')
3.令x为下边轴线, ax.xaxis.set_ticks_positions('bottom')
令y为左边轴线, ax.yaxis.set_ticks_positions('left')
4.设置原点坐标((0,0)为原点)
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
'''
ax=plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
# ax.derection
# ax.spines['bottom'].set_axisline_style("-|>")
# ax.spines['bottom'].set_axisline_style("-|>")

#控制线条的颜色,宽度,和linestyle[solid,dotted,dashed,dashdot]
l2,=plt.plot(x,y2)
l1,=plt.plot(x,y1,linestyle='solid',linewidth=1.0,color='green',)

#设置图例 plt.legend()
#无参数 已在plt.plot(label='y1')中加入label参数
plt.legend(handles=[l1,l2],labels=['y1','y2'],loc='best')

#加注解 annotation,比如给线的交点加注解
#标出 y1=2*x+4 和 y2=x**2 的交点
#利用零点定理找“近似”交点,(近似由于线条是由拟合的,真正的零点不一定生成了)
idx = np.argwhere(np.diff(np.sign(y1-y2))).flatten()
plt.plot(x[idx], y2[idx], 'ro',color='red')

for i in range(len(idx)):
plt.plot([x[idx][i],x[idx][i]],[y2[idx][i],0],'k--',lw=2.5)

#加annotation
plt.annotate(r'(%s,%s)'%(round(x[idx][1],1),round(y2[idx][1],1)),xy=(x[idx][1],y2[idx][1]),xycoords='data',
xytext=(+4,+3),fontsize=10,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=0.2'))

#加一些说明
plt.text(-4,5,r'$this\ is\ some\ text\ \sigma_i\ \alpha$')


#ticks能见度
for label in ax.get_xticklabels()+ax.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor='pink',edgecolor='None',alpha=0.7))


plt.show()
Read more »