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

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...