A Brief Immersion - 傅若愚0 码力 | 40 页 | 3.39 MB | 1 年前3
Object Pascal 参考手册(Ver 0.1) UnitName.Identifier。 在 uses 子句中,你只需列出被程序或单元直接引用的单元。也就是说,如果单元 A 使用单元 B 中 声明的常量、变量、类型、过程或函数,则 A 必须明确引用单元 B;若单元 B 引用单元 C 的标志符,则 单元 A 是间接引用单元 C。这种情况下,在单元 A 的 uses 子句中不必包含 C,但编译器为了处理 A, 它还是必须能找到 B 和 C。 下面的实例演示了间接引用: 译器只需要它们的 .dcu 文件(Windows)或 .dcu/.dpu 文件(Linux),而不是它们的源文件(.pas)。 当一个单元的接口部分被修改时,引用它的其它单元必须被重新编译;但若只修改了单元的实现部 分或其它部分,引用它的单元没必要重新编译。编译器自动跟踪依赖关系,只有在需要时才重新编译单 元。 Circular unit references(循环单元引用) 当单元 所以,下面的例子将产生编译错误: unit Unit1; interface uses Unit2; ... unit Unit2; interface uses Unit1; ... 但是,若把其中的一个引用移到实现部分,这两个单元之间的相互引用将是合法的: unit Unit1; interface uses Unit2; ... unit Unit2; interface0 码力 | 168 页 | 868.25 KB | 1 年前3
RISC-V 开放架构设计之道 1.0.0阶段的翻译工作基本完成。 2022 年 10 月,余子濠在第五期 “一生一芯” 计划的教学环节介绍 RISC-V 指令 集,在备课过程中查阅第 1 版译本,发现仍有不少需要改进之处。彼时,余子濠有若 干教材的出版经验,便与勾凌睿商量,同时邀请彼时为中国科学院计算技术研究所一 年级直博生的陈璐加入翻译团队,三人共同开展第 2 版译本的第 2 阶段翻译工作。第 2 阶段的翻译工作主要对全书进行 MIPS-32 ISA 的延迟分支是一个令人遗憾的例子。考虑流水线执行的场景,处理 器希望下一条待执行指令已位于流水线中,但条件分支指令无法提前确定后续执行的 是顺序的下一条指令(若分支不跳转),还是分支目标地址的指令(若分支跳转)。对 于第一个 5 级流水的微处理器,上述性质导致流水线阻塞一个时钟周期。为解决该问 题,MIPS-32 将分支指令的跳转重新定义为在后续一条指令之后才发生,因此其后续 的福音。虽然几乎所有 ISA 都提供 PC 相对寻址的分支指令,但 x86-32 和 MIPS-32 缺少 PC 相对数据寻址。 补充说明:ARM-32、MIPS-32 和 x86-32 补充说明是一些选读内容,若对某个主题感兴趣,读者可深入阅读,但它们对理解本 书其余部分并非必要。例如,我们未采用官方的 ISA 名称。32 位地址的 ARM ISA 有许多版本,第一版诞生于 1986 年,最新版本是 20050 码力 | 223 页 | 15.31 MB | 1 年前3
Hello 算法 1.0.0b4 C#版的「渐近上界 Asymptotic Upper Bound」。 推算时间复杂度本质上是计算“操作数量函数 ?(?)”的渐近上界。接下来,我们来看函数渐近上界的数学 定义。 � 函数渐近上界 若存在正实数 ? 和实数 ?0 ,使得对于所有的 ? > ?0 ,均有 ?(?) ≤ ? ⋅ ?(?) 则可认为 ?(?) 给出了 ?(?) 的一个渐近上界,记为 ?(?) = ?(?(?)) Figure 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为 1 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 // === File: time_complexity.cs === /* 指数阶(循环实现) 间复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?(?)”的表述,请 将其直接理解为 Θ(?) 。 2. 复杂度 hello‑algo.com 28 2.3. 空间复杂度 「空间复杂度 Space Complexi0 码力 | 341 页 | 27.39 MB | 1 年前3
Hello 算法 1.0.0b4 Python版Bound」。 推算时间复杂度本质上是计算“操作数量函数 ?(?)”的渐近上界。接下来,我们来看函数渐近上界的数学 定义。 2. 复杂度 hello‑algo.com 17 � 函数渐近上界 若存在正实数 ? 和实数 ?0 ,使得对于所有的 ? > ?0 ,均有 ?(?) ≤ ? ⋅ ?(?) 则可认为 ?(?) 给出了 ?(?) 的一个渐近上界,记为 ?(?) = ?(?(?)) Figure 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 2. 复杂度 hello‑algo.com 22 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 # === File: time_complexity.py === def exponential(n: 复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?(?)”的表述,请 将其直接理解为 Θ(?) 。 2. 复杂度 hello‑algo.com 27 2.3. 空间复杂度 「空间复杂度 Space Complexi0 码力 | 329 页 | 27.34 MB | 1 年前3
Hello 算法 1.0.0b4 C++版的「渐近上界 Asymptotic Upper Bound」。 推算时间复杂度本质上是计算“操作数量函数 ?(?)”的渐近上界。接下来,我们来看函数渐近上界的数学 定义。 � 函数渐近上界 若存在正实数 ? 和实数 ?0 ,使得对于所有的 ? > ?0 ,均有 ?(?) ≤ ? ⋅ ?(?) 则可认为 ?(?) 给出了 ?(?) 的一个渐近上界,记为 ?(?) = ?(?(?)) Figure 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为 1 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 // === File: time_complexity.cpp === /* 指数阶(循环实现) 复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?(?)”的表述,请 将其直接理解为 Θ(?) 。 2.3. 空间复杂度 「空间复杂度 Space Complexity」用于衡量算法使用内存空间随着数据量变大时的增长趋势。这个概念与时0 码力 | 343 页 | 27.39 MB | 1 年前3
PyWebIO v0.3.0 使用手册你可以在任何输出函数中使用 before 参数将内容插入到指定的锚点之前,也 可以使用 after 参数将内容插入到指定的锚点之后。 在输出函数中使用 anchor 参数为当前的输出内容标记锚点,若锚点已经存 在,则将锚点处的内容替换为当前内容。 以下代码展示了在输出函数中使用锚点: set_anchor('top') put_text('A') put_text('B', anchor='b') com:8080/bbb/ws_io ,或者省略协议字段: //example.com:8080/aaa/io 。省略协议字段时,PyWebIO根据当前页面 的协议确定要使用的协议: 若当前页面为http协议,则后端接口为http/ws 协议;若当前页面为https协议,则后端接口为https/wss协议。 跨域配置 当后端API与当前页面不再同一host下时,需要在 webio_handler() 或 webio_view() buttons (list) – 选项列表。列表项的可用形式有: dict: {label:选项标签, value:选项值, [type: 按钮 类型], [disabled:是否禁止选择]} . 若 type='reset'/'cancel' 或 disabled=True 可省略 value tuple or list: (label, value, [type], [disabled])0 码力 | 72 页 | 8.55 MB | 1 年前3
PyWebIO v0.3.0 使用手册你可以在任何输出函数中使用 before 参数将内容插入到指定的锚点之前,也可以使用 after 参数将内容 插入到指定的锚点之后。 在输出函数中使用 anchor 参数为当前的输出内容标记锚点,若锚点已经存在,则将锚点处的内容替换为当 前内容。 16 Chapter 4. Documentation PyWebIO, 发布 0.3.0 以下代码展示了在输出函数中使用锚点: set_anchor('top') com:8080/bbb/ws_io , 或者省略协议字段: //example.com:8080/aaa/io 。省略协议字段 时,PyWebIO 根据当前页面的协议确定要使用的协议: 若当前页面为 http 协议,则后端接口为 http/ws 协议;若当前页面为 https 协议,则后端接口为 https/wss 协议。 跨域配置 当后端 API 与当前页面不再同一 host 下时,需要在webio_handler() –选项列表。列表项的可用形式有: – dict: {label: 选 项 标 签, value: 选 项 值, [type: 按 钮 类 型], [disabled: 是 否 禁 止 选 择]} . 若 type='reset'/'cancel' 或 disabled=True 可省略 value – tuple or list: (label, value, [type], [disabled])0 码力 | 70 页 | 1.41 MB | 1 年前3
Hello 算法 1.0.0b4 Java版的「渐近上界 Asymptotic Upper Bound」。 推算时间复杂度本质上是计算“操作数量函数 ?(?)”的渐近上界。接下来,我们来看函数渐近上界的数学 定义。 � 函数渐近上界 若存在正实数 ? 和实数 ?0 ,使得对于所有的 ? > ?0 ,均有 ?(?) ≤ ? ⋅ ?(?) 则可认为 ?(?) 给出了 ?(?) 的一个渐近上界,记为 ?(?) = ?(?(?)) Figure 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为 1 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 // === File: time_complexity.java === /* 复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?(?)”的表述,请 将其直接理解为 Θ(?) 。 2. 复杂度 hello‑algo.com 28 2.3. 空间复杂度 「空间复杂度 Space Complexi0 码力 | 342 页 | 27.39 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版的「渐近上界 Asymptotic Upper Bound」。 推算时间复杂度本质上是计算“操作数量函数 ?(?)”的渐近上界。接下来,我们来看函数渐近上界的数学 定义。 � 函数渐近上界 若存在正实数 ? 和实数 ?0 ,使得对于所有的 ? > ?0 ,均有 ?(?) ≤ ? ⋅ ?(?) 则可认为 ?(?) 给出了 ?(?) 的一个渐近上界,记为 ?(?) = ?(?(?)) Figure 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为 1 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 // === File: time_complexity.go === /* 指数阶(循环实现)*/ hello‑algo.com 28 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?(?)”的表述,请 将其直接理解为 Θ(?) 。 2.3. 空间复杂度 「空间复杂度 Space Complexity」用于衡量算法使用内存空间随着数据量变大时的增长趋势。这个概念与时0 码力 | 347 页 | 27.40 MB | 1 年前3
共 276 条
- 1
- 2
- 3
- 4
- 5
- 6
- 28













