生活糖果的收藏夹

一个软件工程师的技术笔记与生活随想。热衷于探索技术的边界,也享受慢下来思考生活的瞬间。

最近在读:《巧克力与佛》208 篇文章

2023

40

「Git|场景案例」从项目中删除之前commit过的文件并且让git不追踪删除操作

本文主要介绍如何在git中删除文件但是让git不追踪这些删除操作

从零到一快速掌握web开发

「网页开发|前端开发|Vue」10 vuex模块化:将数据划分成不同modules分别管理

本文主要介绍如何使用vuex的modules将状态数据根据不同模块进行划分并分别管理以及如何使用mapGetters快速将状态管理中的数据导入成local变量。

从零到一快速掌握web开发

「网页开发|前端开发|Vue」09 Vue状态管理Vuex:让页面根据用户登录状态渲染不同内容

本文主要介绍如何通过Vue的状态管理框架Vuex来管理一些被不同组件或不同页面共同使用的数据,然后展示如何通过状态管理用户信息,并且在具体页面获取用户信息,并且根据用户信息的不同展示不同的页面内容。

从零到一快速掌握web开发

「Python|音视频处理|场景案例」如何将视频转换成gif动图

本文主要介绍如何使用python常用的音视频处理第三方库moviepy将视频转换成gif动图。

python

「网页开发|后端开发|Flask」08 python接口开发快速入门:技术选型&写一个HelloWorld接口

本文主要介绍为网站搭建后端时的技术选型考虑,以及通过写一个简单的HelloWorld接口快速了解前端和后端交互的流程。

未分类

「工具|数据接口」免费公开的REST API & 如何借助github搭建自己的fake API接口

本文主要介绍日常开发、测试、教学或者分享中,可能遇到的模拟数据问题。分享免费开发的测试数据接口,以及如何利用github快速搭建定制化的接口数据,避免使用真实数据的风险以及自己现编数据的麻烦。

从零到一快速掌握web开发高效程序员的修炼

「网页开发|前端开发|Vue」07 前后端分离:如何在Vue中请求外部数据

本文主要介绍两种在Vue中访问外部API获取数据的方式,通过让Vue通过项目外部的接口来获取数据,而不是直接由项目本身进行数据库交互,可以实现前端代码和后端代码的分离,让两个部分的代码编写更独立高效。

未分类

「网页开发|前端开发|Vue」06 公共组件与嵌套路由:让每一个页面都平等地拥有导航栏

本文主要介绍在多个页面存在相同部分时,如何提取公共组件然后在多个页面中导入组件重复使用来减少重复代码。在这基础上介绍了通过嵌套路由的方式来避免页面较多或公共部分较多的情况下,避免不断手动导入公共组件的麻烦。

从零到一快速掌握web开发

「网页开发|前端开发|Vue」05 Vue实战:从零到一实现一个网站导航栏

本文主要介绍如何从最开始的草图,通过确定基本结构、修改元素布局、美化外观来实现一个网站导航栏,从而熟悉网页开发的基本流程。同时,我们会把性能、规范性、可维护性方面的代码优化也考虑其中。

从零到一快速掌握web开发

「网页开发|前端开发|Vue」04 快速掌握开发网站需要的Vue基础知识

本文主要介绍使用Vue进行前端开发的一些必备知识,比如:Vue应用实例,Vue的组件概念,模板语言和模板语法,计算属性,路由配置等等。

从零到一快速掌握web开发

「网页开发|前端开发|页面布局」03 学会够用的CSS,实现任意你想要的页面布局

本文主要介绍如何分析页面布局,了解HTML标签元素的默认布局以及如何修改标签元素的布局方式,最终能够结合CSS框架实现任意我们看到或者想到的页面布局。

从零到一快速掌握web开发

「网页开发|前端开发|Vue」02 从单页面到多页面网站:使用路由实现网站多个页面的展示和跳转

本文主要介绍如何使用路由控制来实现将一个单页面网站扩展成多页面网站,包括页面扩展的逻辑,vue的官方路由vue-router的基本用法以及扩展用法

从零到一快速掌握web开发

「Python|加密算法|场景案例」用Python实现ECB模式的AES加密算法

本文主要介绍如何用Python实现ECB模式的AES加密算法,满足一些数据请求头参数加密或者请求体数据加密的需求。

python给程序员看的python教程

「网页开发|前端开发|Vue」01 快速入门:快速写一个Vue的HelloWorld项目

本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。

从零到一快速掌握web开发

「Python|音视频处理|环境准备」如何在Windows系统下安装并配置音视频处理工具FFmpeg

本文主要介绍如何在Windows系统下安装并配置音视频处理工具FFmpeg,方便使用python进行音视频相关的下载或编辑处理。

未分类

「网页开发|环境安装」Windows系统下安装node.js

本文主要介绍在windows系统下的node.js环境安装。windows系统的Node.js安装过程与其他普通软件的安装类似,本文主要给刚入门的伙伴一个参考。

从零到一快速掌握web开发

「Python|微信机器人|问题记录」使用itchat登录微信失败 mismatched tag 错误

本文主要记录使用python的第三方库itchat进行微信操作自动化时,在第一步进行微信登录时遇到的登录失败问题,以及最后解决问题的方案

python

「Python|aiohttp|并发与协程」将HTTP请求提速成百上千倍!一次性掌握把requests请求改成协程的通用方法

本文主要介绍如何通过使用aiohttp库将同步的http请求改成异步方式请求,从而降低等待网络IO过程中时间和计算资源的浪费。主要包括如何将常见的requests请求改用aiohttp异步执行以及如何将异步的批量请求方法封装成普通方法/同步调用方式,给业务模块调用。

python高效程序员的修炼给程序员看的python教程

「Python|Pandas|场景案例」如何只保留DataFrame数据集的某些列(要保留的列不固定)

本文主要介绍在使用pandas进行数据分析过程中的数据预处理时,如果希望仅保留某些列的数据需要如何操作。同时介绍一些特殊情况,比如列是用变量存储;或者列是一个全集,处理的数据集中不一定包括列出的全部列名。

数据分析python

「移动端自动化测试|环境配置」安装和配置adb环境

本文主要介绍配置移动端自动化测试需要使用到的adb环境

未分类

「问题记录|VirtualBox」OSX系统启动就异常退出的问题

需要一个OSX系统进行软件打包,原本想在docker中进行,奈何电脑配置不够格。所以还是回归VirtualBox的怀抱。这里记录一个小操作。

未分类

「Python|音视频处理|场景案例」如何使用ffmpeg下载m3u8视频到本地并保存成mp4

本文主要介绍如何使用ffmpeg批量下载视频到本地并保存成指定格式。

python给程序员看的python教程

「Python|环境安装|Windows」如何在Windows上安装Python环境?

本文主要介绍如何在Windows上安装Python,帮助初学者或者非程序员伙伴快速搭建可以运行python代码的环境。

python

「Python|图像处理|场景案例」如何将彩色图片转成黑白的灰度图片?

本文主要介绍如何使用python将彩色图片转换成黑白的灰度图片。

python

「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?

本文主要介绍如何在使用selenium进行自动化测试的时候模拟各种鼠标操作。

python

「Python|音视频处理|场景案例」如何获取音视频中声音片段的起止时间?

本文主要介绍如何使用python的第三方库moviepy找出音视频中声音开始出现的位置以及声音结束的位置。

python

「Python|音视频处理|场景案例」如何将多个视频合并成多个子画面并排的单个视频?

本文主要介绍如何将多个视频画面合并到一个视频中,使得合成后的视频画面是原视频的并排画面。

python

「Python|网页开发」如何使用Django快速开始进行网页开发:写个Hello World!

本文主要介绍如何从零开始借助django框架快速启动一个网页服务器然后进入编写HTML页面的阶段。

从零到一快速掌握web开发python

「Python|认知体系」为什么程序世界会需要函数定义和模块化?

本文主要介绍python中的函数定义方法以及函数定义和模块化存在的必要性

python

「软技能|真・复盘」学习类复盘:迭代出自己的高效学习法

本文主要介绍学习相关的场景如何进行具体有效的复盘。

高效程序员的修炼

「Python|输入输出」如何进行用户输入、文件输入和输出

本文主要介绍Python中如何让用户进行内容输入,如何从文件中读取数据作为输入以及如何将数据保存到文件中

python给程序员看的python教程

「python|语言特性」为什么f-string是python中最舒适的字符串格式化方式

本文主要介绍python语言特性中关于字符串格式化的特性,f-string的特点、具体用法和注意事项

python给程序员看的python教程

「Python|数据结构」如何用好我们离不开的字符串?

本文主要介绍python原生数据结构字符串的特点以及使用场景

python给程序员看的python教程

「Python|VS Code」如何在VS Code中使用Jupyter Notebook运行Python代码

本文主要介绍如何在VS Code安装Jupyter Notebook的扩展并创建notebook文件,并在notebook中运行python代码。同时,介绍使用Jupyter notebook运行python代码的好处。

python

「Python|音视频处理|场景案例」如何拼接、裁剪、多轨合并两个或多个视频

本文主要介绍如何使用python的第三方库moviepy进行简单的视频编辑操作,比如: 拼接,裁剪,多轨合并。

python给程序员看的python教程

「Python|Selenium|场景案例」如何定位iframe中的元素?

本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素

python给程序员看的python教程

「软技能|真・复盘」工作类复盘:注意工作幸福感,找到自己工作的重点、方向和价值感

本文主要介绍工作相关的场景如何进行具体有效的复盘。

高效程序员的修炼

「软技能|真・复盘」复盘不是总结也不是批斗,当我们聊复盘的时候我们在干什么

本文主要介绍复盘的起源并由此延伸出当我们在做工作和生活的复盘时我们的目标以及如果要使得复盘有效我们该如何做。

高效程序员的修炼

「Python|图像处理|场景案例」如何给图片添加水印

本文主要介绍如何使用python的PIL库给图片增加水印

python

「Python|数据结构」用于数据查询的哈希表:集合和字典

本文主要介绍python原生数据结构集合和字典的特点以及使用场景

python高效程序员的修炼给程序员看的python教程

2022

146

「python|数据结构」列表和元组的使用场景是什么?

本文主要介绍python原生数据结构列表和元组的特点以及对应的使用场景。

python高效程序员的修炼给程序员看的python教程

「C语言|常用内置函数」快速排序、二分查找、字符串读取复制和比较

本文主要介绍C语言常用的内置函数,包括快速排序qsort、二分查找bsearch、字符串复制strcpy、字符串比较strcmp、字符串整行读取fgets

C/C++

「 理财与风险控制|养老系列」你想象中的高端养老社区是什么样?

本文主要介绍为什么养老规划需要考虑养老社区的部分,当前市场上养老社区的各种现状,养老社区从各个角度分类,选择养老社区需要关注的要素以及保险保单能够提供的养老权益是怎样的

理财与风险控制【持续更新中】

「PAT乙级真题解析」Basic Level 1100 校庆 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了一组校友ID, 然后给定了一组来宾ID, 要求输出是校友的来宾中, 最年长的一位。 如果来宾中没有校友, 则输出来宾中最年长的一位。 由于涉及到查询, 所以本题的重点在于数据的存储与查询。ID是由数字和大写字母组成, 所以需要存储成字符串。 查询时的比较可以使用字符串比较函数。 同时为了性能考虑, 可能先对要查询的校友ID进行排序, 然后查询时使用二分查找。 进一步性能考虑, 存储最值时可以存储最年长校友在数组中的索引而不是直接存储字符串, 避免多次字符串拷贝。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1097 矩阵行平移 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了明确的步骤, 要求按照给定方式进行"平移"操作, 然后计算各行元素的和并输出。 计算各行元素之和以及输出元素和没有额外要求, 所以关键在于如何按照题设要求进行平移。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1096 大美数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求过于明确, 只想到用穷举法。 由于是检查4个正因数之和是否能被原整数整除,所以穷举需要写四重循环。 由于因数组合的顺序不影响因数和, 即也不影响被原整数整除, 所以内层循环都以上一层循环的值+1作为初始值。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1095 解码PAT准考证 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一组数据, 然后再给定一组查询, 要求根据查询要求输出对应的数据. 由于本题涉及到查询/统计, 所以核心在于数据的存储与目标数据的查询。 由于输出的信息涉及到按考场和按考生分类统计数据, 所以需要分别建立考生和考场两个模型。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1090 危险品装箱 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一组不相容的数值对, 然后给定多组数值, 要求检查每组数值中是否存在不相容的数值对。 所以本题的核心是数据的存储, 然后循环进行数据查询和比对。 如果使用的编程语言有哈希表和集合的数据结构, 可以直接将编号作为哈希表的键, 使用集合作为值来存储与其不相容的数值。 C语言中, 需要用数组存储, 然后手动遍历数据来实现"检查元素是否在集合中"。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1102 教超冠军卷 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一组销量和单价, 要求计算出销量最高的商品以及销售总额最高的商品。 因为本题要求计算最值, 所以显然是一道最值题, 需要做的就是数据存储与比较(/统计)。 因为只求最值, 给出的ID唯一(即不存在商品数据合并的操作), 所以只需要储存目前的最值, 然后每次新数据进来进行比较即可, 比当前最值小的数据不需要存储。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1080 MOOC期终成绩 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给出了三批数据, 分别代表编程成绩, 期中考和期末考成绩。 要求按照给定的公式计算加权总分, 便且给出总分不低于60分的学生信息。 所以, 我们需要做的就是数据存储, 然后进行数据计算, 然后挨个检查进行输出。 由于不同数据是在不同批次给出的, 而且同一个学生代表不同项目成绩需要绑定在一起, 所以涉及到以ID作为唯一标志, 查询ID, 如果ID相同, 则更新该ID下对应的项目成绩。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1110 区块反转 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定链表头节点地址, 总节点个数, 区块大小, 要求按照指定方式以区块为单位, 反转链表中的区块顺序。 指定方式为: 按照给定区块大小将链表划分为不同区块, 然后将区块逆序, 区块内元素相对顺序不变。 由于该题是通过输入校验, 所以如果在考试中, 为了追求更快获得正确解, 可以选择直接按照指定方式输出各个节点信息的方式。 比如: 将各个链表元素按照连接顺序放入连续的数组中, 然后按照给定长度划分区块, 最后直接从最后一个区块往第一个区块的顺序,按照要求输出。

C/C++算法PAT乙级真题解析【全集】

「python|语言特性」为什么python的推导式语法一用就上瘾?

本文主要介绍python语言特性中推导式语法,包括什么时候使用推导式,为什么使用推导式,列表推导式、元组推导式、集合推导式、字典推导式、以及多重推导式的写法

python给程序员看的python教程

「PAT乙级真题解析」Basic Level 1075 链表元素分类 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定链表头节点地址, 总节点个数, 元素分类阈值, 要求按照指定的方式对链表元素进行分类排序。 指定方式为: 将元素的值按照"大于0", "大于等于0且小于等于给定阈值", "大于给定阈值"分为三组, 分组中的元素保持在原始链表中的相对顺序, 最后按照指定格式输出分类排序后的各个节点信息。 由于该题是通过输入校验, 所以如果在考试中, 为了追求更快获得正确解, 可以选择直接按照指定方式输出各个节点信息的方式。 比如: 将各个链表元素按照连接顺序放入连续的数组中, 然后给定规则对数组元素进行排序, 最后直

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1025 反转链表 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一个链表头, 总节点个数, 反转长度, 要求按照指定方式反转链表。 指定反转方式为: 按照给定的反转长度将链表分组, 反转每一组里的元素(如果最后一组元素不足则不反转) 注意, 需要每一组反转后的末尾元素连接下一组反转后的首个元素。 由于该题是通过输入校验, 所以如果在考试中, 为了追求更快获得正确解, 可以选择直接按照指定方式输出各个节点信息的方式。 比如: 将各个链表元素按照连接顺序放入连续的数组中, 然后按照划分反转好每一个元素, 最后直接按照要求输出。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1105 链表合并 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定两个链表头, 总的节点数目, 要求将两个链表按指定方式合并。 指定合并方式为: 每两个长链表元素后要插入一个短链表元素, 直到短链表元素插入完毕则得到合并后的链表。 由于该题是通过输入校验, 所以如果在考试中, 为了追求更快获得正确解, 可以选择直接按照指定方式输出各个节点信息的方式。 比如: 整理好两个链表之后, 每输出两个长链表元素, 就输出一个短链表元素, 如果短链表输出完毕, 则直接输出长链表元素直到输出完毕。

C/C++算法PAT乙级真题解析【全集】

「Electron|问题记录」解决应用调用loadURL访问没有ssl证书的http网址连接失败的问题

本文主要记录在使用electron访问http网址(非https)时,应用窗口不显示网页,命令行提示`handshake failed; returned -1, SSL error code 1,`

未分类

「Electron|快速开始」来写个Hello World桌面应用吧

本文主要介绍如何快速使用Electron生成一个Hello World应用

未分类

「PAT乙级真题解析」Basic Level 1085 PAT单位排行 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了一组学生的信息(准考证号, 得分, 学校), 要求以学校为单位, 统计每个学校的考生人数以及加权总分。 然后将统计结果按照分数排名, 按照排名由高到低输出各个学校的排名、名称、加权总分和考生人数。 所以过程主要分为统计(数据存储)和排序输出两个部分

C/C++算法PAT乙级真题解析【全集】

「Electron|问题记录」解决npm install electron --save-dev 各种下载速度过慢、超时或者报错等问题

本文主要记录安装electron时遇到的问题以及最终帮助我解决这些问题的方案。

未分类

「 理财与风险控制|养老系列 」交了N年的社保,退休能领多少钱

本文主要介绍如何根据自己缴纳的社保进行将来退休养老及计算,以及定性地估计未来养老金区间以及养老金替代率水平。

理财与风险控制【持续更新中】

「PAT乙级真题解析」Basic Level 1089 狼人杀-简单版 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定假设狼人杀中N名玩家有2人是狼人, 有2名玩家说的不是实话, 只有一个狼人说谎。要求计算出扮演狼人的玩家。 题目的重点在于身份的确认和发言真假的确认。 因为题设固定了狼人的数量只有2个, 所以我们需要从N名玩家中假设2个玩家是狼人, 其余玩家就都认为是好人, 身份的确认就完成了。 发言真假确认通过题设给定的规则, 如果发言认为某人是狼人且该玩家确认是狼人, 则为真; 或者认为某人不是狼人且该玩家确实不是狼人, 则为真; 其余都为假。 最后只需要检查 全部谎言的数量是否为2 且 狼人说谎的数量是否为1

C/C++算法PAT乙级真题解析【全集】

「 理财与风险控制|养老系列」养老风险与规划:长寿也是一种风险

本文主要介绍为什么要进行养老规划以及各种养老规划的风险。我们能以依靠单一的方式解决养老风险,本文会着重介绍其中使用商业养老保险分担部分养老规划目标的方法和方案。

理财与风险控制【持续更新中】

「PAT乙级真题解析」Basic Level 1088 三人行 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定三个数值ability, X, Y, 以及三个关系式(三元一次不等式组). 要求根据X, Y计算出满足三个关系式的最大解. 然后根据ability跟不等式组解出来的三个值的大小关系输出对应的关键字. 如果不等式组没有解, 则输出"No Solution".

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1104 天长地久 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求给定一个位数K, 一个各位数字之和m, 要求满足条件的A. 需要满足的条件是: A+1的各位数字之和n与给定的m的最大公约数是一个大于2的素数。 题目就是有点绕, 其他还好。 最容易想到的方式就是穷举进行条件检测, 但是会有性能问题, 比如测试点5对穷举的作答就会提示运行超时。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1094 谷歌的招聘 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一串数字串以及一个位数, 要求找出最早出现的长度等于指定位数, 且数值为素数的数字串。 所以最直觉的方法就是从数字串第一位开始, 截取指定位数的数字串, 然后检查其代表的数值是否是素数。 如果是素数则输出该数字串, 如果遍历完毕都没有符合条件的数字串, 则输出"404"。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1084 外观数列 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设定义外观数列就是第n项是对第n-1项各个数字连续出现次数的统计, 跟"1078 字符串压缩与解压"类似。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1074 宇宙无敌加法器 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定三个字符串, 第一个字符串代表各个数位的进制数, 第二个和第三个字符串代表十进制数值(题目说是PAT数, 但是当成十进制数处理就可以)。 要求将两个数值相加之后按照给定的各个数位进制进位之后, 输出相加结果。 由于给定的两个数位数不一定相同, 所以我们需要高位补零让两个数值位数相同, 然后从末尾开始往最高位, 按位相加然后进位计算两数之和。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1099 性感素数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设定义满足(p, p+6)都是素数的p和p+6两个数都是性感素数。 给定正整数N, 要求检查N是否是性感素数。 如果是, 则输出"Yes"以及和N配对的较小的性感素数。 如果不是, 则输出大于N的最小性感素数。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1103 缘分数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定两个关系式`a^3 - (a-1)^3 = c^2`和`b^2 + (b-1)^2 = c`, 要求指定区间内满足两个等式的a和b。 即, 要求指定区间内满足等式`a^3 - (a-1)^3 = (b^2 + (b-1)^2)^2`的a和b。 等式可以化简为: `3*a^2 - 3*a = 4*b^4 - 8*b^3 + 8*b^2 - 4*b`

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1109 擅长C (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定26个英文字母的输出格式, 然后给定几个单词(由非大写英文字母隔开), 要求用给定的输出格式输出这些英文单词。 那么事情就简单了, 如果我们只看后半部分的话, 那基本就相当于`if char == 'A': print('A')`的级别了, 只是现在给定了各个英文字母的输出格式, 所以是`if word == "HELLO": print(指定格式("HELLO"))`。 所以重点在于将指定的输出格式存储下来, 然后在最后检查英文句子的时候输出.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1108 String复读机 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求将给定的字符串按照"String"的顺序输出, 并且忽略"String"之外的字符。 同时说明了"String"中6个字符出现的频次不保证相同, 输出时若某种字符已输出完毕, 则跳过该字符. 所以, 我们要做的是统计"String"中各个字符在给定的字符串中出现的次数作为要输出的个数, 然后按照"String"的顺序循环检查每一个字符当前的剩余个数, 如果不等于0, 则输出并将次数减一, 直到这6个字符的剩余个数都为0为止。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1107 老鼠爱大米 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定多组数值, 要求分别输出每组数中的最大值, 以及输出全部数值的最大值。so easy.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1106 2019数列 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求很明确, 给定一个递推数列, 并第n项是第n-4到第n-1项的和的个位数字。 要求给定正整数n之后, 输出前n项. 于是我们的重点在于如何实现递推式得到数列的新一项, 然后一直生成到指定项即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1101 B是A的多少倍 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设明确要求按照其给定的步骤变换给定的正整数, 然后输出变换后的正整数是输入正整数的多少倍。 所以重点在于转换逻辑的编写。由于给定的正整数不大于10的9次方, 所以可以用整型存储。 但是涉及到部分数位的移动, 使用整型时获取各个数位的数字时需要从后往前, 这里不太适合, 所以最佳方式时使用字符串存储正整数, 变换之后得到新的字符串, 然后将两个字符串转换为整型后相除。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1098 岩洞施工 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了岩洞中每一个位置的顶部高度和底部高度, 要求判断是否能够将一个单位的长管道水平送入岩洞中。 由于是水平送入, 所以只需要判断顶部的最低位置和底部的最高位置之间的距离是否大于长管道的宽度。 由于题设给定长管道为1个单位宽, 所以我们只需要求出顶部的最低位置, 底部的最高位置, 检查二者差是否大于1即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1027 打印沙漏 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了可用的符号数量, 要求输出能够打印出的最大的沙漏。 如果知道要输出几层, 问题会变得简单,就是一个循环加输出的操作。 所以我们需要先计算出要输出几层。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1005 继续(3n+1)猜想 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目提出一个新概念"关键数", 并给出其定义: 在进行(3n+1)猜想时, 不会出现在其他给定数值的计算过程中的, 就是关键数。 这意味着, 如果我们要计算给定的一组数中, 哪些数是关键数, 则需要对这些数进行(3n+1)猜想的计算, 然后记录计算过程中出现的各个数, 等到完全计算完毕后与给定的数值进行对比, 得到差异即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1093 字符串A+B (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求找出给定的两个字符串中字符的并集,并且按照在字符串中出现的顺序输出并集。 这意味着我们需要依次输出字符串中的各个字符, 如果这个字符已经被输出过了, 就不再输出。 C语言中没有原生集合类型, 可以使用数组代替。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1092 最好吃的月饼 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求统计各种月饼在各个城市的销量总和, 然后输出销量最高的月饼的最大销量和对应的种类编号。 如果销量并列第一, 按照编号递增顺序输出。 这意味着我们需要先统计出各种月饼的总销量,然后比较得出最大的销量, 然后从编号由小到大的顺序, 输出销量等于最大销量的种类编号。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1091 N-自守数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定一个定义, 给定一组数, 要求输出能够让每个数符合题设定义的正整数, 不存在这样的正整数时输出"No". 需要满足的条件是, 正整数N乘以给定的数K的平方得到的乘积以K为结尾。

C/C++算法PAT乙级真题解析【全集】

个人养老金真的要来了,详解人社部、财政部、税务局、银保监会和证监会联合发布的《个人养老金实施办法》(要点概览+示意图+逐条解读)

11月5日,人力资源社会保障部、财政部、国家税务总局、银保监会、证监会联合发布了《个人养老金实施办法》。(文末福利)

未分类

「PAT乙级真题解析」Basic Level 1087 有多少不同的值 (问题分析+完整步骤+伪代码描述+提交通过代码)

- 题设要求给定一个正整数N,然后给定一个公式, 要求从1到正整数N分别代入到公式中得到的结果中, 可以得到哪些值的集合。 这题目的要求……也太简单明确了吧…… - 可以用数据模型集合来存储结果. C语言中没有集合, 可以使用数组存储结果, 索引对应结果, 索引位置的值对应出现的次数.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1086 就不告诉你 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求, 计算给定两个数的乘积, 然后将乘积的各个数字颠倒后输出对应的数值。 要求很明确,算乘积,然后逆转顺序,最后输出,给定的数值在整型范围内,可以直接存储为整型。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1083 是否存在相等的差 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设设定, 给定一组数, 要求计算每一个数与它的序号的差值, 给出重复的差值以及重复的次数, 。于是我们明白我们要做的是计算和统计。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1082 射击比赛 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一组坐标以及对应的ID,要求计算哪个坐标离远点最近和最远,这是一道最值计算问题。 与原点的距离等于两个坐标值分别平方相加后的正平方根。即, distance = sqrt(x^2 + y^2)

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1081 检查密码 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求按照给定标准检查密码是否合法。标准已明确给出, 核心在于把标准准确表示为if条件。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1079 延迟的回文数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求将一个不是回文数的数转换为回文数,并且给出了具体的转换步骤,看到给出了具体的步骤,我们就知道这是一道模拟题。 具体步骤会将给定的数值各个数位上的数字逆序排列得到另一个数,然后两数相加得到新的数值。 重复上述过程直到得到回文数或者操作次数达到10次认为转换失败。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1003 我要通过! (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求根据给定的三条标准, 检查输入的文本是否正确, 正确则输出"YES", 不正确则输出"NO". 所以核心就是如果将题设给定的三个判断条件明确成编程语言的if条件.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1078 字符串压缩与解压 (问题分析+完整步骤+伪代码描述+提交通过代码)

- 题设要求按照给定的方式对字符串进行压缩,以及对给定压缩字符串按照约定进行解压。 - 关于如何压缩的方式, 题设已经给出, 所以仍然是模拟压缩的过程.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1077 互评成绩计算 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求计算每个组的互评成绩, 并且给出了互评成绩的计算方式, 毫无疑问, 这是一道模拟题. 需要做的是明确题设给定的步骤然后翻译成代码。

C/C++算法PAT乙级真题解析【全集】

「 程序员的风险控制」两三百实现医疗自由,不怕学习工作太拼生病花大钱

本文主要介绍什么是百万医疗,百万医疗的各项保障以及配置的注意事项

理财与风险控制【持续更新中】

「高效程序员的修炼」快速上手Shell编程、执行与定时任务

本文主要介绍Shell从执行到编写、以及定时执行shell脚本的相关内容

高效程序员的修炼

「高效程序员的修炼」快速上手python主流测试框架pytest以及单元测试编写

本文主要介绍如果编写Python的单元测试,包括如何使用断言,如何考虑测试哪些情况,如何避免外部依赖对测试的影响,如果用数据驱动的方式简化重复测试的编写等等等等

高效程序员的修炼

「 程序员的风险控制」意外险:花几十块就能让你不用担心明天和意外哪个先来

本文主要介绍如何以极低的成本来防止小概率意外发生后对生活造成的大规模毁灭性冲击,充分认识到风险控制的优势

理财与风险控制【持续更新中】

「高效程序员的修炼」正则表达式极速入门:掌握快速找出文本中目标内容的能力

正则表达式是日常文本查询、编辑以及代码开发过程中常用的一个编程语言。 > 本文档旨在介绍正则表达式的日常使用场景以及表达式编写。 以下将会先通过几个使用案例来说明正则表达式的使用, 之后再进行"元字符", "匹配模式", "环视断言"等具体内容的介绍

高效程序员的修炼

「 程序员的理财与风险控制」让财富跟你一起持续成长:增额终身寿

本文主要介绍了增额终身寿是什么以及如果使用增额终身寿进行财富增值以及你将得到什么

理财与风险控制【持续更新中】

「高效程序员的修炼」告别Postman 快速上手VS Code 易于维护和分享的 REST Client

本文主要介绍如何使用VSCode的REST Client插件进行接口请求

高效程序员的修炼

「 程序员的理财与风险控制」现金流管理:教育年金和养老年金

本文主要介绍什么是年金险以及使用年金险来作为教育年金或者养老年金你将得到什么

理财与风险控制【持续更新中】

「Python|环境安装|Linux」CentOS 7 安装指定版本的python环境

本文主要介绍在CentOS 7 中安装指定版本的python替换系统自带以及默认版本python的步骤

python给程序员看的python教程

「PAT甲级真题解析」Advanced Level 1009 Product of Polynomials

题设要求计算两个多项式的积, 同题目1002一样, 多项式求积是有固定步骤的, 所以这是一道模拟题。 多项式求积的规则为: 将两个多项式中的项两两相乘, 相乘得到的结果项指数为两个项的和, 系数为两个项的乘积。 这意味着我们只需要用一个两重循环就可以覆盖所谓的"两两相乘", 将所有求得的结果项相加就是题设要求的多项式乘积。

C/C++算法PAT考试

「React | 网站部署」如何在云服务器上部署React并通过Nginx开放外网访问和开启gzip提高网页加载速度

本文主要介绍了在拥有阿里云服务器后,如何将React项目部署到服务器上并供公网用户通过IP和域名访问

从零到一快速掌握web开发

CentOS 7 安装新版本的Node.js

本文主要介绍如何在CentOS 7中安装新版本nodejx, 而不是系统默认的node 6.x版本

未分类

CentOS 7 安装新版本的Nginx

本文主要介绍如何在CentOS 7中安装新版本Nginx

未分类

「Git | GitHub」使用ssh的方式从Github克隆代码

本文主要介绍如何为github账号添加SSH密钥,然后使用SSH的方式克隆代码仓库

未分类

CentOS 7 安装新版本的Git

本文简要介绍如何在CentOS 7中更换掉系统默认的旧版本Git

未分类

「PAT甲级真题解析」Advanced Level 1008 Elevator

1. 题设要求模拟电梯的升降,并计算完成所有楼层停靠要求所需要的总时间。 2. 由于电梯停考规则和停靠时间题设已经明确给出, 所以这是一道只需要我们按照规则翻译成代码的模拟题。

C/C++算法PAT考试

「高效程序员的修炼」代码版本管理工具 Git 用起来 01 Git 基础

介绍了代码版本管理工具Git的起步知识,快速上手Git使用

高效程序员的修炼

「高效程序员的修炼」快速上手高效开发利器 Visual Studio Code (VS Code)

VSCode 常用内容快速上手 + Tips & Tricks

高效程序员的修炼

「PAT甲级真题解析」Advanced Level 1007 Maximum Subsequence Sum

题设给定一组序列, 要求最大的子序列和. (子序列是要求数在原数字中位置连续, 而子数组不要求)。 理论上, 我们只要枚举出所有的子序列进行求和, 然后记录和最大的一组即可。

C/C++算法PAT考试

「PAT甲级真题解析」Advanced Level 1006 Sign In and Sign Out

1. 题目给出一组学生进入机房的进入时间和离开时间, 要求找出最早进入机房开门的人以及最晚离开机房锁门的人. 到这里我们可以看出题目的重点在于查找, 而查找会涉及到数据的存储, 如果存储数据以及在储存的数据中进行查找是我们要考虑的核心。 2. 我们可以存储所有的进入时间和对应的学生ID, 然后比较出最早的进入时间。但我们在乙级的题目练习中多次提到, 数据存储是为了使用, 在这种情况下, 进入时间在进行一次比较之后就不会再用到了, 所以可以不需要存储全部进入时间, 而是直接存储当前最早进入时间然后不断更新。

C/C++算法PAT考试

「PAT甲级真题解析」Advanced Level 1005 Spell It Right

题设明确要求我们将给定的一个非负数的各个数字相加求和, 然后输出这个和各个数字的英文形式, 妥妥的模拟题, 而且步骤已经非常明确。 需要考虑的是给定的非负数最大可以是10^100(101位, 1个一后面跟了100个零), 所以需要用字符串来存储整数.

C/C++算法PAT考试

「PAT甲级真题解析」Advanced Level 1004 Counting Leaves

1. 题设要求按照从根结点开始自顶向下输出树结构每一层的叶子结点数目。 2. 这意味着我们需要设置计数器, 然后遍历树的每一个结点, 然后检查该结点是否是叶子结点, 如果是叶子结点, 则将计数器中该层次叶子结点个数+1. 3. 遍历树结构叶子结点可以用深度优先dfs搜索和广度优先搜索bfs.

C/C++算法PAT考试

「PAT甲级真题解析」Advanced Level 1002 A+B for Polynomials

题目要求计算两个多项式的和, 多项式求和是有固定步骤的, 所以这是一道根据定义/规则精准翻译为代码的模拟题。 多项和求和的规则为: 将两个多项式中指数相同的项的系数相加作为和多项式该指数项的系数, 这意味着, 如果我们用将所有项都罗列出来(没有的项表示为系数为0的形式), 则只要依次做N次加法就可以求得和多项式各个项的系数。

C/C++算法PAT考试

「PAT甲级真题解析」Advanced Level 1001 A+B Format

题设要求两个整数A和B的和, 并且按照指定格式输出。 由于给定整数的范围在整型范围内, 所以可以用整型直接存储和相加。 重点在于实现要求的用逗号将每三个数字进行分组。

C/C++算法PAT考试

常用的Markdown基本语法

常用的Markdown基本语法

未分类

Linux 内置工具 grep 使用手册

本文档介绍日常中使用grep的方法 "grep"是"Global RegularExpression Print"的首字母缩写, 使用过程中会涉及到正则表达式的使用 正则表达式的详细使用请查看正则表达式的文档

未分类

「PAT乙级真题解析」Basic Level 1076 Wifi密码 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求按照给定规则将给定的输入最终翻译成一串数字并输出,所以是一道模拟题。 由于题目设定的场景是题目的答案编号对应着wi-fi密码中的一位数字, 所以输入是(选项编号 - 是否是正确答案), 我们需要做的是读取选项编号, 和是否是正确答案的标志位, 如果是正确答案, 则输出对应的选项编号即可.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1073 多选题常见计分法 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求按照老师批改多选题的方法来计算学生的总分, 并且统计哪道题的选项选错的人最多。(选错的情况包括: 选了错误的和没选正确的两种) 多选题得分的规则为: 选择与答案一致得全部分数, 漏选得一半分数, 一旦选了正确选项之外的选项, 不得分。 本题的核心在于计算单道多选题学生得分的逻辑, 以及统计选项错误情况的逻辑; 由于要统计选项错误的情况, 所以不管能不能通过学生作答个数与正确选项个数之间关系直接得分情况, 都要挨个检查选项。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1072 开学寄语 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求查找学生携带的物品中是否有被禁止的物品。这涉及到"查找/搜索"。 由于物品编号是正整数, 所以我们可以用C的数组来存储禁止携带的物品编号, 数组索引作为编码, 索引位置值为1代表禁止携带。 搜索时只需要用学生携带的物品编号按索引查询数组对应位置的值是否为1, 就可以知道是否是禁止携带的物品。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1071 小赌怡情 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求按照筹码计算规则计算玩家的下注、输赢以及筹码剩余情况, 并出给了具体的步骤规则, 所以这是一道模拟题, 需要明确规则编写逻辑; 计算环节分为: - 读取玩家下注 - 检查玩家下注与筹码是否合理 - 计算游戏结果和玩家收益 - 按照规则输出

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1070 结绳 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求将一些一段一段的绳子串连起来, 但是每次串连的时候需要把两段绳子都对着折后套接在一起。要求能够串连出的最大长度。 这意味着进行一次串连,两端绳子的长度都会减半, 一段绳子参与串连的次数越多(串连成新的后再去与其他绳子串连,然后再去串连,如此重复)最终能提供的长度就约短。 这意味着越长的绳子最好放在越后面进行串连,这样串连的次数会更少,能贡献的长度就越长。 所以这道题就是将给定的各段绳子长度进行升序排列, 然后按排序后顺序进行串连计算最终长度。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1069 微博转发抽奖 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求从给定的一组字符串中的指定位置开始, 按照指定的间隔选择对应位置的字符串进行打印, 但是相同的字符串只能被打印一次(所以这里需要记录是否被打印过的标志位). 值得说明的是, 由于C语言中没有"字符串"类型, 所以用二维字符数组来作为一维字符串数组. 另外, 字符串是否被打印过的记录是一个典型的哈希表记录并用于查询的过程, 但是C语言中没有字典或集合等哈希表数据结构, 所以需要使用"字符串数组/二维字符数组"存储打印过的字符串, 通过对数组的遍历查询是否某个字符串已经在数组中来判断是否已经打印过该

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1068 万绿丛中一点红 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一幅画(/矩阵/二维数组), 要求检查每一个点和周围的点的差值是否都超过给定阈值. 同时要求统计每一个点值出现的次数, 给出只出现过一次并且跟周围点的差值都超过阈值的点。 如果这样的点不存在, 则输出"Not Exist"; 如果这样的点有多个, 则输出"Not Unique"; 否则, 按格式"(列号, 行号): 点值"输出该点信息

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1067 试密码 (问题分析+完整步骤+伪代码描述+提交通过代码)

如题目所示, 这道题的任务就是我们日常的输入密码, 检查密码是否等于正确密码的模拟题. 所以重点在于明确题目的要求, 然后准确地翻译成程序语言. 题目要求: - 最多只可以尝试指定次数 - 读到单个字符"#"时需要结束尝试 - 保证至少尝试一次 - 如果密码正确, 则输出"Welcome in"然后结束程序 - 如果密码错误, 则输出"Wrong password: 用户输入的错误密码" - 如果达到最大尝试次数还是没有输入正确密码, 则输出"Account locked"然后结束程序

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1066 图像过滤 (问题分析+完整步骤+伪代码描述+提交通过代码)

十分常规的一个问题, 题目给定一个场景, 要求按照题设要求, 将满足条件的值进行指定处理, 所以这可以认为是模拟题, 只需要将题设要求翻译成代码即可. 题设给定一副图像(/矩阵/二维数组), 要求检查每一个点的值是否在给定的两个值之间, 如果是则替换成指定值. 最后输出处理后的图像(/矩阵/二维数组)

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1065 单身狗 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定几组数对, 代表几对情侣, 随后给出一组数, 要求判断哪些数没有和它的情侣数一起出现在这组数中. 看到这里, 这道题明显是一道查找题/搜索题, 搜索题的主要核心是数据存储与比较。 于是这里只涉及5位整数, 所以存储用整型数组存储即可, 数组的索引和索引位置所存储数值代表一对情侣数。 而查找的过程, 只需要使用一个数组作为是否出席的标志位数组, 将给出的所有数作为索引值, 索引位置值置为1, 代表这些数出现过。 然后再次遍历给定的这组数, 对于每一个数, 先从第一个数组中拿到其对应的情侣数, 然后到标

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1064 朋友数 (问题分析+完整步骤+伪代码描述+提交通过代码)

这道题依旧是一道"给出定义要求计算"的题目, 计算之后要求做的是统计. (1063谱半径是要求再最值) 所以依旧是按照定义翻译成程序语言, 然后进行常规统计. 再次强调,统计数据要关注统计的是哪些数据以及存储形式, 这里统计的是数值出现的次数, 所以只需要用数组存储即可. 由于题设给定"朋友数"是各个数位上数字的和, 涉及到各个数位数字的读取(可以用整数存储然后不断取余, 这题的数值也不会有溢出问题), 以下采用字符串形式存储数值用索引访问各位数字的方式进行计算。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1063 计算谱半径 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定了"谱半径"的定义, 然后要求谱半径, 所以按照定义翻译成程序语言即可。 由于谱半径是一组值中的最大值, 所以这题主要分为求出一组值以及求这组值的最大值。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1062 最简分数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定两个有理数分数形式的分子和分母, 以及一个整数K, 要求给出介于两个有理数之间的最简分数, 且分数的分母得是整数. 因为给定了一个整数作为分母, 我们要查找的范围其实是分子为1到K, 分母为K的K个分数.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1061 判断题 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求统计学生们判断题得分, 这是一道统计题。 一如既往, 对统计题, 我们先考虑要统计的数据以及存储形式。 由于是判断题, 题目给出的输入(题目分值, 答案以及学生的作答)都是数值形式, 所以存储为数组是合适且符合直觉的方式。 输入次序作为题目序号, 比较相同序号的题目答案和学生作答是否一致即可判断学生是否正确作答

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1060 爱丁顿数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求统计所有满足E天超过E英里的整数E, 然后给出E的最大值. 求一组数中的最大值是一个常规的过程, 所以本题的核心是如果统计所有E天超过E英里的E. 题设给出的数据形式是第i天跑了j英里, 我们需要统计的是跑超过j英里的天数. 所以我们需要先统计跑了j英里的天数, 然后从最大的距离开始, 将该距离加到小于这个距离的所有距离的天数统计中.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1059 C语言竞赛 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求按照参赛选手名次和颁奖规则为选手颁奖。 由于是题目给定了明确的规则, 所以仍然是模拟题的思路。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1058 选择题 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求对比给定的题目信息(分值, 正确选项)和学生的作答, 计算学生分数以及统计出错次数最多的题目. 这意味着如何读取和存储输入(题目信息, 学生作答)以及对比统计是核心内容.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1057 数零壹 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了"数零壹"的具体步骤, 所以这是一道模拟题, 主要是明确题目要求的步骤, 翻译成代码即可. 其中涉及: - 英文字母的判断 - 英文字母在字母表中的序号获取 - 各个数位的数字求和 - 二进制转换 - 二进制数的各个数位数字的统计

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1056 组合数的和 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定N个非零数字, 要求计算可以组成的所有2位数之和。 由于数字非零, 所以每一个数字都可以选在个位或者十位。 如果一个数字选择放在十位, 则总和要加上它的十倍; 如果选择放在个位, 则总和要加上它本身。 所以, 总和等于每一个数字在十位所代表的值+其在个位所代表的值. 即所有数字之和 * 11

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1055 集体照 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求将给定的N个人按要求排成K排, 由于有明确列出要求, 所以我们初步判断这是一道按照要求翻译成代码的模拟题。 由于身高和名称是绑定关系, 排序用的是身高, 输出用的是名称, 之前分析其他题目的时候说过, 这种时候要将绑定的信息存储为类键值对结构, 放在一起, C语言中这意味着结构体。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1054 求平均值 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定N个实数, 要求计算平均值. 平均值的计算我们非常熟悉, 所以不会是本题的核心. 题设设定, 输入数据可能非法, 计算平均值的时候不能将非法数包括在内. 所以本题的核心是识别非法输入实数和识别合法输入实数. 由于输入可能是非数字, 且涉及到对每一位的检查, 所以用字符串形式存储输入的实数, 计算和时再转为浮点数.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1052 卖个萌 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定三组符号集合作为"手", "眼", "口"的姿势, 要求根据用户输入的序号使用对应序号的"手", "眼", "口"以"[左手]([左眼][口][右眼])[右手]"的形式输出表情。 输出的部分很简单, 只要使用序号作为索引取到符号输出即可, 所以本题的重点不是输出, 而是如何从输入生成用于取数的符号集合. 对于一些封装层次比较高的语言, 完全可以使用正则之类的方法提取出符号生成集合. 也可以使用字符串分割的方式生成集合. 对于C语言, 需要自行实现符号提取逻辑.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1053 住房空置率 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求统计符合住房空置条件的房屋比例。这是一道统计题。 需要统计的数据是, 可能空置的房屋数量, 空置的房屋数量; 可能空置的条件: 比较每天的用电量是否小于给定用电量的天数, 如果天数超过一般, 则为可能空置. 空置的条件: 已经认定是可能空置的房间, 且比较用电量的天数大于给定天数。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1051 复数乘法 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给出了复数的极坐标形式和三角形式的对应公式. 要求输出的结果是三角形式, 乘积计算时也主要使用三角形式, 所以本题就是形式转换加对应部分的乘法计算。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1050 螺旋矩阵 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求将给定的数组按非降序排序,然后按照螺旋路线排列成矩阵。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1049 数列的片段和 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求按照给定方式截取数组得到所有可能片段,然后求各个片段和的总和。 截取片段的方式是, 截取任意连续的几个数即可, 也就是取连续子数组。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1048 数字加密 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求按照步骤进行计算, 并输出计算结果。 这种明确给出计算步骤的题目妥妥的"模拟题", 明确题设要求的计算步骤后, 翻译成代码即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1047 编程团体赛 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求给出冠军队伍的编号和总成绩。这是一道统计题(统计各队伍分数)/最值题(分数最高) 这类题目已经出现多次, 主要思路为: 统计各个队伍分数后对统计结果进行比较求最值。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1046 划拳 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求统计甲乙两人划拳分别喝了几杯酒。所以这是一道“统计题”。 我们之前的题目多次提到,统计题的关键在于明确统计数据以及数据的存储。 这里要统计的数据是喝酒的次数,由于是两个数值, 用数值变量储存即可, 没有特别需要注意的地方。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1045 快速排序 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求所有给定数列中的满足主元条件的元素。 主元条件: 这个元素大于等于其左边所有元素 且 小于等于其右边所有元素; 所以题目可以描述为: 找出所有「大于等于其左边所有元素且小于等于其右边所有元素」的元素。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1044 火星数字 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设要求将给定的十进制数转为火星文, 以及将给定的转为十进制数。 所以核心需求是开发两个转化方法。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1043 输出PATest (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求按照以"PATest"的顺序, 对给定字符串进行重新输出, 输出的"PATest"各个字母的数量需要与原字符串中的数目相同. 忽略其他字符。 通过题设的描述我们可以知道这是一道统计题, 需要统计的是"PATest"各个字符在原字符串中的数目 然后输出时只要检查统计值是否大于0, 如果大于0则输出并将统计值-1即可。 统计题如何进行数据统计和存储之前的题目已经多次提及, 这里不再赘述。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1042 字符统计 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目中"出现最频繁"提示我们这是一道统计题+最值题。 统计数据是英文字母, 十分常规, 与之前我们提到的统计数据的题目一样存储数据然后查询数据即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1041 考试座位号 (问题分析+完整步骤+伪代码描述+提交通过代码)

真正的题目是"有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。" 所以这套题就是关于数据查询的问题。如何存以及如何查是解决问题的核心。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1040 有几个PAT (问题分析+完整步骤+伪代码描述+提交通过代码)

题目可以概括为: 找出符合指定条件的"P","A,"T"排列数目. 所以这道题目的关键在于给定的条件是什么以及如果将条件转为可以用步骤/逻辑/程序描述的形式.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1039 到底买不买 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定两个字符串, 要求计算出两个信息: 1. 第二个字符串的字符的种类以及出现的次数是否是被第一串覆盖。 2. 覆盖时: 两串字符串的长度差值 没有覆盖时: 没有覆盖的字符的次数差值总和 所以这道题依旧是一道统计题。我们需要统计两个字符串中出现的字符种类的次数, 然后对统计数据进行比较, 并输出所求结果.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1038 统计同成绩学生 (问题分析+完整步骤+伪代码描述+提交通过代码)

如题设所说,这道题目的核心需求是进行统计。 统计意味着考虑数据存储, 由于不是统计某个值(比如最值), 而是要统计之后用于一组给定分数的查询, 所以需要把所有统计数据存储下来.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1037 在霍格沃茨找零钱 (问题分析+完整步骤+伪代码描述+提交通过代码)

这道题中涉及的这种转换类似于"时:分:秒"的转化。 按照这个思路, 我们可以构造一个从"Galleon.Sickle.Knut"转为完全转为Knut值的方法, 同时构造一个从完全以Knut计算的数值转化为"Galleon.Sickle.Knut". 则题目可以转换为: 将给定的两个格式为"Galleon.Sickle.Knut"的值转为完全Knut值, 计算二者的差值, 然后将差值转回"Galleon.Sickle.Knut"的格式

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1036 跟Obama一起编程 (问题分析+完整步骤+伪代码描述+提交通过代码)

其实题目就是要你画一个正方形, 跟Obama没关系.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1035 插入与归并 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定两组数, 第二组数是第一组数用插入排序或归并排序进行排序的某个中间状态, 要求判断使用的是哪种排序, 并用这种排序算法对排序的中间状态再排序一次并输出. **从题设中我们识别到两个功能需求:** - 判断所使用的排序算法 - 使用对应排序算法再进行一次排序

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1034 有理数四则运算 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定两个有理数, 要求输出这两个有理数的和、差、积、商。 如果只是这样, 则问题很简单, 但是题设要求输出的每个有理数必须是最简形式. **所以本题的一个重点是如何将有理数转为题设要求的有理数.**

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1033 旧键盘打字 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目设定了一个场景: 有个键盘某些键坏了, 要你模拟这个键盘输入某段文本, 然后输出会被打印出来的内容。 **实质上, 这个题目是给定了一段文本, 然后给定了一个集合(键盘损坏的键集; 以及组合键规则, 如shift+t = T), 要求找出给定文本中不在集合中的内容, 并输出内容**。 **所以重点在于「查找当前字符是否在无法输出的字符集合中」的过程/逻辑.**

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1032 挖掘机技术哪家强 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定了一组数据, 要求输出某个指定的最大值,这是一道求最值的问题。 最值问题的基本思路是:遍历 + 记录并更新最值。 在这道题中, 我们要遍历的信息是参赛者信息, 包括所代表的学校编号和参赛成绩。 要求的最值是总得分最高的学校编号和总分。(这说明我们要记录并更新的数据是学校编号和对应总分)

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1031 查验身份证 (问题分析+完整步骤+伪代码描述+提交通过代码)

我们看到题目详细地描述了计算过程/操作步骤, 所以需要做的是将题目给定步骤翻译为代码即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1030 完美数列 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定一个正整数数列, 要求找出从中尽可能多的数组成一个数列,使得新数列满足指定条件。 即, 新数列的最大值 小于等于 新数列的最小值 乘以 给定系数p. 由于数列和系数p是给定的, 变量是选取不同子数列后所对应的最大值和最小值。 所以这是一个找满足指定条件的一对数作为最大值和最小值的问题。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1028 人口普查 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定一堆生日, 要求输出最年长和最年轻的人. 同时说明时间有不合理的数据, 需要排除掉超过200岁和未出生的生日. 今天的日期是2014年9月6日.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1026 程序运行时间 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定两个整数, 设定这两个数的差/CLK_TCK(此题中值为100)为程序时间运行的总秒数。 要求将花费的时间从总秒数转成"小时:分钟:秒数"的形式输出.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1029 旧键盘 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定两行文字, 第一行是应该输入的文字, 第二行是实际被输入的文字, 我们需要对比两行的文字, 找出应该被输入但是没有被输入的文字, 即两行文字相差的文字. 由于没有被输入是因为键盘坏掉, 所以如果两个文字在实际文本中出现, 但是它们之间的文字没有在文本中出现, 则它们之间的文字就是缺失的。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1024 科学计数法 (问题分析+完整步骤+伪代码描述+提交通过代码)

由于科学计数法表示形式中含有字符, 所以输入数据需要存储成字符串。 由于题设提示长度不会超过9999字节, 所以数值位数大概在1万位。所以为了避免数值溢出, 结果也要存储为字符串(或者直接输出) 我们需要把科学计数法转成普通数字表示法的步骤明确好, 然后用编程语言翻译即可。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1023 组个最小数 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给的要求很明确, 给定若干数字, 要求输出排列组合组成的数中值最小的数。 只要知道如何组合出值最小的数, 就可以按照步骤组合出最小的数, 也就解决了问题。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1022D进制的A+B (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定两个整数, 要求两数求和之后将结果转为指定进制的数. 这里需要我们明确的是"转为指定进制"如何进行?

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1021 个位数统计 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求统计的其实是: 统计给定整数各个数位上数字的出现次数。 这意味着: 我们需要获取这个数各个数位上的数字。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1020 月饼 (问题分析+完整步骤+伪代码描述+提交通过代码)

给出月饼的库存量和总售价, 同时给出市场总需求量, 要求可能的最大收益. 问题转换: 优先通过售卖哪些种类的月饼来满足市场需求, 会得到最大收益?

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1019 数字黑洞 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给出了具体的步骤, 但凡看到明确的步骤, 我们要做的就是将题目给的步骤描述清晰, 然后用编程语言描述即可。 题目给定一个4位正整数, 要求进行如下步骤:

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1018 锤子剪刀布 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求统计甲乙两人玩剪刀石头布游戏的游戏结果, 并输出要求的统计项. 由于"统计", "剪刀石头布"这些都是我们十分熟悉的用语, 不需要理厘清概念之类的. 只需要考虑清楚统计过程中涉及了哪些步骤即可使用编程语言进行翻译。...

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1017 A除以B (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给定一个大正整数A, 一个1位正整数B, 要求输出A除以B的商数Q和余数R. 从数学的角度, 商数Q和余数R可以直接由除法求得. 但显然这道题目有无法直接进行除法得到结果的因素: 整数过大, 用整型存储会导致数值溢出...

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1016 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目规定了一个概念: 正整数A的"DA部分", 给定四个正整数, A, DA, B, DB, 需要输出A的DA部分与B的DB部分的和. 这种给定具体规则/定义/概念的, 将对应规则用变成语言翻译成代码即可.

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1015 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给出了一批考生的德才分数, 要求根据"司马光的理论"给出录取排名. 于是, 我们需要明确一下什么是"司马光的理论"

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1014 (问题分析+完整步骤+伪代码描述+提交通过代码)

又是一道给出了明确规则/步骤的题目, 需要做的是明晰这些规则和步骤, 然后用编程语言进行描述。 题设给了四个字符串, 并说明了前两行需要一起使用, 后两行需要一起使用。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1013 (问题分析+完整步骤+伪代码描述+提交通过代码)

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1012 数字分类 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目给出了明确的处理内容: 1. 对一些系列正数进行分类 2. 按照要求计算出5个数 3. 输出5个数字 而根据所要求的5个数的定义, 每个数都是从除以5之后得到的余数相同的数中进行计算. 所以分类时, 需要按照除以5之后所得余数来分. 【这里有个坑,A1的要求里,不是除以5之后余0就可以归到A1组,而是余0且是偶数才可以归到A1组】

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1004 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 03 Basic Level 1004

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1002 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 02 Basic Level 1002

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1011 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 09 Basic Level 1011

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1010 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 08 Basic Level 1010

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1009 (问题分析+完整步骤+伪代码描述+提交通过代码)

PTA 乙级 Basic Level 1009

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1008 (问题分析+完整步骤+伪代码描述+提交通过代码)

PAT乙级BasicLevelPractice 1008题目给定了一个数组N和一个整数M, 要求: 1. 将数组每个元素向右移动M位 2. 不使用额外的数组这个要求很容易满足, 要求本身给出了操作内容, 第一直觉是模拟法搞定。由于这个要求的存在, 我们就需要重新考虑我们上面的方案. 考虑的目标是, 如果不使用额外的数组.(像极了一句废话) 换句话说, 我们要考虑"之前方案里的数组起到了什么作用", “是否有替代方式实现同样功能”我们在之前的练习题中提及过"数据的存储"是为了"使用存在的", 如果不需要使用,

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1007 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 05 Basic Level 1007

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1006 (问题分析+完整步骤+伪代码描述+提交通过代码)

[PAT练级笔记] 04 Basic Level 1006

C/C++算法PAT乙级真题解析【全集】

「PAT乙级真题解析」Basic Level 1001 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目中给出了关于卡拉兹猜想的计算步骤,并要求给出按照给定的步骤执行到满足终止条件(此处为n等于1)所需要的次数。 我们知道,程序是只能执行一些重复的工作,所以程序的逻辑归根结底是条件、循环和递归的组合,最终达到按照指定步骤完成任务的目的。而此类题目直接给出了具体的步骤,与程序的本质不谋而合。程序是用来重复执行人为设定行为的,也可以说是对人行为的模拟。而解答此类题目就是直接将题设给出的步骤用编程语言语法翻译成代码逻辑,所以这种解法可以说是"模拟法"。

C/C++算法PAT乙级真题解析【全集】

2019

17

[数据分析] 决策树算法:决策树的概念

1. 什么是决策树 顾名思义,决策树将以树状结构表现出来,被用来辅助作出决策。 具体结合例子来说,我们平时做决策时大多会伴随着层层的选择,比如找房子的时候,会考虑离工作/上课地点的距离、大小和价格、光照等等因素。 如果一个房子通勤快、价格低、光照好、空间大(虽然不太可能存在,但是只要存在这种房子)我们一定会作出“买/租”的决策。将我们作出这一决策的思考过程/选择过程以层次形式表现出来,如下: 虽然......

数据分析

[Linux 实战] 日常篇 开始接触Linux强大的文本编辑器vim

强大的文本编辑器vi 在Linux如何打开文本文件,进行复制、粘贴、编辑、修改替换、撤销、重做、保存、另存? Vi 是多模式文本编辑器,提供四种模式:正常、插入、命令、可视模式 进入Vim:在终端输入vim [文件名] 或 vim ,前者编辑指定文本,后者新建文本(之后在vim进行保存操作) 1. 正常模式:即进入vim的起始模式 1.1 进入插入模式的操作: i:进入插入模式,光标位置...

操作系统

[Linux 实战] 日常篇 查看文本、打包压缩和解压缩操作

1. 文本查看命令 1.1 cat命令:查看文本内容/文本内容显示到终端 cat会将完整的文本内容显示到终端上,相当于以终端为记事本打开了这个文件。cat的不足就是有时候文本内容较多,超出了终端能显示的范围,开头的显示内容会被覆盖。 1.2 head命令:查看文件开头 head用来查看文件内容开头部分,这个开头部分默认是10行,也可以通过增加选项head -(数字) 文本名来限制输出内容的范围。 ...

操作系统

[Linux 实战] 日常篇 文件和文件夹的基本操作

文件和文件夹操作 1. 文件夹操作 1.1 mkdir命令:建立目录(创建文件夹) mkdir可以同时创建多个文件夹,中间以空格分隔 mkdir /a:表示在/目录下创建名为"a"的文件夹(需要有相应的操作权限) mkdir ./a:表示在当前目录下创建名为"a"的文件夹,可简写为 mkdir a mkdir /b c d:表示在/目录下创建名为"b"的文件夹,在当前目录下创建名为"c"和"d...

操作系统

[Linux 实战] 日常篇 帮助命令、ls命令、cd命令

1. 帮助命令: man命令、help命令、info命令 命令行是Linux的基本操作方式。Linux系统的特色也正是在于强大的命令行模式,其提供了众多命令以及参数来实现各种操作。然而,命令多在使得操作更加灵活多样的同时,也提高了使用门槛、记忆的负担。 帮助命令就是为了减轻命令记忆上的负担而存在的。 命令有分为内部命令或外部命令,shell(命令解释器)自带的命令成为内部命令,其他的是外部命令 1...

操作系统

[Linux实战] 安装Linux系统

虚拟机安装Linux系统(CentOS/Ubuntu/…) 以在VirtualBox上安装CentOS为例 1.1 安装VirtualBox: https://www.virtualbox.org/wiki/Downloads 1.2 下载CentOS的iso镜像: https://www.centos.org/download/ 1.3 新建并配置CentOS 打开VirtualBox,显示界面...

操作系统

[算法基础] 二分查找

二分查找的原理 二分查找所应用的对象要求是有序的。 比如对一个按升序排好的数组,在其中查找给定值的元素。 查找时每次取正中位置mid = ( low + (high-low) / 2 ), 如果该元素即为所找元素,则查找结束; 如果该元素比所找元素大,则说明该元素右边的元素也必然比所找元素大,所以该元素右边的元素即数组右半部分可以舍去,此时令high = mid - 1。重置查找区间,进行下一趟查...

算法

[Atom C/C++环境配置] 重点解决lnter-gcc不显示代码错误的问题

Windows下 Atom C/C++环境配置全程回顾 如果在操作过程中持续发生错误或网络卡顿,请使用科学的方式上网后重试。 下载Atom 官网链接:https://atom.io/ MinGW安装C/C++编译环境 官网下载页面链接:https://osdn.net/projects/mingw/releases/ 点击下图中左下角下载图标按钮进行下载 下载完成后打开安装包,一路continu...

C/C++

[Web编程 01] IIS、Xampp安装

Client & Server 在web编程中所说的Client,是指用于获取web服务器内容的软件,最主要是指浏览器。而Server,是指用来提供web服务的软件。 服务器软件有许多,如IIS、Apache、Tomcat、Nginx。 IIS是 ...

从零到一快速掌握web开发

[信息论与编码] 04. 熵的基本性质

熵的基本性质 1. 非负性:H(X) ≥ 0 熵描述的是某个集合统计意义上的不确定性,是自信息的加权平均。 而我们在一开始寻找描述不确定性的函数,引出自信息量概念的时候,便要求自信息的取值应在[0,+∞]。 故,熵作为自信息的加权平均,自然也是非负的。 2. 确定性:H(1,0)=H(1,0,0)=……=H(1,0,0,…,0)=0 ①根据熵的定义式,可知H(1,0)=1*log1=0 ②根据熵的...

信息论与编码

[信息论与编码] 03. 离散信源、信源熵、联合熵、条件熵

离散信源 信源即信息发出的源头,在后续的信道模型中,信源发出的信息即视为信道输入的信息。 根据信源发出信息的取值,可将信源分为离散信源和连续信源。 顾名思义,离散信源即发出的信息取值为离散型的信源;连续信源即发出的信息取值为连续型的信源。 离散信源中又根据符号出现的概率是否与前面符号有关分为:离散无记忆信源和离散有记忆信源。 信息熵 前面已经了解过了自信息的概念。 自信息表示的是某个事件的不确定...

信息论与编码

[信息论与编码] 02. 信息的测度

自信息 可寻得自信息定义式为: 、 当 r = 2 时,自信息单位为比特(bit) 当 r = e 时,自信息单位为奈特(nat) 当 r = 10时,自信息单位为哈特(hart) 自信息的意义 若 a 未发生,则 I(a) 表示a发生的不确定性; 若 a 已发生,则 I(a) 表示a提供的信息量。 自信息与概率 自信息描述的是事物的不确定度,而概率论是数学中描述不确定性的部分。自信息的数学描述...

信息论与编码

[信息论与编码] 01. 信息的概念

@从现实世界到信息世界:信息 信息 日常生活中,我们很少刻意区分信息和消息。人五官所感所得,皆可被我们归为信息,且核心在于信息在自然世界与人之间传输,被我们主观意识所捕获的那个get的瞬间。 如果要加以区分。 信息不等同于情报; 信息不等同于知识; 信息不等同于消息; 信息不等同于信号; 信息、消息、信号 将客观物质运动和主观思维活动的状态以人所能感知的形式(如: 文字、图像、符号、数据、语言、音...

信息论与编码

[运筹学]02. 通过图解法了解线性规划解的位置和求解原理

将自然语言描述的问题抽象成数学语言描述的问题(数学建模),如下: 将LP问题在平面上表现出来,即将线性规划的三要素在平面上表现出来。 建立平面直角坐标系,表示此处涉及的两个决策变量。 将约束条件(都为线性约束条件)在坐标系中画出: 将目标函数在坐标系平面中表现出来。 由于目标函数z = 2*x1 + 3 *x2表示的是三个变量的关系,要想在平面直角坐标系中表示,则需要画的是目标函数的等值线...

运筹学

[运筹学]01. 线性规划问题初探

运筹学 01 — 线性规划问题 问题的识别 在投入到线性规划问题的各种计算之前,我想到的问题是,我如何在实际生活中识别出一个问题是线性规划问题,得以后续使用求解线性规划的方法对线性规划问题进行求解。 出术语本身出发,线性规划问题的识别点在于「线性」和「规划」两点上。 规划即我们所面对的问题是一个求最值或极值的问题,是在若干方案中选择一个方案进行实施。更具体一些,规划体现在如何从「我们拥有的资源」到...

运筹学

[数据库]安装SQL Server Microsoft Studio 2008显示重新启动计算机失败的解决方法

安装SSMS 2008时,遇到如下问题: 解决方法: 打开注册表:鼠标右击开始菜单图标,选择"运行®",输入regedit,即可打开注册表。 删除注册表文件“PendingFileRenameOperations”: 该文件所在路径为:计算机\HKEY_LOCAL_MACHINE\SYSTEM\Current ControlSet\Control\Session Manager\Pending...

未分类

TensorFlow环境配置_问题回顾

操作系统:windows10 家庭版 python3.6 (使用python3.7出错后,重装为3.6) 建立virtualenv虚拟环境时出错 命令行输入 virtualenv --system-site-packages -p python3 ./venv 提示 The path python3 (from --python=python3) does not exist 改变输入命令为 vi...

未分类