计算机笔试题总结
1.激活函数sigmoid (0,1)tanh (-1,1)relu max(0,x)leaky relu2.RPO,RTORPO恢复点目标—— 衡量“数据能丢多少”定义指业务发生故障时最多能容忍丢失多少数据按时间计算RTO恢复时间目标—— 衡量“停机能忍多久”定义指从故障发生到业务恢复运行最多能忍受多长时间的系统不可用。3.提示词技巧赋予角色分步骤提示示例驱动模版markdown4.DMLDML是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 99.常见排序算法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); } } // 把基准放到中间i1 的位置 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 包后如果同意连接会回复一个SYNACK包。服务器进入SYN_RCVD状态。这个包包含两个信息确认客户端的 SYNAck x1同时发送自己的 SYNSeq y。第三次握手ACK客户端收到服务器的 SYNACK 后再发送一个ACK包Ack y1给服务器。客户端进入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状态