Python
文章平均质量分 52
晚风微凉!
持续分享深度学习、PyTorch、计算机视觉、类脑计算、脉冲神经网络等相关领域的内容!
展开
-
Python-匈牙利算法
在一个二分图中,该算法能够找到最大的匹配,即在给定的两组顶点中找到最大数量的边,使得每个顶点都最多与一个相邻顶点相连。图中的数字代表边的权重。接着,我们看A - 4,这条边也没有匹配,我们可以将A与4匹配。现在我们有五个匹配:A - 3,A - 4,B - 1,C - 3,D - 2。现在我们有四个匹配:A - 3,A - 4,B - 1,C - 3。A - 3,这条边没有匹配,我们可以将A与3匹配。现在我们有三个匹配:A - 3,A - 4,B - 1。C - 3,这条边没有匹配,我们可以将C与3匹配。原创 2024-02-25 12:33:56 · 643 阅读 · 1 评论 -
Python-动态规划-递推问题
动态规划(Dynamic Programming)是一种解决问题的数学方法,通常用于优化问题,它可以将一个问题分解成更小的子问题,通过存储和重复利用子问题的解来降低计算量,从而有效地解决问题。动态规划的递推问题指的是那些可以通过定义递归关系来求解的问题。通过找到问题的递推关系,并利用这些关系将问题分解成更小的子问题,然后使用递归或迭代的方式求解子问题,最终得到原问题的解。这就是动态规划递推问题的基本思想:通过找到问题的递推关系,并利用已解决的子问题的解来求解更大规模的问题。原创 2024-02-25 12:39:08 · 365 阅读 · 1 评论 -
Python-最小生成树-Kruskal和Prim
Kruskal算法和Prim算法都是用于解决最小生成树问题的经典算法,它们的原理和实现略有不同,各有优劣势。原创 2024-02-21 10:53:41 · 720 阅读 · 2 评论 -
Python-Bellman-Ford算法
Bellman-Ford算法是一种用于解决单源最短路径问题的算法,它可以处理带有负权边和负权回路的图。需要注意的是,Bellman-Ford算法不能处理存在负权回路的情况,因为在负权回路中,没有最短路径的概念。如果在第n-1轮松弛操作后,仍然可以通过松弛操作减小某些顶点的最短路径估计值,则说明存在负权回路。否则,最终得到的距离数组就是起始点到其他顶点的最短路径。2.对所有边进行n-1轮松弛操作,其中n是图中顶点的数量。1.初始化距离数组,将起始点到其他顶点的距离设为无穷大,起始点的距离设为0。原创 2024-02-20 21:45:00 · 194 阅读 · 1 评论 -
Python-图的广度优先遍历
它从指定的起始顶点开始,逐层地访问其邻居顶点,然后再访问邻居的邻居,以此类推,直到遍历完所有可达的顶点。广度优先遍历的关键在于使用队列来保存待访问的顶点,保证按照层次逐个访问顶点。这样可以确保先访问离起始顶点近的顶点,再访问离起始顶点远的顶点。5.如果还有未访问的顶点,选择其中一个作为新的起始顶点,重复步骤2-4,直到所有顶点都被访问过。3.从队列中取出一个顶点,访问它,并将其未访问的邻居顶点加入队列。2.将起始顶点标记为已访问,并将其加入队列。1.选择一个起始顶点作为遍历的起点。原创 2024-02-20 17:14:04 · 190 阅读 · 0 评论 -
Python-图的深度优先遍历
图的深度优先遍历(Depth First Search,DFS)是一种用于遍历或搜索图的算法。其核心思想是从图的某个顶点开始,沿着一条路径尽可能深地搜索,直到无法继续为止,然后回溯到上一个顶点,继续搜索其他路径。3.从当前顶点出发,选择一个未访问的相邻顶点作为下一个当前顶点,重复步骤2。4.如果当前顶点没有未访问的相邻顶点,则回溯到上一个顶点,重复步骤3。1.选择一个起始顶点作为当前顶点,并将其标记为已访问。5.重复步骤3和步骤4,直到所有顶点都被访问。2.访问当前顶点,并将其加入遍历结果。原创 2024-02-20 17:04:19 · 347 阅读 · 0 评论 -
Python-制作一个表白成功的界面
", foreground="black", font=("Helvetica", 12, "bold"))disagree_button = ttk.Button(frame, text="不愿意", command=on_disagree, style="DangerButton.TButton")创建了一个用于显示文本的标签小部件,文本内容是"亲爱的,我爱你,愿意做我女朋友吗?创建了两个按钮,一个是“愿意”按钮,一个是“不愿意”按钮,分别绑定了on_agree()和on_disagree()函数。原创 2024-02-20 16:40:07 · 1675 阅读 · 1 评论 -
Python-四个排序算法(冒泡排序、快速排序、插入排序、选择排序)
冒泡排序是一种简单的排序算法,其核心思想是通过相邻元素的比较和交换来将最大(或最小)的元素逐步移动到数组的末尾。冒泡排序的要点如下:1.重复遍历数组,比较相邻的两个元素,如果顺序不正确,则交换它们的位置。2.每一轮遍历都会将当前未排序部分的最大(或最小)元素移动到末尾。3.重复上述步骤,直到整个数组排序完成。原创 2024-02-20 16:51:26 · 318 阅读 · 0 评论