Category: Python
Amdahl 定律 vs Gustafson 定律 — 完整教程、推导、应用场景及 Python 绘图 Amdahl 定律 vs Gustafson 定律:完整教程、推导、应用场景及 Python 绘图 理解并行加速:通过代码讲解 Amdahl 定律和 Gustafson 定律 并行计算基础:Amdahl 定律、Gustafson 定律及加速建模 并行加速原理:Amdahl 和 Gustafson 定律完整指南 并行扩展解析:推导并比较 …
有序数据结构在编程中(尤其是算法竞赛和竞技编程)非常实用。在 Python 中,主要由 Sorted Containers 库提供三种有序数据结构:SortedDict、SortedSet 和 SortedList。 深入理解 Python 有序数据结构:从内置到 SortedContainers Python 有序数据结构完整指南 Python 中的有序列表、字典与集合实战解析 带你玩转 Python SortedContainers 与内置排序结构 Python 开发者必读:SortedContainers 与内置数据结构对比 Python 有序数据结构教程 排序是编程中最常见的操作之一。Python 提供了多种方式来维护有序数据,从内置的列表、集合、堆,到第三方库 sortedcontainers。 本教程将介绍 …
前两天,我想查一下自己在 STEEM 区块链上一些重要记录对应的区块号,比如: 注册了我的账号 #4253590 成为见证人 #20190755 挖到我的第一个区块 #20390040 被孙宇晨大佬代理了 SP #41676911 收到一笔 DAO 收入 #95403889 当时手头只有时间戳,却不知道对应的是哪个区块,于是我想到可以用二分查找(binary search)算法来定位。 其实,这个思路在其它区块链上同样适用,并不依赖于特定的链(如 Steem、以太网/Ethereum、比特币/Bitcoin 等)。虽然具体的实现细节(RPC 方法名、时间戳格式等)会有所不同,但整体逻辑是一致的:通过 RPC API 获取某个区块的时间戳;获取最新区块作为上界;然后在区间内使用二分查找。通过多次查询区块时间戳,就能把给定的时间戳映射到最接近的区块号,算法复杂度约为 O(log N)。 当然,大多数区块链也会提供专门的 API …
Web Sockets简介 WebSocket 实现了客户端和服务器之间基于单个 TCP 连接的实时全双工通信。在这篇文章中,我们将向你展示如何用 Python 搭建一个简单的 WebSocket 服务器,以及如何使用 Python 客户端和流行的命令行工具,比如 websocat 和 wscat 来测试它。 用 Python 搭建 WebSocket 服务器 我们使用 websockets 库,它提供了基于 asyncio 的易用 WebSocket 服务器实现。下面是一个简单的服务器(Python 代码),监听端口 …
argmax:从未来推理现在 整个机器学习(最优化),背后的根本数学原理是下面这个公式: arg_max_{x∈X} F(x) 它的含义是:在所有可能的输入 x ∈ X 中,找出让目标函数 F(x) 最大的那个 x。这个公式返回的是最优解 x,而不是最大值本身。 这个公式代表【从未来推理出现在的最佳选择】,因为所有的x有哪些,实际上是没办法穷尽的,以及F有哪些,是未来才知道的。代表一种完全信息视角。 这个和“传统”的数学递推公式是反过来的,传统的递推公式是,利用过去的推理未来的,例如斐波那契额数列 ,假设的是F(n-1)和F(n-2)我们已经知道,我们就可以推理F(n)(这也是动态规划算法的核心)。这个是【利用过去的信息推理未来的】。 因此,机器学习/最优化,本质是预测未来。实际上,arg_max 公式,如果用编程语言来表达,非常好理解: 这个思维方式代表的是“从未来反推现在”:F(x) 是未来某种评估函数,我们假设它存在,并试图找到现在该做什么(x)才能让它最大。 def arg_max(X, F): best_x = None best_score = float('-inf') …
在 Python 中,match 关键字用于模式匹配,在 Python 3.10 中作为结构模式匹配的一部分引入,类似于其他语言中的 switch 语句,但功能更强大。 什么是 match 关键字? 从 Python 3.10 开始,match 语句引入了结构化模式匹配(Structural Pattern Matching)。它类似于其他语言中的 switch 语句,但功能更加强大和灵活。 使用 match 的基本示例 def handle(value): match value: case …
在 Python 中寻找数据的众数 statistics.mode() 函数是 Python 中 statistics 模块的一部分,它返回数据集中出现次数最多的单个值(众数)。与 multimode() 不同,mode() 如果数据集包含多个众数(即多模态数据)或数据为空,则会引发错误。 以下是一些示例来说明 mode() 的行为: mode() 的语法 statistics.mode(data) data: 一个序列(例如 list、tuple),其中的元素是可散列的,用于确定众数。 示例 单一众数(单模态数据) from statistics import mode data = …