保研考研机试攻略:python笔记(3)
🐨🐨🐨11sort 与 sorted 区别
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作, 无返回值,而内建函数 sorted 方法返回的是一个 新的 list ,而不是在原来的基础上进行的操作。
注意: python 的sort排序为稳定排序,当条件都一致时,按照index的顺序排序
>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]
>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, ,cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数 cmp为对比函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1]) # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
🐨🐨🐨12Sorted Key用法
🐼key理解
传递给key参数的是一个函数,它指定可迭代对象中的每一个元素来按照该函数进行排序。
# 这里先看一个不带key参数的sort()函数,大家很容易知道结果
li = [[1, 7], [1, 5], [2, 4], [1, 1]]
li.sort()
print(li)
# [[1, 1], [1, 5], [1, 7], [2, 4]] 默认按照0维排序 再按照1维排序def fun(li):return li[1]
# 这时将函数fun传递给参数key 得出结果 ,也可使用匿名函数 li.sort(key=lambda x:x[1])
li.sort(key=fun)
print(li) # [[1, 1], [2, 4], [1, 5], [1, 7]]
🐶多条件排序
多条件排列规定,当1条件相同时,按2条件排序。
#按start从小到大排列, 如果start相同,则按end从小到大排列。
a = {'a': {'start': 10, 'end': 20}, 'd': {'start': 10, 'end': 19}, 'c': {'start': 13, 'end': 20}
}
#若想从大到小排序可以在条件前加-(数字可直接加-, 字符串用reverse=True)
d = sorted(a.keys(), key=lambda x: (a[x]['start'], a[x]['end']))# d = ['d', 'a', 'c']
多条件排序,不限于两个条件,如:
#按int(x[-1])排序,如果int(x[-1])相同,按x[0]排序,如x[0]相同,按x[1]排序
res = sorted(data,key=lambda x:(int(x[-1]),x[0],x[1]))
🐼cmp理解
sorted的key选择按数据的哪个条件进行排序, cmp则决定排序的规则,使用时加上key = functools.cmp_to_key( cmp)参数实现。
import functoolsdef cmp_new(x,y):if (x+y)>(y+x):return 1elif (x+y)<(y+x):return -1 else :return 0n=input()
s=input().split()
s.sort(key=cmp_to_key(cmp_new),reverse=True)
print(''.join(s).lstrip("0"))
#或者如下
s_new = sorted(s,key = functools.cmp_to_key(cmp_new),reserve=True) print(''.join(s_new).lstrip("0"))
🐶例题
对N个长度最长可达到1000的数进行排序。
import functools
#注意要返回具体的1,-1,0值,不能返回逻辑值。
def cmp_new(x, y):if len(x) == len(y):#此次是按从小到大排序if x > y:return 1elif x < y:return -1else:return 0#return x<y 不直接写成这样,要返回具体值如 1,-1,0else:if len(x) > len(y): return 1elif len(x) < len(y): return -1while True: try:n = int(input()) data = []for i in range(n):data.append(input())res = sorted(data, key=functools.cmp_to_key(cmp_new)) for v in res:print(v)except:break
🐨🐨🐨13队列
🐼定义
先进先出。队列类似于一条管道,元素先进先出,进put(arg),取get( )。需要注意的是:队列都是在内存中操作, 进程退出,队列清空,另外,队列也是一个阻塞的形态。
🐼方法
🐼队列分类
队列有很多种,但都依赖模块queue。
队列方式 | 特点 | |
queue.Queue | 先进先出队列 | |
queue.LifoQueue | 后进先出队列 | |
queue.PriorityQueue | 优先级队列 | |
queue.deque | 双线队列 |
🐶单项队列
import queue#q=queue.Queue(5) #如果不设置长度 ,默认为无限长
#print(q.maxsize) #注意没有括号
from queue import Queue
# FIFO
queue_obj = Queue() # 创建一个队列对象
for i in range(4):queue_obj.put(i)
while not queue_obj.empty(): print(queue_obj.get())# 输出顺序
0
1
2
3
🐶后进先出队列
q = queue.LifoQueue()
q.put(12)
q.put(34)
print(q.get())#34
🐶优先级队列
需要注意的是,优先级队列put的可以是单个值,可以是一个元组 ,(优先级,数据),优先级数越小,级别越高。
q = queue.PriorityQueue()
q.put((3,'aaaaa'))
q.put((3,'bbbbb'))
q.put((1,'ccccc'))
q.put((3,'ddddd'))
print(q.get())
print(q.get())#(1, 'ccccc')
#(3, 'aaaaa')
当优先级一样,数据部分可以比较大小的时候,也可以排序:
priorityQueue_obj = queue.PriorityQueue()
priorityQueue_obj.put((1,45))
priorityQueue_obj.put((1,42))
priorityQueue_obj.put((1,47))
while not PriorityQueue_obj.empty(): print(PriorityQueue_obj.get())#(1, 42)
#(1, 45)
#(1, 47)priorityQueue_obj = PriorityQueue()
priorityQueue_obj.put((1,[1,4]))
priorityQueue_obj.put((1,[2,4]))
priorityQueue_obj.put((1,[2,3]))
while not PriorityQueue_obj.empty(): print(PriorityQueue_obj.get())#(1, [1, 4])
#(1, [2, 3])
#(1, [2, 4])#当优先级一样的时候,会在比较数据部分的大小,同上字符串也可以比较大小,
优先级一样,数据部分不可以比较大小时,程序会报错:
priorityQueue_obj = queue.PriorityQueue()
priorityQueue_obj.put((1,{"1":9}))
priorityQueue_obj.put((1,{"k":6}))
priorityQueue_obj.put((1,{"8":9}))
while not priorityQueue_obj.empty():print(priorityQueue_obj.get())
# 没有字典不能直接比较大小# 报错内容
# TypeError: '<' not supported between instances of 'dict' and 'dict'
🐶双线队列
from collections import deque
q = deque()
q.append(123)
q.append(456)
q.appendleft(780)
print(q)
print(q.pop())#移除右边的元素,对应的append也不变
print(q.popleft())#移除左边的元素,对应的append为appendleft#deque([780, 123, 456])
#456
#780
🐨🐨🐨14各类排序
🐼插入排序
效率(N^2)
1. 将第一个数据当成已排序序列,后面的数据当成未排序序列。取未排序的第一个数据与已排序的最 后一个数据进行比较,如果顺序错误则交换位置。 17(未排序的第一个数据)比10(已排序的最后一个 数据)大,不需要进行交换。
2. 当不需要交换时则此轮插入完成。已排序序列变成了两个数据,未排序序列数据减1。
3. 继续取未排序的第一个数据与已排序的最后一个数据进行比较。如果顺序错误则交换位置。 50比17 大,不需要交换。
4. 第二轮插入完成,已排序序列数量加1,未排序序列减1。
5. 重复上面的步骤,未排序的第一个数据与已排序的最后一个数据进行比较。
6. 如果位置错误则交换位置。 7比50小,交换位置。
7. 交换位置后,继续将插入的数据与相邻的前一个数据进行比较。
8. 如果位置错误则交换位置。 7比17小,交换位置。
9. 重复步骤7,继续将插入的数据与相邻的前一个数据进行比较。
10. 如果位置错误则交换位置。 7比10小,交换位置。此时插入的数据已经通过交换位置到达了数列的 最前端,不需要再次交换了,此轮插入完成。
11. 一直重复取未排序的第一个数据插入已排序序列中,直到所有数据都已经插入到已排序序列中,列 表排序完成。排序结果如下图。
代码:
# coding=utf-8
def insertion_sort(array):for i in range(len(array)):cur_index = iwhile array[cur_index-1] > array[cur_index] and cur_index-1 >= 0:array[cur_index], array[cur_index-1] = array[cur_index-1], array[cur_index]#对新来数字在前已排序的序列中循环排序cur_index -= 1 return arrayif _name_== '_main_':array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21] print(insertion_sort(array))
🐼希尔排序
希尔排序的具体思路步骤: (n等于列表的长度) 效率(最差N^2,最好N)
1)首先取一个整数d1 = n // 2 ,将元素分为d1个组,每组相邻元素之间的距离为d1,在各组内进行插入 排序
2)取第二个整数d2 = d1 // 2 ,重复上述分组排序,则到di =1时,即所有元素在同一组内进行插入排序 即可完成排序
3)希尔排序每趟并不是使某些元素有序,而是使整体数据越来越接近有序;最后一趟排序使得所有数据 有序
第一次分组插入排序后: [3, 1, 2, 6, 5, 7, 4, 9, 8]
第二次分组插入排序后: [ 2,1,3,6,4,7,5,9,8 ]
第三次分组 d3 = d2 // 2 =1 则对 [ 2,1,3,6,4,7,5,9,8 ]进行插入排序,排序后[1, 2, 3, 4, 5, 6, 7, 8, 9]
代码:
def insert_sort_gap(li, gap): # gap 代表分成几组for i in range(gap, len(li)):tmp = li[i] # 第一组中下一个值 k = i - gap # 第一组中前一个值 # 插入排序while k >= 0 and li[k] > tmp:li[k + gap] ,li[k] = li[k],li[k+gap] k -= gap#li[k + gap] = tmpprint(li)def shell_sort(li): d = len(li) // 2 while d >= 1:insert_sort_gap(li, d)d //= 2#li = [5, 7, 4, 6, 3, 1, 2, 9, 8]
#shell_sort(li)
#print(li)
🐼直接选择排序
最简单的排序,原理:在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从 剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均 排序完毕。 效率(N^2)
代码:
def simpleSelect(a):# 简单选择排序: 小->大for i in range(0, len(a) - 1): min_index = i#找到i~len(a)的最小值的坐标for j in range(i, len(a)): if a[min_index] > a[j]:min_index = ja[i], a[min_index] = a[min_index], a[i] return aprint simpleSelect([11, 1, 6, 9, 8, 5])
🐼快速排序
采用 “分而治之” 的思想,把大的拆分为小的,小的拆分为更小的。其原理是,对于给定的记录,选择一 个基准数,通过一趟排序后,将原序列分为两部分,使得前面的比后面的小,然后再依次对前后进行拆 分进行快速排序,递归该过程,直到序列中所有记录均有序。
步骤
设当前待排序序列为R[low:high],其中low ≤ high ,如果待排序的序列规模足够小,则直接进行排序, 否则分3步处理。
1、分解
在R[low:high]中选定一个元素R[pivot],以此为标准将要排序的序列划分为两个序列R[low:pivot-1]与
R[pivot+1: high],并使序列R[low:pivot-1]中所有元素的值小于等于R[pivot],序列R[pivot+1: high]所 有的值大于R[pivot],此时基准元素以位于正确位置,它无需参加后续排序。
2、递归
对于子序列R[low:pivot-1]与R[pivot+1: high] ,分别调用快速排序算法来进行排序。
3、合并
由于对序列R[low:pivot-1]与R[pivot+1: high]的排序是原地进行的,所以R[low:pivot-1]与R[pivot+1: high]都已经排好序后,不需要进行任何计算,就已经排好序。
注:基准元素, 一般来说选取有几种方法
取第一个元素
取最后一个元素
取第中间位置元素
取第一个、最后一个、中间位置3者的中位数元素
图解
假设当前排序为R[low:high],其中low ≤ high。
1:首先取序列第一个元素为基准元素pivot=R[low]。 i=low,j=high。 2:从后向前扫描,找小于等于
pivot的数,如果找到, R[i]与R[j]交换, i++。 3:从前往后扫描,找大于pivot的数,如果找到, R[i]与 R[j]交换,j--。 4:重复2~3,直到i=j,返回该位置mid=i,该位置正好为pivot元素。 完成一趟排序后,以
mid为界,将序列分为两部分,左序列都比pivot小,有序列都比pivot大,然后再分别对这两个子序列进 行快速排序。
以序列(30 ,24 ,5 ,58 , 18 ,36 , 12 ,42 ,39)为例,进行演示
1、初始化, i=low,j=high,pivot=R[low]=30
2、从后往前找小于等于pivot的数,找到R[j]=12
R[i]与R[j]交换, i++
3、从前往后找大于pivot的数,找到R[i]=58
R[i]与R[j]交换,j--
4、从后往前找小于等于pivot的数,找到R[j]=18
R[i]与R[j]交换, i++
5、从前往后找大于pivot的数,这时i=j,第一轮排序结束,返回i的位置, mid=i
此时已mid为界,将原序列一分为二,左子序列为(12 ,24 ,5 , 18)元素都比pivot小,右子序列为 ( 36 ,58 ,42 ,39)元素都比pivot大。然后在分别对两个子序列进行快速排序,最后即可得到排序后 的结果。
平均时间复杂度为: O(nlogn)
平均空间复杂度为: O(logn)
代码:
def quickSort(list, i, j): if i >= j:return list pivot = list[i]# 保持上下界low = i high = j# 寻找midwhile i < j:# 右值while i < j and list[j] > pivot: j -= 1# 在右值找到小于pivot的值,交换基准位置list[j], list[i] = list[i], list[j]# 注意要判断i,j不越界才能加减if i < j: i += 1# 左值while i < j and list[i] < pivot: i += 1# 在左值找到大于pivot的值,交换基准位置list[j], list[i] = list[i], list[j]# 注意要判断i,j不越界才能加减if i < j: j -= 1 mid = iquickSort(list, low, mid - 1) quickSort(list, mid + 1, high) return listif _name_=="_main_":lists=[30,24,5,58,18,36,12,42,39]print("排序前的序列为:") for i in lists:print(i,end =" ")print("\n排序后的序列为:")for i in quick_sort(lists,0,len(lists)-1): print(i,end=" ")>>>
排序前的序列为:
30 24 5 58 18 36 12 42 39
排序后的序列为:
5 12 18 24 30 36 39 42 58#简单快排
def quick(array): if array==[]:return [] else:afirst = array[0]#无low,high交互,直接找出大于与小于基准的集合aless = quick([l for l in array[1:] if l < afirst]) amore = quick([m for m in array[1:] if m >= afirst]) return aless + [afirst] + amore
🐼二路归并排序算法
稳定排序,时间复杂度O(NLog(N)),空间复杂度O(N)
归并含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储结构还是链表存储结 构,都可在O(m+n)的时间量级上实现。
合并两个有序数组过程:
例如 a = [1, 2] , b = [0, 3, 4] 两个有序数组和一个空数组 res = [ ],设置两个指针, i 指向 a 数组第一个 元素,j 指向 b 数组第一个元素。首先比较这两个元素 1 < 0,将0添加到 res 数组[0];然后让 j 指针递 增指向 3 元素, 此时比较 i 和 j 指向元素 对比1 < 3,将 1 添加到 res 数组[0, 1] ; 让 i 指针递增指向2 元素, 此时比较 i 和 j 指向元素 对比2 < 3,将2添加到res数组[0, 1, 2]。这个时候 i = len(a)已经把 a 数组元素 添加完,还剩 b 数组中3 和 4元素,直接把剩下b数组元素添加到 res [0, 1, 2 ,3 , 4],这样就实现了合并 两个有序数组为一个有序数组。
如此递归的分割排序后,再合并
代码:
def MergeSort(lists): if len(lists) <=1:return listsnum = len(lists)//2left = MergeSort(lists[:num]) right = MergeSort(lists[num:]) return Merge(left,right)def Merge(left,right): r,l=0,0reslut=[]while l<len(left) and r<len(right):if left[l] < right[r]:reslut.append(left[l])l+=1 else:reslut.append(right[r])r+=1reslut+= right[r:] reslut+= left[l:] return reslutif _name_== '_main_':arr = [4,2,15,4,6,7,1] print(MergeSort(arr))
文章内容摘自我学习的N诺python笔记,感兴趣的宝子欢迎关注专栏——《保研考研机试攻略》
相关文章:
保研考研机试攻略:python笔记(3)
🐨🐨🐨11sort 与 sorted 区别 sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作, 无返回值,而内建函数 sorted 方法返回的…...
刘卫国MATLAB程序设计与应用课后答案PDF第三版
刘卫国《MATLAB程序设计与应用》(第三版)是对普通高等教育“十一五”国家级规划教材《MATLAB程序设计与应用》(第二版)的一次全面修订。全书总体保持第二版原有体系结构,但根据技术发展和应用的需要扩充了许多新内容。全书强调数学方法、算法…...
【鉴权】Web 会话管理:Cookie、Session 和 Token 深度对比
目录 引言一、Cookie二、Session三、Token (JWT)四、总结对比五、Token、Session 和 Cookie 的选择总结 引言 在现代 Web 开发中,Cookie、Session 和 Token 都是用于用户身份验证和状态管理的常见技术。每种技术有其特定的应用场景和优缺点,理解它们之间…...
ArkTS--应用状态
应用状态 应用状态相关的内容需要使用模拟器或真机调试,在API 11开始也支持preview 1.LocalStorage LocalStorage是页面级的UI状态存储,通过Entry装饰器接收参数可以在页面内共享数据 1.1 页面内共享数据 import {MyUser} from ../model/MyUser //用户对…...
yolov8涨点系列之引入CBAM注意力机制
文章目录 YOLOv8 中添加注意力机制 CBAM 具有多方面的好处特征增强与选择通道注意力方面空间注意力方面 提高模型性能计算效率优化: yolov8增加CBAM具体步骤CBAM代码(1)在__init.pyconv.py文件的__all__内添加‘CBAM’(2)conv.py文件复制粘贴CBAM代码(3)修改task.py…...
java标准JavaBean类
1. public class test {//属性private String username;private String password;private String email;private String gender;private int age;//快捷键//altinsert//altFninsert//插件PTG1秒生成标准Javabean //插件ptg c//空参public test() {}//全部参数…...
MATLAB界面设计全攻略:从基础入门到高级应用
引言 MATLAB作为一种功能强大的科学计算软件,不仅可以进行各种复杂的数值计算,还可以通过其图形用户界面设计工具(GUI)为用户提供可视化操作界面。本教程旨在详细介绍MATLAB界面设计的全过程,为初学者提供从入门到精通…...
JavaScript API部分知识点
一、Dom获取&属性操作 (一)、 Web API 基本认知 1、变量声明 const 声明的值不能更改,而且const声明变量的时候需要里面进行初始化 但是对于引用数据类型,const声明的变量,里面存的不是 值,是 地址…...
钉钉调试微应用整理2
第一步 新建应用 钉钉开放平台](https://open-dev.dingtalk.com/) 去新增应用 第二步 配置应用信息 把本地代码运行起来,并设置本地地址 第三步 在本地代码添加调试命令 这里有2中添加方式 哪一种都可以 方式一: index.html页面中 <!DOCTYPE h…...
C++初级入门(1)
第一部分 基础语法入门 一、基础 1、变量与常量 1、变量 变量存在的意义:方便管理内存空间 2、常量 用于记录程序中不可更改的数据 #define 常量名 常量值 const 数据类型 常量名常量值 ; 2、数据类型 1、整型 short 2字节 int 4字节 long Wi…...
group_concat配置影响程序出bug
在 ThinkPHP 5 中,想要临时修改 MySQL 数据库的 group_concat_max_len 参数,可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句,从而修改会话(Session)级别的变量。 步骤 设置 group_concat_max_l…...
将Go项目编译为可执行文件(windows/linux)
windows 编译成windows环境exe可执行文件过程,打开文件所在目录,在资源路径框中输入cmd,打开cmd命令框,通过“go env”查看当期环境变量,以windows10环境为例,默认为windows环境。 // 配置环境变量 SET C…...
IMS高压发生器维修高压电源维修XRG100/1000
IMS高压发生器的硬件组成: 高压控制发生器主要由高压发生器和高压控制器两部分组成。高压控制器是控制调节X射线管管电压和管电流的机构,高压发生器是管电压和管电流产生的执行机构,通过高压控制器对高压发生器进行控制调节,通过高压电缆将高压发生器与X射线管连接…...
斯坦福泡茶机器人DexCap源码解析:涵盖收集数据、处理数据、模型训练三大阶段
前言 因为我司「七月在线」关于dexcap的复现/优化接近尾声了,故准备把dexcap的源码也分析下。下周则分析下iDP3的源码——为队伍「iDP3人形的复现/优化」助力 最开始,dexcap的源码分析属于此文《DexCap——斯坦福李飞飞团队泡茶机器人:带…...
RabbitMQ的DLX(Dead-Letter-Exchange 死信交换机,死信交换器,死信邮箱)(重要)
RabbitMQ的DLX 1、RabbitMQ死信队列2、代码示例2.1、队列过期2.1.1、配置类RabbitConfig(关键代码)2.1.2、业务类MessageService2.1.3、配置文件application.yml2.1.4、启动类2.1.5、配置文件2.1.6、测试 2.2、消息过期2.2.1、配置类RabbitConfig2.2.2、…...
【STM32F1】——舵机角度控制与TIM定时器
【STM32F1】——舵机角度控制与TIM定时器 一、简介 本篇主要对舵机DS-S002M模块调试过程进行总结,实现了以下功能: 1)舵机转动角度的控制:利用STM32F103C8T6的TIM定时器产生PWM信号控制舵机DS-S002M转动一定的角度。 二、DS-S002M数字舵机介绍 电压:4.8-6.0V操作角度:…...
想要成为独立游戏作者 :通关!游戏设计之道 2-1 HUD
HUD特指显示屏幕上的信息,在是UI的子集,UI是一个游戏中虽有的交互元素的总称 本文用了大量ai总结 + 个人微调,不喜勿喷,前篇如下想要成为独立游戏作者 :通关!游戏设计之道 1-4 操作篇-C…...
sql专题 之 三大范式
文章目录 背景范式介绍第一范式:属性不可再分第二范式第三范式注意事项 为什么不遵循后续的范式数据库范式在实际应用中会遇到哪些挑战? 背景 数据库的范式(Normal Form)是一组规则,用于设计数据库表结构以 减少数据冗…...
node.js安装和配置教程
软件介绍 Node.js是一个免费的、开源的、跨平台的JavaScript运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Goo…...
定时器输入捕获实验配置
首先,第一个时基工作参数配置 HAL_TIM_IC_Init( ) 还是一样的套路,传参是一个句柄,先定义一个结构体 Instance:指向TIM_TypeDef的指针,表示定时器的实例。TIM_TypeDef是一个包含了定时器寄存器的结构体,用…...
【C/C++】memcpy函数的使用
零.导言 当我们学习了strcpy和strncpy函数后,也许会疑惑整形数组要如何拷贝,而今天我将讲解的memcpy函数便可以拷贝整形数组。 一.memcpy函数的使用 memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,比如整形数组。 …...
spring-security(两种权限控制方式)
案例(写死的用户密码) package com.zking.security.service;import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.User; import org.sp…...
【mongodb】数据库的安装及连接初始化简明手册
NoSQL(NoSQL Not Only SQL ),意即"不仅仅是SQL"。 在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 通过应用实践证明,关系模型是非常适合于客户服务器…...
【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
概念定义作用/用途解释举例卷积 (Convolution)是一种数学操作,通过在输入数据(如图片)上滑动卷积核,计算局部区域的加权和。提取数据中的局部特征,例如边缘、角点等。卷积就像在图片上滑动一个小的窗口,计算…...
距离向量路由选择协议和链路状态路由选择协议介绍
距离向量路由选择协议(Distance Vector Routing Protocol)和链路状态路由选择协议(Link-State Routing Protocol)是两种主要的网关协议,它们用于在网络内部选择数据传输的最佳路径。下面分别介绍这两种协议:…...
【AI大模型】大型语言模型LLM基础概览:技术原理、发展历程与未来展望
目录 🍔 大语言模型 (LLM) 背景 🍔 语言模型 (Language Model, LM) 2.1 基于规则和统计的语言模型(N-gram) 2.2 神经网络语言模型 2.3 基于Transformer的预训练语言模型 2.4 大语言模型 🍔 语言模型的评估指标 …...
ubuntu 22.04 server 安装 和 初始化 LTS
ubuntu 22.04 server 安装 和 初始化 下载地址 https://releases.ubuntu.com/jammy/ 使用的镜像是 ubuntu-22.04.5-live-server-amd64.iso usb 启动盘制作工具 https://rufus.ie/zh/ rufus-4.6p.exe 需要主板 支持 UEFI 启动 Ubuntu22.04.4-server安装 流程 https://b…...
大数据机器学习算法与计算机视觉应用03:数据流
Data Stream Streaming ModelExample Streaming QuestionsHeavy HittersAlgorithm 1: For Majority elementMisra Gries AlgorithmApplicationsApproximation of count Streaming Model 数据流模型 数据流就是所有的数据先后到达,而不是同时存储在内存之中。在现…...
【代码随想录day25】【C++复健】491.递增子序列;46.全排列;47.全排列 II;51. N皇后;37. 解数独
491.递增子序列 本题做的时候除了去重逻辑之外,其他的也勉强算是写出来了,不过还是有问题的,总结如下: 1 本题的关键:去重 与其说是不知道用什么去重,更应该说是完全没想到本题需要去重,说明…...
AI智能识物(微信小程序)
AI智能识物,是一款实用的小程序。可以拍照智能识物,可识别地标、车型、花卉、植物、动物、果蔬、货币、红酒、食材等等,AI智能技术识别准确度高。 更新说明: 此源码为1.2.0版本。 主要更新内容:新增security.imgSec…...
北京品牌网站/seo优化网站优化
翻转链表头插法前言一、两数相加二、翻转链表头插总结参考文献前言 这个题目稍显简单,但是也可以作为练习翻转链表和头插法的基础。除此之外,发现三目运算符深受CPU喜爱,但同时也存在全部运算导致改变的缺点。 一、两数相加 二、翻转链表头…...
建网站有哪些费用/赣州是哪个省
第一步:需要把PHPExcel引入到项目中;我这里把他已经把这个文件上传到博客了,下面是网址,下载下来直接就可以放入到vendor目录下面就行,不用其他操作。 https://download.csdn.net/download/weixin_42489436/11248777 …...
哪里有网站建设联系方式/珠海百度关键字优化
如何编辑PDF文件呢?现在很多使用PDF文件的人都会选择将PDF文件转换成Word进行编辑,但是这种方法还是比较麻烦的,向大家推荐一款专业的PDF编辑器——迅捷PDF编辑器,这款PDF编辑器可以轻松编辑PDF文件,下面就一起来看看吧…...
湖南建设门户网站/关键词诊断优化全部关键词
环境:公司新增一台企业级服务器,已安装运行RHEL6操作系统,由系统运维部、开发部、技术部共同使用。由于用户数量众多,且使用时间不稳定,要求针对账号和登陆过程采取基本的安全措施。Su命令——切换用户使用su命令&…...
0000网站建设/seo工程师招聘
0.Groovy是基于jvm的,所以需要安装java。 1.下载,在groovy 下载地址中选择对应的版本,其下有两个目录一个是distribution存放的是二进制文件、文档和SDK,一个是sources存放的是源代码。目前比较稳定的版本是2.4.15。Groovy2.4需要…...
自己做网站推广/官网制作公司
在本文中,我们将通过HLS自己动手实现一个AXI DMA,仿照的是官方AXI DMA IP核的直接模式,即给定发送起始地址和发送长度,以及接收起始地址和接收长度,就能进行一次DMA传输。 HLS设计 代码如下 dma.cpp #include"…...