当前位置: 首页 > 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)功能,用正则表达式模式匹配。 查…...

中国民办高职教育的未来10年发展趋势(2025-2035)年度深度战略研究报告

陈天伟 (四川城市职业学院,四川 成都 610110) 宏观战略背景:教育现代化2035与职业教育的定位转型 在迈向2035年基本实现社会主义现代化的征程中,中国职业教育正经历着从“补充教育”向“类型教育”的根本性转变。根…...

2026最权威的十大降重复率神器实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于当下竞争极为激烈的商业环境之中,企业降本增效的需求变得越发迫切&#xff0c…...

谷歌Gemma 4模型深度解析:开源王者来袭,单卡可跑,性能碾压20倍参数量对手

2026年4月2日,谷歌DeepMind悄然发布新一代开源大模型Gemma 4系列,瞬间引爆AI开源社区。作为谷歌迄今为止最智能的开放模型,Gemma 4不仅带来了覆盖手机到数据中心的全场景型号,更以Apache 2.0开源协议彻底放开限制,凭借…...

老显卡在Debian 12上重获新生:保姆级教程解决NVIDIA 390驱动安装与版本冲突

老显卡在Debian 12上的重生指南:NVIDIA 390驱动完整解决方案 当GeForce 600/700系列显卡遇上最新的Debian 12系统,就像让一位老将披上现代战甲——既充满情怀又颇具挑战。本文将带你穿越驱动安装的迷雾森林,从硬件识别到版本冲突解决&#xf…...

SiameseUIE模型Git使用进阶:团队协作开发指南

SiameseUIE模型Git使用进阶:团队协作开发指南 1. 开篇:为什么团队开发需要Git规范 咱们做AI项目开发时,经常遇到这样的场景:几个人同时修改代码,结果合并时冲突不断;或者某位同事的代码把整个项目搞崩了&…...

Jimeng AI Studio实现Web爬虫:数据采集自动化方案

Jimeng AI Studio实现Web爬虫:数据采集自动化方案 1. 项目背景与需求 电商公司每天需要从多个网站采集商品信息,传统的手工复制粘贴方式效率低下,而且容易出错。技术团队需要处理上百个商品页面的数据,包括价格、库存、描述和用…...

C#实战:5步搞定阿里健康药品追溯码接口对接(附完整签名源码)

C#实战:5步高效对接阿里健康药品追溯码API 在医院和药店管理系统中,药品追溯功能已成为刚需。阿里健康提供的药品追溯码查询接口,能帮助医疗机构快速获取药品全流程信息。作为.NET开发者,你可能需要将这个功能集成到现有ERP系统中…...

Jimeng LoRA自动化测试方案:脚本驱动多Epoch批量生成+效果评分体系

Jimeng LoRA自动化测试方案:脚本驱动多Epoch批量生成效果评分体系 1. 项目简介:一个为LoRA进化史量身定做的“显微镜” 如果你训练过LoRA模型,尤其是像Jimeng(即梦)这样风格独特的系列,一定遇到过这个头疼…...

十字军之王II双字节字符显示解决方案:从乱码到完美支持的技术实现

十字军之王II双字节字符显示解决方案:从乱码到完美支持的技术实现 【免费下载链接】CK2dll Crusader Kings II double byte patch /production : 3.3.4 /dev : 3.3.4 项目地址: https://gitcode.com/gh_mirrors/ck/CK2dll 当《十字军之王II》玩家第一次在游戏…...

ZYNQ实战指南(二) FPGA IO口驱动HDMI显示技术解析

1. HDMI显示技术基础与ZYNQ方案优势 HDMI作为现代高清显示设备的通用接口,其核心功能是传输未经压缩的视频和音频数据。传统方案通常需要专用HDMI芯片完成信号转换,但我在多个项目中发现,利用ZYNQ芯片的PL(可编程逻辑)…...