当前位置: 首页 > news >正文

第1章 引论

前言

        这一章,阐述本书的目的,并简要复习离散数学以及程序设计的一些概念:

  • 看到程序在较大输入情况下的运行性能与在适量输入情况下的运行性能具有同等重要性
  • 总结本书其余部分所需要的数学基础
  • 简要复习递归

1.1 本书讨论的内容

        在许多问题当中,一个重要的观念是:写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,那么运行时间就变成了重要的问题。我们将在本书中看到对于大量的输入如何估计程序的运行时间,尤其是如何在尚未具体编码的情况下比较两个程序的运行时间。我们还将看到彻底改进程序速度以及确定程序瓶颈的方法。这些方法将使我们能够找到需要大力优化的那些代码段。

1.2 数学知识复习

        本节列出一些需要记住或是能够推导出的基本公式,复习基本的证明方法

1.2.1 指数

eq?%5Cmathit%7BX%5E%7BA%7DX%5E%7BB%7D%3DX%5E%7BA+B%7D%7D

eq?%5Cmathit%7B%5Cfrac%7BX%5E%7BA%7D%7D%7BX%5E%7BB%7D%7D%3DX%5E%7BA-B%7D%7D

eq?%5Cmathit%7B%28X%5E%7BA%7D%29%5E%7BB%7D%3DX%5E%7BAB%7D%7D

eq?%5Cmathit%7BX%5E%7BN%7D+X%5E%7BN%7D%3D2X%5E%7BN%7D%5Cneq%20X%5E%7B2N%7D%7D

eq?%5Cmathit%7B2%5E%7BN%7D+2%5E%7BN%7D%3D2%5E%7BN+1%7D%7D

1.2.2 对数

        在计算机科学中,除非有特别的声明,所有的对数都是以2为底的

定义:当且仅当eq?%5Cmathit%7Blog_%7BX%7DB%3DA%7Deq?%5Cmathit%7BX%5E%7BA%7D%3DB%7D

由该定义得到几个方便的等式:

定理1.1

eq?%5Cmathit%7Blog_%7BA%7DB%3D%5Cfrac%7Blog_%7BC%7DB%7D%7Blog_%7BC%7DA%7D%7Deq?%5Cmathit%7BC%3E0%7D

定理1.2

eq?%5Cmathit%7BlogAB%3DlogA+logB%7D

其他有用的公式

B%3DlogA-logB%7D

eq?%5Cmathit%7Blog%28A%5E%7BB%7D%29%3DBlogA%7D

eq?%5Cmathit%7BlogX%3CX%7D(对所有的eq?%5Cmathit%7BX%3E0%7D成立)

eq?%5Cmathit%7Blog1%3D0%7Deq?%5Cmathit%7Blog2%3D1%7Deq?%5Cmathit%7Blog1024%3D10%7Deq?%5Cmathit%7Blog1048576%3D20%7D

1.2.3 级数

几何级数

eq?%5Cmathit%7B%5Csum_%7Bi%3D0%7D%5E%7BN%7D2%5E%7Bi%7D%3D2%5E%7BN+1%7D-1%7D

eq?%5Cmathit%7B%5Csum_%7Bi%3D0%7D%5E%7BN%7DA%5E%7Bi%7D%3D%5Cfrac%7BA%5E%7BN+1%7D-1%7D%7BA-1%7D%7D

eq?%5Cmathit%7B%5Csum_%7Bi%3D0%7D%5E%7BN%7DA%5E%7Bi%7D%5Cleqslant%20%5Cfrac%7B1%7D%7B1-A%7D%280%3CA%3C1%29%7D

收敛级数

eq?%5Cmathit%7B%5Csum_%7Bi%3D0%7D%5E%7B%5Cinfty%20%7DA%5E%7Bi%7D%280%3CA%3C1%29%3D%5Cfrac%7B1%7D%7B1-A%7D%7D

2%5E%7Bi%7D%3D2%7D

算数级数

eq?%5Cmathit%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7Di%3D%5Cfrac%7BN%28N+1%29%7D%7B2%7D%5Capprox%20%5Cfrac%7BN%5E%7B2%7D%7D%7B2%7D%7D

eq?%5Cmathit%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7Di%5E%7B2%7D%3D%5Cfrac%7BN%28N+1%29%282N+1%29%7D%7B6%7D%5Capprox%20%5Cfrac%7BN%5E%7B3%7D%7D%7B3%7D%7D

eq?%5Cmathit%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7Di%5E%7Bk%7D%5Capprox%20%5Cfrac%7BN%5E%7Bk+1%7D%7D%7B%5Cleft%20%7C%20k+1%20%5Cright%20%7C%7D%7Deq?%5Cmathit%7Bk%5Cneq%20-1%7D

        数eq?%5Cmathit%7BH_%7BN%7D%7D叫作调和数,其和叫作调和和。以下近似式中的误差趋向于eq?%5Cmathit%7B%5Cgamma%20%5Capprox%200.57721566%7D,这个值称为欧拉常数(Euler's constant)

eq?%5Cmathit%7BH_%7BN%7D%3D%5Csum_%7Bi%3D1%7D%5E%7BN%7D%5Cfrac%7B1%7D%7Bi%7D%5Capprox%20log_%7Be%7DN%7D

代数运算

eq?%5Cmathit%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7Df%28N%29%3DNf%28N%29%7D

eq?%5Cmathit%7B%5Csum_%7Bi%3Dn_%7B0%7D%7D%5E%7BN%7Df%28i%29%3D%5Csum_%7Bi%3D1%7D%5E%7BN%7Df%28i%29-%5Csum_%7Bi%3D1%7D%5E%7Bn_%7B0%7D-1%7Df%28i%29%7D

1.2.4 模运算

        如果N整除A-B,那么我们就说A与B模N同余(congruent),记为A=B(mod N)。直观地看,这意味着无论A还是B除以N,所得余数都是相同的。于是,81=61=1(mod 10)。如同等号的情形一样,若A=B(mod N),则A+C=B+C(mod N)以及AD=BD(mod N)。
        有许多定理适用于模运算,其中有一些特别要用到数论来证明。我们将谨慎地使用模运算,这样,前面的一些定理也就足够了。

1.2.5 证明方法

1.3 递归简论

 

相关文章:

第1章 引论

前言 这一章,阐述本书的目的,并简要复习离散数学以及程序设计的一些概念: 看到程序在较大输入情况下的运行性能与在适量输入情况下的运行性能具有同等重要性总结本书其余部分所需要的数学基础简要复习递归 1.1 本书讨论的内容 在许多问题当中…...

深入探究Linux文件:.sh、.swp文件的作用与意义 (linux .sh.swp)

近年来,Linux操作系统已经成为了许多服务器、云计算平台、嵌入式设备等领域的首选。Linux操作系统囊括了大量的命令和文件,而其中 .sh 和 .swp 文件是许多 Linux 用户较为熟悉的两种文件类型。那么,这两种文件的作用和意义是什么呢&#xff1…...

优雅的使用String字符串处理各种类型转换

文章目录 🌟 优雅的使用String字符串处理各种类型转换🍊 基本类型转字符串🍊 字符串转基本类型🍊 字符串与字符数组的转换🍊 字符串与字节数组的转换🍊 其他类型转字符串🍊 总结 📕我…...

Harmony 个人中心(页面交互、跳转、导航、容器组件)

个人中心 前言正文一、创建工程二、登录① 更换启动页面② 拓展修饰符③ 页面跳转④ 等待进度条 三、导航栏四、首页① 轮播图② 网格列表 五、我的① 带参数跳转 六、源码 前言 今天是1024,祝各位程序员们,钱多事少离家近,不秃也强bug黄。在…...

AlDente Pro for Mac: 掌控电池充电的终极解决方案

你是否曾经为了保护你的MacBook的电池,而苦恼于无法控制它的充电速度?AlDente Pro for Mac 是一款专为Mac用户设计的电池管理工具,它能帮助你解决这个问题。 AlDente Pro for Mac 是一款电池最大充电限制软件,它能够让你自由地设…...

tomcat的负载均衡、动静分离(nginx联动)

动静分离: 访问静态页面和动态页面分开 实现动态和静态页面负载均衡 实验5台虚拟机 一、动态负载均衡 3台虚拟机模拟: 代理服务器:30 tomcat动态页面:21、22 代理服务器: proxy_pass http://tomcat; proxy_set_h…...

基于单片机的温湿度检测及远程控制系统设计

目 录 引 言. 2 第一章 绪 论. 2 1.1 单片机简介 2 1.2 传感器简介 2 1.3 LCD液晶显示器简介 2 1.4 本设计的主要内容和目标 2 第二章 系统总体设计. 2 2.1 系统功能要求与技术指标 2 2.1.1 功能要求. 2 2.1.2 技术指标. 2 2.2 系统设计思路 2 2.3系统设计原则 2 2.4 系…...

前后端交互系统:在Node.js中运行JavaScript

在Node.js中运行JavaScript,您需要编写适用于服务器端的代码,而不是浏览器端的代码。以下是一些示例代码,用于在Node.js中创建一个简单的HTTP服务器并在浏览器中访问它: // 引入Node.js内置的http模块 const http require(http);…...

Maven学习

Maven介绍 Maven是Apache的一个开源项目,主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 Maven可以让团队能够更科学的构建项目,我们可以用配置文件的方式,对项目的名称、描述、项目版本号、项目依赖等信息进行描述…...

《动手学深度学习 Pytorch版》 10.2 注意力汇聚:Nadaraya-Watson 核回归

import torch from torch import nn from d2l import torch as d2l1964 年提出的 Nadaraya-Watson 核回归模型是一个简单但完整的例子,可以用于演示具有注意力机制的机器学习。 10.2.1 生成数据集 根据下面的非线性函数生成一个人工数据集,其中噪声项 …...

测试C#调用Windows Media Player组件

新建基于.net framework的Winform项目,可以通过添加引用的方式选择COM组件中的Windows Media Player组件,如下图所示:   也可以在VS2022的工具箱空白处点右键,选择“选择项…”菜单。   在弹出的选择工具箱项窗口中&#xf…...

面试经典150题——Day20

文章目录 一、题目二、题解 一、题目 14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string “”. Example 1: Input: strs [“flower”,“flow”…...

[SQL开发笔记]AND OR运算符复杂表达式开发实例

结合 AND & OR实例:通过圆括号使用and或or来组成复杂的表达式 目标数据库及表:使用 DRobot数据库,"T_Drobot" 表 假设我们需要查询"T_Drobot" 表,并从"T_Drobot"表中查询选取creator为 "…...

如何将本地 PDF 文件进行翻译

在日常工作和学习中,我们经常会遇到需要翻译 PDF 文件的情况。比如,我们需要将一份英文的技术文档翻译成中文,或者将一份中文的法律文件翻译成英文。 传统上,我们可以使用专业翻译软件或服务来翻译 PDF 文件。但是,这…...

Node.js的readline模块 命令行交互的模块

Node.js是一个非常流行的JavaScript运行时环境,它提供了许多内置模块来帮助我们开发应用程序。其中之一是readline模块,它提供了一种简单的方法来读取用户输入并进行交互。 本文将详细介绍readline模块的API和使用案例,并附有代码注释。 re…...

前沿重器[36] | ACL23-基于检索的大语言模型-报告阅读

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…...

2023秋招笔试算法Python3题解

诸神缄默不语-个人CSDN博文目录 签两方了,感觉秋招已经结束了,所以发布一下之前写的笔试编程题题解。 不全。可能有些题我会继续补。 不保证能过。 后续依然有可能继续刷算法题,但是就另外专门写博文来解析了。 打码是因为原则上其实是不让公…...

uniapp--点击上传图片到oss再保存数据给后端接口

项目采用uniapp与uview2.0组件库 --1.0的也可以参考一下,大差不差 一、项目要求与样式图 点击上传n张图片到oss,然后点击提交给后端 二、思路 1、打开上传按钮,弹出框内出现上传图片和提交按钮 2、点击上传图片区域,打开本地图…...

创建Secret(使用kubectl)

创建Secret(使用kubectl) 假设某个 Pod 需要访问数据库。在您执行 kubectl 命令所在机器的当前目录,创建文件 ./username.txt 文件和 ./password.txt 暂存数据库的用户名和密码,后续我们根据这两个文件配置 kubernetes secrets。…...

Notepad++正则查询替换操作

Notepad编辑器查找功能非常强大,本处记录一些实战中常用到复杂查询替换操作。 注意:如果是重要文件,替换操作前最好备份;当前一个操作后也可以用ctrlz恢复。 查找重复行 用查找(ctrlf)功能,用正则表达式模式匹配。 查…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...