自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AhaKnow

知识控:知识改变一切

  • 博客(152)
  • 收藏
  • 关注

原创 解决Ubuntu16.04 支持exfat格式

exfat格式可以在Mac、Linux1804以上、Win之间使用但是!!!Ubuntu1604原本不支持解决:这种问题吧!可以先搜索sudo apt search exfat然后基本就能解决。sudo apt install exfat-fuse然后重新使用U盘即可。Ubuntu1804以上应该没有这种问题。...

2022-03-14 11:13:38 902 2

原创 【解决】SecureCRT 错误 a protocol error occurred. too many authentication failures

一般出现这个问题,可能是本地配置的密钥过多比如:使用多个密钥匹配不同的github账号等。解决方法在SecureCRT的设置中,SSH2下面的Agent Keys,只留一个公钥即可。根本不要修改ssh的配置文件,报错的意思很明显,是授权的密钥太多了,不知道用哪个了。...

2022-03-04 11:09:06 2620

原创 解决raw.githubusercontent.com无法解析等导致的各种安装问题(DNS被污染)

很多涉及Github的安装问题,都会因为raw.githubusercontent.com无法解析而导致无法下载等问题,比如:sudo rosdep initERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.解决这个问题

2021-12-14 10:15:48 8747 1

原创 小技巧:使用Bash脚本批量处理重复文件名(MacOS适用)

一个字还是“懒”。换到MacOS/Linux操作平台了之前,记过一次在Windows上使用bat脚本批量处理重复文件名的,现在换到MacOS了,命令行操作变得更加快捷和省心。这里记录一个批量处理重复文件名的小技巧吧(类似的方法很多,学会一个就行)在命令行下使用原理很简单:for循环找到需要处理的文件,以文件格式作为通配查找; 然后选中需要处理的字符串,替换成想要修改的字符串(使用mv移动操作来实现重命名); (修改内容为空时,就是删除) for file in *.文件格.

2020-11-13 00:43:29 604

原创 关于Flask通过局域网访问(局域网内任意设备通过ip:port访问)

0.0.0.0flask 在0.0.0.0这个ip上运行,可以监听所以外部的请求,但是,得知道flask运行程序所在的ip是什么才行。一把,家用路由器的ip是172.16.x.1或192.168.x.1之类,而这个地址是通往路由器的,与上面说的局域网访问无关。内网ip一般可以在路由器设置中自定义,或者本地查看。假如,以及本地的ip是172.16.x.12,用flask运行flas...

2020-03-25 13:34:44 3727

原创 微信小程序,使用wx.request()访问服务器,无法传递参数的问题

分析问题在哪里wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '', y: '' }, header: { 'content-type': 'application/json' // 默认值 }, success (res) { console.log(res.dat...

2020-03-02 20:30:38 1699

原创 ThinkPHP中使用order()函数对获取的数据进行排序

问题的出发点一般情况下,需要对获取的数据按照时间倒序整理。但我希望还不仅仅如此。举一反三,触类旁通,能否实现按照指定的name进行排序?比如,我需要按照以id顺序,status倒序?问题的解决使用一个order函数就能解决,不需要连续使用。具体写法,如上述的要求,可以这么写:order('id, status desc')//desc == descent == 倒序/...

2020-03-01 16:46:51 3263 1

原创 关于MySQL中的布尔值,如何存储false或true

简明说,数据库存储的布尔值是0和1,相当于一个字节的INT型整数具体操作如果是可视化界面,可以直接选择Boolean,长度设置为1。其最终显示的效果等价于TINYINT(1)所以,zero == false;nonzero == true​...

2020-03-01 16:28:53 8584

原创 理解JavaScript中Undefined与Null的区别

这是一个不经意就会忽视的地方直接理解Undefined,中文名:未定义。就是说,有的,但是还没有定义。换成计算机语言:变量已经声明,但还没有定义它为具体值。Null,中文名:空;零(也可表形容词)。意思说,它是定义了,表示的为空,数值上显示为0。容易忽略的地方前后端传参的时候,后端需要对Undefined进行校验。​...

2020-03-01 10:45:38 270

原创 Win10 更新后,移动硬盘无法正常弹出,提示设备被占用(已解决)

问题起因不清楚什么时候开始的,应该是升级到专业版之后,然后版本升级为1909。从那之后,每次插入硬盘,都会自动打开(也就是自动播放,autoplay),而问题也正是出现在此。根治的方法直接关闭“自动播放”。位置在:Win → 设置 → 设备 → 自动播放 (默认开启,点击关闭)​...

2020-02-20 13:19:51 16871

原创 结点、节点、Node的关系

这是中文翻译,以及不理解而混淆的概念通俗理解:节点:有”作用“的点;有功能的,比如网络节点等结点:”打结了的点“,它只是形象表示交叉的点,比如数据结构中的数据结点,结点本身不起作用Node 中文名:节点​...

2019-12-17 19:55:03 1953 1

原创 奈奎斯特准则、比特率、波特率、码元……的逻辑链

一个关键首先要理解,比特和波特分别对应两种描述状态。电信号的传输中,使用不同的电平级,那么发出一个波(即:一个符号)也就会有不同的状态,比如8个电平级就有8种状态,,码元和码元传输速率(波特率)对应的就是这个。而,计算机中的差分只有0和1,所以,要用要0和1来表示不同的状态,那么就需要多一点的信息了,比如,0、1,表示两种,00、01、10、11就可以表示四种。由此,就可以理解用比特率来...

2019-10-13 16:48:29 1887

原创 操作系统原理:关于“成组链表法分配与回收”的理解

理解的关键如何分配与回收?如下为关键理解点:只有专用块才会被读入内存(可以把它视为第一组);专用块的第一项(如果按指针从上往下,那就是最后一项),所指向的第二组,该组不被读入内存 所有的空闲块都可以被分配;所以,某些存储了下一组信息的关键块需要先保存处理。分配与回收的具体过程以专用块还剩最后一项为例:此时,需要该项所指向的第二组,但是第二组中也有一项是保存了下一组信息的,需要...

2019-09-23 17:37:53 1093

原创 算法笔记:关于bool数组赋值的问题

一个很严肃的问题一般情况,对于bool数组的初始化都是设为false,即:0之所以这样做的原因,数组其他部分的自动赋值会默认为0,所以,想要初始化全部为true,使用bool isTrue[N] = {true};就会出错,因为这样做,只有第一个位置为1(机器表示的true),其他都为0;所以,刷题刷得忘记思考得时候……**很容易被这种特别浅显的小问题所困恼!解决方法...

2019-08-28 16:17:42 5561

原创 “变长数组” 的注意点

维度问题?默认的数组都是一维,“变长数组也是”。只不过变长数组被定义为一个容器后,更容易实现对于数据的操作的。易混淆点一个数据对应多个数据,即一对多,那么就是一维度;如果一个多,多里面仍然是一对多,那么就是二维形式。​...

2019-08-13 20:39:40 768

原创 A!A1002:格式输出问题

聪明反被聪明误嗯……其实是不够聪明,所以自以为加了条件判断就能够满足“空格的要求”,实际上在边界位置上处理还是不当的。仔细观察就好一般情况末尾不能有空格,那么除了用if判断外,还有一种思维要考虑:即,本身空格的输出就是有规律的,或者说,可以看成一组一组的,让空格打头~​...

2019-08-13 20:13:42 211

原创 一键生成PTA代码文件……(嗯,批量新建cpp文件名)

如下,以敬:程序员的懒~@echo offsetlocal enabledelayedexpansionset n=1000for /L %%i in (1,1,10) do (set /a n+=1copy A1.png A1!n:~-3!.png)@echo on(bat语言还是”挺有趣的~“)​...

2019-08-13 00:15:11 570

原创 A!PAT A1001:测试点遗漏项

遗漏思考点a + b等于0的情况!!!这一点尤其注意,因为很容易没有顿悟之前,想死都想不到……等于零的情况可以单独考虑或者在赋初值时考虑。算法思维关于冒号的输出:两种思路;一种把冒号存储在数组里(不一定要char,可以特殊的int)一种是根据后一位下标确定之前要输出冒号,因为,输出遍历数组是倒序。​...

2019-08-12 23:56:34 603

原创 算法笔记:关于“背包问题”的理解

这是一种思想……理解了会很畅快,但理不清就会极其堵塞难受。思想其本质两种背包问题,一种一件只能选一次;一种一件可以随意选,直到满足条件。其实两者本质差别在于:是继承?还是跳过?一个只能选一次的,需要逆向思考,即从大到小进行满足,比如说,背包容量9,现在有四种类型的物品:1 3 5 9;可以选的组合有1 3 5或着单独的9。如果正向思考,那么之前的会影响之后的,*而要求一类只能...

2019-08-10 10:29:09 609

原创 如何构建完全二叉排序树?

二叉排序树简明说,左子树的值都比父结点的小;右子树的值都比父结点的大。完全二叉树简明说,按照一个父结点两个左右孩子,从第一层开始,从左往右,没有孩子是空缺的树,就是完全二叉树。理解完全二叉树关系如果把二叉树的根结点视为1,那么它的左孩子就是2 × 1,右孩子就是2 × 1 + 1,以此类推都成立;所以,判断是否叶子结点,可以用结点自身的序号,与所有结束数来比较,该结点没有左...

2019-07-30 12:51:36 2539

原创 算法:使用递归实现“深度优先搜索”的理解

“深度”的理解深度优先的关键,在于深度,一扎到底,有一种“不撞南墙,死都不回头”的勇猛。理解深度优先搜索的关键,也就在深度上。一般理解深度优先搜索会用迷宫举例子,其实这个例子本身就很形象具体了,可以很好理解,但是如果不抓住理解的本质,很容易就会犯难。分叉、分叉、分叉深度优先的搜索选择,在于执迷不悟地每次只选同一方向的分叉,直到撞死在南墙上,才想到要回到上一个分叉,另作选择。所以,...

2019-07-23 16:11:37 2401

原创 PTA A1074 Reversing Linked List:解题思路

这道题很有思考份量思考的关键:题目要求的是对一个链表,每M个独立进行反转,且多余的结点不反转。这里的思考量在于:因为链表是前后连着的,虽然这里只涉及next,但是,反转之后的next指向哪里,就是问题了,可以思考的是:能否听过for循环加if判断来实现?举个几个例子比如:1 2 3 4 5 66个结点,反转4个那么就是4 3 2 1 5 6其中需要注意,1的next指...

2019-07-21 18:38:13 310

原创 中缀表达式与后缀表达式的转换

理解的关键从最简单的例子出发:1 + 2 ×3 / 4转换成后缀表达式:1 2 3 × 4 / +关键是要理解:后缀表达式是借用堆栈的后入先出来实现运算的,即:上述的表达式可以以队列形式写出,然后借用堆栈进行计算:如果是操作数,压栈,如果是操作符,一次性弹出两个,分别是操作数2和操作数1在理解这个原因的基础上,再看,中缀和后缀之间怎么转换关键是要分开即操作数和操作符分开...

2019-07-17 21:05:29 214

原创 PTA A1100 Mars Numbers 解题思路

核心要点题目的意思很明确,以13为进制,进行数字和字符串之间的转换,并且题目也不是美容道理的没有上限,而是说明了,最大的数是169,即13的平方。那么就可以这么思考:169的13进制,相当于100,题目以此为边界,说明:可以直接把0 0到12 12对应的字符串都先计算出来,然后对照查表即可。需要用到的工具两种映射:数字 -> 字符串;字符串 -> 数字;分别用...

2019-07-17 15:44:03 203

原创 算法:理解扩展欧几里得算法

这个算法还是有点意思的,需要一些思考量和理解。如何理解?欧几里得算法没扩展之前,计算的两个数的最大公约数,比如计算144和24的最大公约数,计算的过程如下:最开始:144 24第一次:24 144 % 24 即 24 0发现直接整数了,说明24就是144的公约数,所以计算结果就是:24如果用a,b来表示,变为一般形式的话:给定两个数(a, b),现在想计算两者的最大公约数,那么...

2019-07-14 14:58:56 662

原创 PTA A1023 Have Fun with Numbers :两个注意点

注意点一看清楚题意!看清楚题意!看清楚题意!Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see t...

2019-07-12 20:56:24 453

原创 算法思路:高精度乘法(大整数与int相乘)

核心思路这里选择相对简单的int型整数和大整数相乘,来考虑其算法的思路:按照小学算术的知识,两个数相乘,可以拆开看成一个数固定,另一个数从个位开始,依次和这个数相乘;然后没左移一位,相应的结果也左移一位,最后相加。(其实硬件实现加法,也是基于这个最基本的原理)所以,在算法的实现上就可以这么来考虑:比如:711×21那么个位数1 ×711 = 711,用10取模得到1,就是最后的...

2019-07-12 18:04:41 1505

原创 关于写完函数不调用的问题……

我只能说:这可能最不容易发现的问题了。我很好奇,为什么会出现这种情况呢?原因想了一下,可能有这么一些:并不是真的知道为什么要写这个函数,即,不是自己构思想,反倒有一个刷题后的惯性思维。 main函数,最后写没问题,但main函数是程序唯一的入口,这一点没有意识到,自然就容易忘。 初学者最容易犯这种错误,不如多警醒自己!!!​...

2019-07-10 22:05:39 485

原创 PTA A1059 Prime Factors:解题思路

题目意图给定一个在long整型内的整数,要我们来用素数来分解。质数就是素数,这一点要知道。应对的策略肯定需要一个素数表,计算的范围,可以大致估算一下,2的63次方,大概时10的十八次方,素数表算法10的五次方肯定没问题了。然后需要一个结构体来记录,每一个素数对应的个数,因为答案最后的形式是有次方项的。还有一点,很重要的一点,是怎么找到这些素数?基本的思路是这样的:一个数拆成两...

2019-07-10 21:38:47 208

原创 Quadratic Probing:二次方探查法

核心思想当散列发生冲突时,将原来的值分别……如此进行。如果题目只考虑正向,那么减的就不要考虑。冲突处理公式原来的值改变后,模上表长,如果仍然冲突,继续增加,直到增加的值等于表长​...

2019-07-10 19:27:17 1622

原创 代码实现:进制转换

原理比如12转成2进制,那么第一次模2后,得到应该是最左边位置的数,然后除2,之后再模2,得到的是左边第2个位置的数。如下:12 % 2 = 012 / 2 = 66 % 2 = 06 / 2 = 33 % 2 = 13 / 2 = 1 (向下取整)1 % 2 = 11 / 2 = 0至此结束。如果用一个数组来记录,取模的值,那么应该是:0 0 1 1 0这是逆序的...

2019-07-10 19:09:24 794

原创 Float Point Exception

神奇的错误……当我知道错误出在哪里的时候,不禁自己笑出了声……这要是考试,岂不完蛋?!ll gcd(ll a, ll b) { return b == 0 ? a : (b, a % b);}递归调用一定记得,有始有终,即:有入口进去,以及能够最终出来。​...

2019-07-10 16:03:50 4480 1

原创 PTA B1008 数组元素循环右移问题:使用最大公约数的思想

前言遇到新的思考方式时,首先考虑的应该是:为什么能这么想?而我为什么没想到。关于本题本题,能够想到的最简单方法:直接用for循环,加上数组第n位作为暂存。但是,以学习思维方式的考量,如果能够借此理解“最大公约数的怎么用?”不失为一个好方式。举个例子8个数字,右移3位比如:1 2 3 4 5 6 7 8(注意,数组标号是从0开始)结果应是:6 7 8 1 2 3 4...

2019-07-08 20:18:04 471 1

原创 PTA A1049 Counting Ones:关于找规律的思路

题意题目的意思,给定一个数字,在从0到小于等于这个数的所有数字,找包含1的数字,并计算所有1的个数。误区如果直白的考虑,就比如12,含有1的数字有4个,但是题目要求的是这些数字中一共含1的个数,所以,如果按照找含1数字来解题,那么可能的困难就会很大。正确的算法试着把一串数字拆开看,比如12,看成1 2,从右往左依次1号、2号,那么1出现在1号位置的可能:0 1和1 1,两个1...

2019-07-08 17:40:41 244

原创 C++:如果变量不赋初始值……

结果会是随机的吗?还是说和具体的机器有关系?比如:#include <cstdio>int main(){ int ans; printf("%d", ans); return 0;}我得到的结果是:47,为什么?转成二进制看看:101111,好像有那么一点意思10 1111是默认初始值吗?或许这一点值得探究一下?(尝试在其他机器,...

2019-07-08 16:58:53 3261

原创 PTA A1104 Sum of Number Segments:计算顺序问题

问题所在ans += temp * (i + 1) * (N - i);ans += (i + 1) * (N - i) * temp;就人脑而言,上述两个狮子应该是没差别的,但是!在具体的代码实现中就不是:问题点出在检测点3、4,但是暂时还没有想明白是为什么。可能的原因:这里是处理浮点数和整型相乘,相乘的顺序和给定的整型数大小有关系。​...

2019-07-08 16:38:02 310

原创 PTA A1069 The Black Hole of Numbers :犯傻记录

犯傻1首先,题目给的是整型数字,那么想要进行排序,就必要先转换给数组形式。这里的暂存数组可以是全局变量,也可以是定义在main()函数中。犯傻2关于连续输出:假设N是一开始数,那么后面变化的也就是N,如果作死再设一个temp来暂存中间差值,得不偿失!这里可是使用while循环。犯傻3题目很明确,就四位数字,所以,不管是排序还是for循环,都用数字4为边界就好。​...

2019-07-08 15:58:42 173

原创 C++生成最大的随机数

思想一般情况下,使用随机种子rand()来生成,会受到RAND_MAX的限制,超过RAND_MAX的数字就根本无法生成。所以,这时候考虑并不直接随机生成数,而是生成“随机”即可,这个随机可以是一个比例,比如rand()/RAND_MAX,比例是不受范围限制的,随意就可以用来与更大的数相乘,得到更大的随机数。使用注意如果在C++中使用随机种子,需要#include 和#include ...

2019-07-08 13:18:45 3098

原创 操作系统:理解“页式存储”、“段式存储”、“段页式存储”的地址关系

页式存储逻辑地址 = 页号 + 页内地址(这个划分由系统自动完成)页号用于查页表得到页框号 页内地址就是偏移地址,最后与页框号相加得物理地址段式存储逻辑地址 = 段号 + 段内地址段号用于查段表得到相应物理内存的起始地址 段内地址就是偏移地址段页式存储逻辑地址 = 段号 + 段内地址段内地址 = 页号 + 页内地址段号还是为了查段表,但此时得到说是该段对应页表所...

2019-07-06 20:35:14 3905

原创 操作系统:理解外碎片与内碎片

碎片的内外之分与分配与否有关,比如可变分区的那些没有被分出去给进程的小空间,就是“外碎片”。因为进程的需要是:希望分配到的内存空间是连续的,所以那些小的、分散的就用不上咯。而关于内碎片的“内”,指的是在进程使用中产生的,即,它们是被进程所占用的,但是进程并没有利用它们。(当然,系统也无法利用,除非进程释放了这些内存)补充一点:多道可变连续分配 → 只会产生外碎片; 单道连续分配 →...

2019-07-06 16:41:12 3011

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除