[02 git ] 清华大学电子系科协软件部2023暑期培训

news2025/1/20 5:44:22

 本视频为清华大学电子系科协软件部2023年暑期培训内容的录屏,主要培训内容为游戏开发、网站建设中常用的软件工具,为未来一年软件部新部员维护科协网站、开发清华大学人工智能挑战赛(THUAI)作知识铺垫。本次培训还邀请到两位嘉宾讲授Minecraft红石与计算机图形学的部分内容作为拓展。 电子系公众号中有培训内容的简介:https://mp.weixin.qq.com/s/aCCMlLYLMppVT8fiC11-KA

 本次培训的课件与作业链接如下:
链接:https://pan.baidu.com/s/1tGu16pndFFc3wdmwS5aG0g?pwd=6ufe
提取码:6ufe

2023 年暑期培训终于出啦!内容涉及从 .NET 开发到网站开发与运维等一系列多人协作开发的相关知识,让它成为你步入全栈开发的敲门砖。
此外,相比于往年的暑期培训,今年暑期培训邀请了清华大学的一位知名的精通计算机图形学的学生讲解《计算机图形学》的专业知识,并且该讲师开创性地以【电子信息与通信工程】的全新角度看待计算机图形学,更加深入地探讨了图形学的本质,这在图形学入门教学中属于【首创】,欢迎同学们来听!

Git的概念和作用

Git是一个分布式版本控制系统,用于跟踪文件的变化并协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现在已经成为广泛使用的版本控制工具。

Git的主要特点包括:

1. 分布式:每个开发者都拥有完整的代码仓库副本,可以独立地进行修改和提交,而不需要依赖中央服务器。这样可以提高开发效率和灵活性,并且在没有网络连接时也可以进行工作。

2. 快速高效:Git使用了一种称为"快照(snapshot)"的方式来存储文件的变化,而不是基于差异的方法。这使得Git非常快速,并且占用较少的存储空间。

3. 分支管理:Git非常强大的分支管理功能使得开发团队能够并行地进行不同的工作,每个分支都可以独立进行开发和测试,最后再合并到主分支中。

4. 版本控制:Git可以记录文件的每次修改,包括添加、删除和修改操作。这意味着可以轻松地回溯到任意历史版本,并恢复或比较文件的不同版本。

5. 公共仓库:Git支持将代码仓库托管到各种公共平台上,如GitHub、GitLab和Bitbucket等,方便多人协作和代码共享。

安装Git

安装Git非常简单,并且有许多不同的方式可以完成。下面是在Windows、Mac和Linux上安装Git的步骤:

在Windows上安装Git

1. 下载Git安装文件。可以在 Git 官网 (https://git-scm.com/downloads) 上下载最新版本的Git安装文件。

2. 双击下载好的 .exe 文件,然后按照提示进行安装。在安装过程中,可以选择默认安装选项或自定义安装选项,根据需要进行选择即可。

3. 在安装完成后,打开命令提示符或PowerShell,并输入以下命令来测试是否安装成功:

   ```
   git --version
   ```

   如果安装成功,将会输出Git的版本信息。

### 在Mac上安装Git

1. 使用Homebrew进行安装。打开终端应用程序并运行以下命令安装Homebrew:

   ```
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
   ```

2. 运行以下命令安装Git:

   ```
   brew install git
   ```

3. 在安装完成后,输入以下命令来测试是否安装成功:

   ```
   git --version
   ```

   如果安装成功,将会输出Git的版本信息。

在Linux上安装Git

1. 打开终端并运行以下命令:

   ```
   sudo apt-get update
   sudo apt-get install git
   ```

2. 在安装完成后,输入以下命令来测试是否安装成功:

   ```
   git --version
   ```

   如果安装成功,将会输出Git的版本信息。

常见安装问题和解决方案

1. 安装过程中出现错误,无法继续安装Git。可以尝试重新下载安装文件并重新安装。如果问题仍然存在,可以尝试使用其他方式进行安装,或者查看日志文件以了解问题的原因。

2. 安装完成后,在命令行中输入“git”命令时,出现“git不是内部或外部命令”的错误信息。这可能是由于Git未正确配置系统环境变量所致。在Windows系统中,可以在“环境变量”设置中添加Git的安装目录;在Linux或Mac系统中,可以在~/.bashrc 或 ~/.bash_profile 文件中添加如下语句:PATH=$PATH:/usr/local/git/bin;export PATH。

git的基本概念

当使用Git时,以下是一些更详细的解释和示例命令来帮助您更好地理解Git的基本概念。

1. 仓库(Repository)

Git仓库是存储项目代码的地方。它可以是本地的一个文件夹,也可以是在远程服务器上托管的仓库。在仓库中,Git会跟踪和记录所有代码的变更历史。

- 创建新的本地仓库:
```
git init                        # 在当前目录初始化一个新的本地仓库
```

- 克隆远程仓库到本地:
```
git clone <remote_repository>    # 克隆远程仓库到本地
```

2. 提交(Commit)

提交是将代码的变更保存到Git仓库中的一个操作。每次提交都会生成一个新的版本,它包含了代码的当前状态以及相关的元数据,如作者、时间戳、提交信息等。

- 将修改的文件添加到暂存区域(stage):
```
git add <file>                  # 将指定文件添加到暂存区域
git add .                       # 将所有修改的文件添加到暂存区域
```

- 将暂存区域的内容提交到仓库中:
```
git commit -m "message"         # 将暂存区域的内容提交到仓库,并添加提交信息
```

3. 分支(Branch)

分支是Git中用于并行开发和管理代码的重要概念。它可以让多个人在同一个仓库中独立地进行开发工作,而不会相互干扰。

- 创建新的分支:
```
git branch <branch_name>        # 创建一个新的分支
```

- 切换到指定分支:
```
git checkout <branch_name>      # 切换到指定分支
```

- 查看本地所有分支:
```
git branch                      # 查看本地所有分支
```

- 查看远程所有分支:
```
git branch -r                   # 查看远程所有分支
```

4. 合并(Merge)

合并是将一个分支的更改整合到另一个分支的过程。当一个分支的工作完成后,可以将其合并到主分支或其他目标分支上,以合并代码的修改。

- 将指定分支的更改合并到当前分支:
```
git merge <branch_name>         # 将指定分支的更改合并到当前分支
```

Git的分支管理

Git的分支管理确实是其强大功能之一。下面是一些常见的分支管理操作和策略:

1. 创建分支:使用命令`git branch <branch_name>`可以创建一个新的分支。例如,要创建一个名为"feature"的分支,可以运行命令`git branch feature`。

2. 切换分支:使用命令`git checkout <branch_name>`可以切换到指定的分支。例如,要切换到"feature"分支,可以运行命令`git checkout feature`。

3. 查看分支:使用命令`git branch`可以查看当前仓库中存在的所有分支,并在当前分支前标识"*"。例如,运行命令`git branch`会列出所有分支及当前所在分支。

4. 合并分支:使用命令`git merge <branch_name>`可以将指定的分支合并到当前分支。例如,要将"feature"分支合并到当前分支,可以运行命令`git merge feature`。

5. 删除分支:使用命令`git branch -d <branch_name>`可以删除指定的分支。例如,要删除"feature"分支,可以运行命令`git branch -d feature`。

常见的分支管理策略包括:

- 主分支(master/main):主分支通常用于存放稳定的代码,用于发布版本。对于小型项目,可以直接在主分支上进行开发和维护。对于大型项目,可以考虑使用其他分支进行开发,然后再将代码合并到主分支上。

- 特性分支:特性分支用于开发特定的功能或解决特定的问题。每个特性都可以创建一个独立的分支,开发完成后再合并到主分支上。这样可以保持主分支的稳定性,并方便多人协作开发。

- 发布分支:发布分支用于准备发布版本的代码。在发布分支上进行测试和修复bug,确保代码的可靠性后,再合并到主分支上发布版本。

以上是一些常见的分支管理操作和策略,希望对你有帮助。请记住,Git的分支管理功能非常灵活,你可以根据具体项目的需求和团队的工作流程来选择适合的分支管理方式。

常见的Git基本操作:

1. 初始化仓库:使用 `git init` 命令在当前目录创建一个新的Git仓库。这将在该目录下生成一个名为`.git`的隐藏文件夹,用于存储Git的相关信息。

2. 克隆仓库:使用 `git clone <仓库地址>` 命令将远程仓库克隆到本地。例如,`git clone https://github.com/user/repo.git` 将把名为`repo`的远程仓库克隆到当前目录。

3. 添加文件:使用 `git add <文件名>` 命令将文件添加到暂存区,或使用 `git add .` 添加所有修改过的文件。暂存区相当于一个缓冲区,用于暂时存放文件的修改。

4. 提交变更:使用 `git commit -m "提交信息"` 命令将暂存区的文件提交到本地仓库。提交信息应该清楚地描述此次提交的目的和内容。

5. 查看状态:使用 `git status` 命令查看当前仓库的状态,包括已修改但未暂存、已暂存但未提交的文件等信息。这可以帮助你了解仓库的当前状态。

6. 查看历史:使用 `git log` 命令查看提交历史记录,包括每次提交的作者、提交时间、提交信息等。你可以使用 `git log --graph` 命令以图形化方式查看提交历史。

7. 创建分支:使用 `git branch <分支名>` 命令创建一个新分支。分支可以用于并行开发不同的功能或修复bug,它们是独立于主分支的代码线。

8. 切换分支:使用 `git checkout <分支名>` 命令切换到指定分支。例如,`git checkout feature` 将切换到名为`feature`的分支。

9. 合并分支:使用 `git merge <分支名>` 命令将指定分支合并到当前分支。例如,在主分支上运行`git merge feature` 将把`feature`分支的更改合并到主分支。

10. 拉取更新:使用 `git pull` 命令从远程仓库拉取最新的修改。它会自动合并远程分支的更改到当前分支。

11. 推送更新:使用 `git push` 命令将本地修改推送到远程仓库。例如,`git push origin master` 将把本地的`master`分支推送到名为`origin`的远程仓库。

常见问题和进阶内容

当使用Git时,确实会遇到一些常见问题。以下是一些常见问题和解决方法:

1. 如何解决冲突?
   冲突通常发生在合并分支或拉取远程更新时。解决冲突的步骤如下:
   - 打开包含冲突的文件,查找标记为 "<<<<<<<"、"======="和 ">>>>>>> "的冲突部分。
   - 根据需要编辑文件,去除冲突标记并保留所需的更改。
   - 保存文件后,使用 `git add` 命令将文件标记为已解决冲突。
   - 最后,使用 `git commit` 提交解决冲突的更改。

2. 如何撤销提交?
   如果需要撤销最近的提交,可以使用 `git revert` 或 `git reset` 命令。
   - 使用 `git revert <commit>` 可以创建一个新的提交来撤销指定的提交,并且保留历史记录。
   - 使用 `git reset <commit>` 可以将当前分支的头指针重置到指定的提交,丢弃指定提交之后的所有更改。

这些只是常见问题的解决方法的简要介绍。如果你对Git有更多的兴趣并想深入了解,可以参考以下进阶内容:

1. [Pro Git](https://git-scm.com/book/en/v2):这是一本免费的电子书,涵盖了Git的各个方面,从基础到高级操作都有详细介绍。
2. [Git 钩子](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks):Git钩子是在特定操作发生时自动触发的脚本,可以用于自定义Git行为。
3. [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/):Git Flow 是一种流行的分支管理工作流程,适用于团队协作和版本控制。

当使用Git时,以下是一些更详细的解释和示例命令来帮助您更好地理解Git的基本概念。

1. 仓库(Repository)

Git仓库是存储项目代码的地方。它可以是本地的一个文件夹,也可以是在远程服务器上托管的仓库。在仓库中,Git会跟踪和记录所有代码的变更历史。

- 创建新的本地仓库:
```
git init                        # 在当前目录初始化一个新的本地仓库
```

- 克隆远程仓库到本地:
```
git clone <remote_repository>    # 克隆远程仓库到本地
```

2. 提交(Commit)

提交是将代码的变更保存到Git仓库中的一个操作。每次提交都会生成一个新的版本,它包含了代码的当前状态以及相关的元数据,如作者、时间戳、提交信息等。

- 将修改的文件添加到暂存区域(stage):
```
git add <file>                  # 将指定文件添加到暂存区域
git add .                       # 将所有修改的文件添加到暂存区域
```

- 将暂存区域的内容提交到仓库中:
```
git commit -m "message"         # 将暂存区域的内容提交到仓库,并添加提交信息
```

3. 分支(Branch)

分支是Git中用于并行开发和管理代码的重要概念。它可以让多个人在同一个仓库中独立地进行开发工作,而不会相互干扰。

- 创建新的分支:
```
git branch <branch_name>        # 创建一个新的分支
```

- 切换到指定分支:
```
git checkout <branch_name>      # 切换到指定分支
```

- 查看本地所有分支:
```
git branch                      # 查看本地所有分支
```

- 查看远程所有分支:
```
git branch -r                   # 查看远程所有分支
```

4. 合并(Merge)

合并是将一个分支的更改整合到另一个分支的过程。当一个分支的工作完成后,可以将其合并到主分支或其他目标分支上,以合并代码的修改。

- 将指定分支的更改合并到当前分支:
```
git merge <branch_name>         # 将指定分支的更改合并到当前分支
```

使用Git进行版本控制

当你使用 Git 进行版本控制时,通常会遵循以下基本步骤:

1. **初始化仓库**:在项目文件夹中打开命令行工具,运行 `git init` 命令来初始化一个新的 Git 仓库。

2. **添加文件**:使用 `git add` 命令将文件添加到暂存区,例如 `git add filename`。

3. **提交更改**:运行 `git commit -m "提交信息"` 命令来提交已暂存的文件并附上一条简短的提交信息。

4. **查看状态**:可以随时使用 `git status` 命令来查看文件的状态以及已暂存和未暂存的更改。

5. **查看提交历史**:使用 `git log` 命令来查看提交历史记录,包括作者、日期和提交信息。

6. **创建分支**:使用 `git branch branchname` 命令来创建新的分支,然后使用 `git checkout branchname` 切换到新分支。

7. **合并分支**:在需要时,可以使用 `git merge` 命令将一个分支的更改合并到当前分支。

8. **远程操作**:如果需要与远程仓库进行交互,可以使用 `git remote add origin <远程仓库地址>` 来添加远程仓库,然后使用 `git push` 和 `git pull` 分别推送和拉取代码更改。

为什么需要版本控制

版本控制是一种管理和跟踪软件开发过程中的变化的方法。它具有以下几个重要的原因和优势:

1. 多人协作:在团队中进行软件开发时,每个人都可能对同一个代码库进行修改。版本控制可以帮助团队成员协同工作,轻松地合并彼此的更改,避免冲突和数据丢失。

2. 变更追踪:版本控制系统可以记录每次代码的变更,包括谁做了什么修改,何时进行的修改,以及为什么进行修改。这样可以方便地查找问题、回溯历史版本,并追踪每个变更的目的和背景。

3. 代码备份与恢复:通过版本控制系统,可以定期备份整个代码库,并在需要时恢复到任意历史版本。这对于避免意外数据丢失和恢复错误操作非常有用。

4. 版本发布:版本控制系统可以帮助开发团队管理软件的不同版本。可以为每个发布版本创建一个标签或分支,以便随时回滚到特定版本,或者在不同的版本之间进行切换。

5. 合并与分支:版本控制系统可以让开发人员创建不同的分支,以独立开发不同的功能或修复不同的问题。然后,可以轻松地将这些分支合并到主代码库中,确保代码的稳定性和一致性。

 分支管理

Git的分支管理是其强大功能之一。在这个部分,可以介绍如何创建分支、切换分支、合并分支、删除分支等操作,并提供一些常见的分支管理策略,如主分支(master/main)和特性分支的使用方法。

Git的分支管理确实是其强大功能之一。下面是一些常见的分支管理操作和策略:

1. 创建分支:使用命令`git branch <branch_name>`可以创建一个新的分支。例如,要创建一个名为"feature"的分支,可以运行命令`git branch feature`。

2. 切换分支:使用命令`git checkout <branch_name>`可以切换到指定的分支。例如,要切换到"feature"分支,可以运行命令`git checkout feature`。

3. 查看分支:使用命令`git branch`可以查看当前仓库中存在的所有分支,并在当前分支前标识"*"。例如,运行命令`git branch`会列出所有分支及当前所在分支。

4. 合并分支:使用命令`git merge <branch_name>`可以将指定的分支合并到当前分支。例如,要将"feature"分支合并到当前分支,可以运行命令`git merge feature`。

5. 删除分支:使用命令`git branch -d <branch_name>`可以删除指定的分支。例如,要删除"feature"分支,可以运行命令`git branch -d feature`。

常见的分支管理策略包括:

- 主分支(master/main):主分支通常用于存放稳定的代码,用于发布版本。对于小型项目,可以直接在主分支上进行开发和维护。对于大型项目,可以考虑使用其他分支进行开发,然后再将代码合并到主分支上。

- 特性分支:特性分支用于开发特定的功能或解决特定的问题。每个特性都可以创建一个独立的分支,开发完成后再合并到主分支上。这样可以保持主分支的稳定性,并方便多人协作开发。

- 发布分支:发布分支用于准备发布版本的代码。在发布分支上进行测试和修复bug,确保代码的可靠性后,再合并到主分支上发布版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1469803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache celeborn 安装及使用教程

1.下载安装包 https://celeborn.apache.org/download/ 测0.4.0时出现https://github.com/apache/incubator-celeborn/issues/835 2.解压 tar -xzvf apache-celeborn-0.3.2-incubating-bin.tgz 3.修改配置文件 cp celeborn-env.sh.template celeborn-env.shcp log4j2.xml.…

【PX4SimulinkGazebo联合仿真】在Simulink中使用ROS2控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化

在Simulink中使用ROS2控制无人机进入Offboard模式起飞悬停并在Gazebo中可视化 系统架构Matlab官方例程Control a Simulated UAV Using ROS 2 and PX4 Bridge运行所需的环境配置PX4&Simulink&Gazebo联合仿真实现方法建立Simulink模型并完成基本配置整体框架各子系统实现…

人工智能绘画的时代下到底是谁在主导,是人类的想象力,还是AI的创造力?

#ai作画 目录 一.AI绘画的概念 1. 数据集准备&#xff1a; 2. 模型训练&#xff1a; 3. 生成绘画&#xff1a; 二.AI绘画的应用领域 三.AI绘画的发展 四.AI绘画背后的技术剖析 1.AI绘画的底层原理 2.主流模型的发展趋势 2.1VAE — 伊始之门 2.2GAN 2.2.1GAN相较于…

香港服务器掉包原因及处理方法

在使用香港服务器的过程中&#xff0c;有时会遇到“掉包”现象&#xff0c;即数据传输过程中数据包丢失或延迟。这不仅影响用户体验&#xff0c;还可能对企业运营造成不良影响。那么&#xff0c;香港服务器掉包的原因是什么?又该如何处理呢?小库评测将为您科普相关知识。 一、…

消息中间件篇之RabbitMQ-消息重复消费

一、导致重复消费的情况 1. 网络抖动。 2. 消费者挂了。 消费者消费消息后&#xff0c;当确认消息还没有发送到MQ时&#xff0c;就发生网络抖动或者消费者宕机。那当消费者恢复后&#xff0c;由于MQ没有收到消息&#xff0c;而且消费者有重试机制&#xff0c;消费者就会再一次消…

一招鲜吃遍天!ChatGPT高级咒语揭秘:记忆、洗稿、速写SEO文章(一)

🌟 摘要 🌟 这个专栏系列的初衷是针对特定痛点精心设计GPT提示词,在这篇文章中,我们深入探讨了利用GPT技术解决三个常见挑战:增强记忆力、内容创新、以及SEO文章速写的高级技巧。这些挑战分别对应三个独特的解决策略,我们将逐一详细解析。 首先,解决记忆增强的挑战,我…

聊聊JVM运行时数据区的堆内存

聊聊JVM运行时数据区的堆内存 内存模型变迁&#xff1a; Java堆在JVM启动时创建内存区域去实现对象、数组与运行时常量的内存分配&#xff0c;它是虚拟机管理最大的&#xff0c;也是垃圾回收的主要内存区域 。 内存模型变迁&#xff1a; 为什么要有年轻区和老年区&#xff1f;…

js逆向-2

#md5加密&#xff0c;某宝案例演示。 #免责声明:本文仅供学习使用&#xff0c;请勿用于其他违法行为(╥ω╥)

通过STM32F756 QSPI来读写数据

通过STM32F756 QSPI来读写数据 手上做了一款STM32F756IGT6的开发板&#xff0c;是网上的公板子&#xff0c;扩展了32MB SDRAM&#xff0c; 但QSPI有一个引脚是有错误&#xff0c; 后面找了出来&#xff0c; 同时引出了大量的IO接口&#xff0c;可以支持LCD&#xff0c;但我没有…

DHCP配置案例-通过DHCP Relay功能从DHCP Server获取IP地址

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

普中51单片机学习(LCD1602)

LCD1602 1602液晶也叫1602字符型液晶&#xff0c;它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成&#xff0c;每个点阵字符位都可以用显示一个字符&#xff0c;每位之间有一个点距的间隔&#xff0c;每行之间也有间隔&#…

【《高性能 MySQL》摘录】第 2 章 MySQL 基准测试

文章目录 2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标 2.3 基准测试方法2.3.1 设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性 2.4 基准测试工具…

win10安装使用AxurePR9

背景&#xff1a;win10 安装、汉化 Axure Pr9 下载 安装包 链接&#xff1a;https://pan.baidu.com/s/1taMgh2zLbaFK7VTfUXTHdQ 提取码&#xff1a;kygo 安装 修改安装目录 打开是英文的 汉化 复制lang包到Axure安装包 再打开就是中文 问题 发布html后火狐无法打开 一、…

Sublime Text4配置C#运行环境

这里写自定义目录标题 前言部署.NET环境Sublime Text4配置C#编译环境1. 下载插件 运行测试 前言 今天把家里的9年前的远古神机搬了出来&#xff0c;重装了个win7的精简版&#xff0c;本打算装个VScode测试一下是否能写C#代码&#xff0c;结果是可以的&#xff0c;但&#xff0…

第十四章 Linux面试题

第十四章 Linux面试题 日志t.log(访问量)&#xff0c; 将各个ip地址截取&#xff0c;并统计出现次数&#xff0c;并按从大到小排序(腾 讯) http://192. 168200.10/index1.html http://192. 168.200. 10/index2.html http:/192. 168 200.20/index1 html http://192. 168 200.30/…

python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 强大的节点功能&#xff0c;不仅仅节点的种类很多&#xf…

git 获取仓库代码与提交代码

1. 建文件夹&#xff0c;获取项目的完整代码 2.Git安装 打开安装程序后&#xff0c;一直点击下一步&#xff0c;直到以下位置&#xff1a; 此处代表使用VIM作为Git默认的编辑器。继续下一步&#xff0c;直到: 这里选择第一项&#xff0c;即仅仅在Bash中使用Git。如果有Linux的学…

电路设计(25)——4位数字频率计的multisim仿真及PCB设计

1.设计要求 使用4位数码管&#xff0c;显示输入信号的频率。完成功能仿真后&#xff0c;用AD软件&#xff0c;画出原理图以及PCB。 2.电路设计 输入信号的参数为&#xff1a; 可见&#xff0c;输入为168HZ&#xff0c;测量值为170HZ&#xff0c;误差在可接受的范围内。 3.PCB设…

C++ 离散化算法设计原则:压缩的都是精华

公众号&#xff1a;编程驿站 1. 离散化 离散化是离散数学中的概念。离散化算法&#xff0c;指把无限空间中的离散数据映射到一个有限的存储空间中&#xff0c;并且对原数据进行有序索引化。主打压缩的都是精化。 离散化流程&#xff1a; 对离散化数列{235,897,458,7654,458…

LeetCode 热题 100 | 二叉树(二)

目录 1 543. 二叉树的直径 2 102. 二叉树的层序遍历 3 108. 将有序数组转换为二叉搜索树 菜鸟做题&#xff0c;语言是 C 1 543. 二叉树的直径 这道题和 124. 二叉树中的最大路径和 太像了 题眼&#xff1a;二叉树的 直径 是指树中任意两个节点之间 最长路径的长度 。…