1.激活函数
sigmoid (0,1)
tanh (-1,1)
relu max(0,x)
leaky relu
2.RPO,RTO
RPO(恢复点目标)—— 衡量“数据能丢多少”
定义:指业务发生故障时,最多能容忍丢失多少数据(按时间计算)
RTO(恢复时间目标)—— 衡量“停机能忍多久”
定义:指从故障发生到业务恢复运行,最多能忍受多长时间的系统不可用。
3.提示词技巧
赋予角色
分步骤提示
示例驱动
模版,markdown
4.DML
DML是Data Manipulation Language(数据操纵语言)的缩写。简单说,它就是对数据库里的数据进行“增、删、改,查”的操作命令。可以回滚
DDL 不可以回滚
5.马尔科夫链
马尔科夫链(Markov Chain)是数学里一个非常经典的随机过程模型,但它的核心思想其实特别简单,就一句话:“未来只取决于现在,与过去无关。”
用专业术语说叫“无记忆性”(马尔科夫性质)
6.正态分布
3 σ 原则
7.监督学习
有监督学习:数据既有特征(X),又有正确答案(y)。模型像“照着答案做题”,学习 X 和 y 的映射关系。(例如:给你一堆标好“猫”和“狗”的图片,让模型学会区分新图片)
无监督学习:数据只有特征(X),没有任何标签(y)。模型像“拿到一堆乱糟糟的杂物,自己瞎琢磨怎么分类”。
8.Python切片列表
浅拷贝
[起始位置 : 结束位置 : 步长]
单冒号:—— 截取区间(顾头不顾尾)
双冒号::—— 带步长跳着取
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 索引: 0 1 2 3 4 5 6 7 8 9
9.常见排序算法![]()
1.冒泡:
稳定
public void bubbleSort(int[] arr) { int n = arr.length; for (int i = 0; i < n - 1; i++) { boolean swapped = false; for (int j = 0; j < n - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } if (!swapped) break; // 优化:没交换说明已经有序 } }2.选择排序
不稳定
public void selectionSort(int[] arr) { int n = arr.length; for (int i = 0; i < n - 1; i++) { int minIdx = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIdx]) minIdx = j; } int temp = arr[i]; arr[i] = arr[minIdx]; arr[minIdx] = temp; } }3.插入排序
适合数据量小,基本有序
稳定
public void insertionSort(int[] arr) { for (int i = 1; i < arr.length; i++) { int key = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } }4.希尔排序
不稳定
希尔排序想出的办法是:先让数据“大跨步”地大致有序,最后再用插入排序收尾。
5.归并排序(Merge Sort)—— 稳定排序之王
思想:分治法。把数组分成两半,分别排序,再合并两个有序数组。
稳定,大数据量
6.快排
public void quickSort(int[] arr, int low, int high) { if (low >= high) return; int pivot = arr[high]; // 选最后一个当基准 int i = low - 1; // i 指向"小于基准"区域的末尾 for (int j = low; j < high; j++) { if (arr[j] <= pivot) { i++; swap(arr, i, j); } } // 把基准放到中间(i+1 的位置) swap(arr, i + 1, high); int mid = i + 1; quickSort(arr, low, mid - 1); quickSort(arr, mid + 1, high); } private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }7.堆排
求top k
不稳定
10.tcp三次握手四次挥手
三次握手:
第一次握手(SYN):客户端发送一个SYN包(同步序列号)到服务器,并进入
SYN_SENT状态。此时客户端告诉服务器:“我想和你建立连接,我的初始序列号是 x。”第二次握手(SYN + ACK):服务器收到 SYN 包后,如果同意连接,会回复一个SYN+ACK包。服务器进入
SYN_RCVD状态。这个包包含两个信息:确认客户端的 SYN(Ack = x+1),同时发送自己的 SYN(Seq = y)。第三次握手(ACK):客户端收到服务器的 SYN+ACK 后,再发送一个ACK包(Ack = y+1)给服务器。客户端进入
ESTABLISHED状态。服务器收到这个 ACK 后,也进入ESTABLISHED状态。至此,连接正式建立。
四次挥手:
第一次挥手(FIN):主动关闭方(通常是客户端)发送一个FIN包,表示“我没有数据要发送了”。客户端进入
FIN_WAIT_1状态。第二次挥手(ACK):被动关闭方(服务器)收到 FIN 后,立即回复一个ACK包。服务器进入
CLOSE_WAIT状态。客户端收到 ACK 后进入FIN_WAIT_2状态。注意:此时 TCP 连接处于半关闭状态,服务器仍然可以继续向客户端发送数据。第三次挥手(FIN):当服务器也发送完所有数据后,发送一个FIN包给客户端,表示“我也没数据要发了”。服务器进入
LAST_ACK状态。第四次挥手(ACK):客户端收到服务器的 FIN 后,回复一个ACK包。客户端进入
TIME_WAIT状态,等待2MSL(最长报文段寿命)时间后,才进入CLOSED状态。服务器收到 ACK 后,立即进入CLOSED状态