- 博客(1382)
- 资源 (1)
- 收藏
- 关注
原创 卡塔兰数和出栈顺序问题
有时给定的出栈信息不一定是整个序列完整给出,可能给出部分信息,比如第2,4个出栈元素,其余两出栈信息不给出,这种情况下直接判断不方便,考虑将出栈信息通过枚举所有可能性补全序列,然后逐个判断是否存在合法序列,如果所有序列都非法,那么原不完整序列也是不可能的;在上述条件下,找出所有的操作序列,显然序列开头是push操作,结尾是pop操作,push,pop都各有n次,序列长度为2n;对n个元素的序列中的元素从左往右的顺序先后进栈,不要求连续入栈,栈非空时总是允许出栈,最终共执行n次入栈,n次出栈操作。
2024-12-05 02:41:12 686
原创 双指针法寻找单链表中间结点@单链表逆序
第一步找中间节点的时间复杂度为O(n),第二步逆置的时间复杂度为O(n),第三步合并链表的时间复杂度为O(n),所以该算法的时间复杂度为O(n)。确定链表的中间指针,可以使用双指针,让两个指针在同一个循环中前进,快指针每次前进2步,慢指针每次前进1步,直到快指针走到尽头为止。下面的片段提供大致的实现,但是部分细节有漏洞,无法实际运行(可运行代码完整版另见下一节可执行代码)代码和之前的可执行代码有所重复,为了便于读者验证,放在了同一个片段里;是用来指示已经被逆序的部分链表的首元指针,随着逆序工作的推进,
2024-12-04 00:34:43 652
原创 C语言函数传参方式
在 C 语言中,所有函数参数都是通过“值传递”方法传递的。这意味着函数接收的是参数值的副本,而不是原始变量的引用,这防止了函数修改原始变量的值。在C 语言中,被调用函数不能直接修改主调函数中变量的值(比如main函数定义的变量n,传参给main内部调用的power函数(后面的示例代码给出实现),power内部无论对n怎么修改,main中的n取值都不会发生改变,也就是说,被调用函数(比如这里的power)只能修改其私有的临时副本的值。main无法得知power函数中的n的取值,除非power将n。
2024-12-03 14:02:03 781
原创 单链表基础操作
单链表是一种简单的动态数据结构,它由一系列结点组成,每个结点包含一个数据域和一个指向下一个结点的指针。带头结点的单链表的头结点不存储数据,仅用于指向第一个真正存储数据的结点。以下是C语言中单链表的一些常用操作:(默认带有头结点)链表@单链表相关概念和代码表述-CSDN博客int data;} Node;//为了提高可读性,利用typedef和Node类型定义一个LinkList类型,效果:ListList L;等价于Node *L;//这种定义是错误的。
2024-12-03 00:01:37 400
原创 查找单链表的倒数第k个元素
算法1和算法2的时间复杂度都是O(n),但是前这需要2个循环,一个辅助指针变量,后者只需要一次循环,但是需要2个辅助指针变量;实际上,虽然算法1需要2次循环,但是和算法2需要做的指针刷新操作的次数是相当的,算法1内部每次循环执行1次指针刷新,而算法2内部每次循环执行大约2次刷新。以下这段代码用C语言编写,定义了一个单链表结构,并包含一个函数用以查找链表的倒数第。个元素,算法复杂度显然至少为O(n),本文介绍相关算法的实现。个元素和确定表的长度的时间复杂度都是O(n),但是递归使用的辅助空间比较多,
2024-12-02 16:44:47 664
原创 链表@单链表相关概念和代码表述
头结点的数据域可以不设任何信息,但也可以记录表长等信息,但是不包含数据元素(否则链表的第一个结点就不是头结点,而是第一个元素结点)。线性表链式存储结构的特点是:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。不管带不带头结点,头指针都始终指向链表的第一个结点,而头结点是带头结点的链表中的第一个结点,结点内通常不存储信息。(1)这里定义的是单链表中每个结点的存储结构,它包括两部分:存储结点的数据域。以插入为例:当前结点指针为p,新建结点的指针为s,将p的后继交接给s,
2024-12-01 01:34:56 869
原创 计算机组成@内存和cpu基本结构@主存储器@运算器@控制器@ 控制单元和算数逻辑单元@常见寄存器
计算机组成@内存和cpu基本结构@主存储器@运算器@控制器控制单元和算数逻辑单元@常见寄存器。
2024-11-27 00:11:45 907
原创 机器数@补码@补码相关计算@计算机中的加减法运算@补码加减法运算公式
文章目录补码由真值手算补码:补码的形式化定义纯整数:例纯小数表示范围相关计算👺从原码得到补码推导从补码得到原码的快速方法(数值位取反加1法)相反数间补码的关系👺用符号描述推导两个rrr进制数相加的进位特点分析计算机中的加减法运算补码加法的基本公式补码减法公式例补码补码(英语:2’s complement)补数(complement)由真值手算补码:对于二进制数求补码,我们有更高效的方法(分为两类情况)真值x<0x<0x<0的二进制原码形式T(x)T(x)T(x)数值位
2024-11-20 22:51:34 749
原创 取模运算@求余运算@补数@负数除法和余数及其在不同编程语言程序设计中的区别
取模运算@求余运算@负数除法和余数及其在不同编程语言程序设计中的区别不同语言的取模运算对于两个正整数的定义或运算结果一般是相同的,但是其他情况结果不一定相同,可以通过查阅语言参考或者做实验来判断取模运算对于负数,小数的处理。
2024-11-17 22:03:32 733
原创 同余及其基本性质
讨论整数之间的整除关系后,我们要讨论整数之间一种更精细的关系:同余关系.它的引入极大地丰富了数论的内容,简化了数论中的许多问题.利用同余关系可以进一步讨论整除;对整数集合进行分类,将彼此同余的整数放在一起,得到一类整数,称为剩余类.每个剩余类可看作一个特殊的“数”.对于这些“数”,我们可以像普通的数一样引入加法、乘法运算.在此基础上,我们讨论同余方程和同余方程组的解法.同余在初等数论中占有极为重要的地位由定义容易得到以下的基本性质:其中ab∈Zab∈Za≡amodma≡。
2024-11-16 21:13:06 1101
原创 windows@多系统引导名字修改@默认引导系统修改@bcdedit配置
BCDEdit 命令行选项 | Microsoft Learn在Windows双系统环境中(例如安装了Windows 10和Windows 11),可能需要对每个操作系统的启动项名称进行修改,以便更清晰地区分它们。这通常涉及到编辑引导加载程序(Boot Loader)的设置。对于Windows系统,这可以通过使用bcdedit命令来实现。bcdeditor另外,windows自带的GUI程序msconfig中可以查看所有系统启动项以及默认启动项,当前系统所在盘符等信息,还可以删除启动项,设置。
2024-11-15 21:10:52 1096
原创 二元一次不定方程@整数解问题
虽然用以上两种方法得到的解的表达式形式上不同,但本质上是相同的。是任意两个正整数,并进行了式(1)中的辗转相除法,首先画出如下的框图,然后将由辗转相除法求出的。解不定方程 (1) 就是要求出 (1) 式的。代入(3)式(或带入(2-1)更好算),即得。证明其能够被表示为式(2)的形式。,则立刻就可以写出 (1) 式的。,将方程(1-1)两边同时乘以。若知道 (1) 式的一个特解。由(4)式可得方程的一个特解为。,则(1)式的全部解为以下式。就是 (1) 式的一组。即得(1)式的一个特解。
2024-11-15 18:02:15 974
原创 算数基本定理@质因数分解原理
把自然数写成素数的乘积,结论就是著名的算术基本定理。此定理建立了自然数与素数之间的一个重要的关系式。算数基本定理是整除理论性质和结论的精华,是整个初等数论的基础证明一些方程是否有整数解能够从公式的角度解决许多直接计算但计算量大的问题,比如求一个数的正约数数量。
2024-11-15 02:04:45 420
原创 公约数@公因数@互素@最大公约数@公约数相关性质定理@辗转相除法@欧几里得法
文章目录辗转相除法(欧几里得算法)辗转相除操作示例rnr_{n}rn表示为a,ba,ba,b的组合表达式递推算法计算p,qp,qp,q辗转相除法基本定理Note说明应用证明数学归纳法的应用公约数相关概念👺公约数最大公约数互素绝对值化处理和讨论公约数公约数相关基本性质👺公约数基本定理👺定理1定理2例定理3 裴蜀定理|裴蜀恒等式例推论👺定理4定理5推论1推论2定理6 多个整数的最大公约数递推算法说明证法1证法2应用和推论问题1问题2问题3辗转相除法(欧几里得算法)Euclidean algorithm
2024-11-14 18:00:41 855
原创 数论基础@整除相关概念和性质@带余除法定理
文章目录abstract数论的主要内容数论的重要性和应用整除整除的定义整除@约数@倍数注意正约数相关概念的辨析整除(Divisibility)被整除(Being Divisible)除以@除整除的性质👺举例应用👺其他性质正约数性质1方法1方法2补充例正约数性质2有意思的整除问题或性质带余除法定理存在性唯一性带余除法和正负号余数和取模相关性质自然数可以表示为任意进制数利用带余除法做整数的进制转换小数点移位将qqq进制数化为10进制数将10进制数化为qqq进制数例abstract数论(Number Theo
2024-11-12 23:25:57 1051
原创 U盘@购买攻略@检测工具@扩容检测
很多U盘虽然便宜,但是质量堪忧,为了检测买回来的U盘是否达到参数或者宣传,需要一定的测试从经验上看,便宜大容量的U盘要么速度堪忧,要么容量虚假(数字扩容容量,实际上容量要小得多)而且速度慢的话,测试容量真实性会花费很长时间,让人失去耐心另一方面TF卡,SD卡配合读卡器有类似于U盘的效果,而且更灵活一些,但是读卡器和卡可能容易损坏一些。
2024-11-09 17:51:54 371
原创 windows中的时区和区域设置@区域标识符
区域设置和语言 - Win32 apps | Microsoft Learn国家语言支持 (NLS) API 参考中定义了 NLS支持的预定义区域设置标识符。在 Windows 操作系统中,时区(Time Zone)和区域(Region)设置与 PowerShell 中的变量有一定的关系,但它们是不同的概念,作用范围也不同。时区(Time Zone):主要影响系统时间,不直接影响和。区域(Region):影响日期、时间、数字、货币等的显示格式,并且会影响和的默认值。和。
2024-11-08 10:46:18 1013
原创 字符集@字符编码标准
UTF-8(8-bit Unicode Transformation Format)是 Unicode 的一种字符编码方式,广泛用于网络和跨平台文本交换。兼容 ASCII:UTF-8 向后兼容 ASCII 编码。对于标准 ASCII 字符(范围 0x00 到 0x7F),UTF-8 使用单个字节表示,这与 ASCII 编码相同。可变长度编码:UTF-8 使用 1 到 4 个字节来编码一个字符。
2024-11-08 10:33:57 605
原创 windows控制台编码@chcp程序设置活动页面代码@C&C++编译的程序打印中文乱码问题
chcp是 Windows 中用于更改或显示活动代码页的命令。代码页(Code Page)是字符编码表,定义了特定字符集的编码方式。不同的代码页对应不同的字符集和语言环境。例如,ASCII、Unicode 及其各种变种,以及特定国家或地区的字符编码等。chcp命令在使用多种语言或在命令行中处理特定字符集时很有用。UTF-8(8-bit Unicode Transformation Format)是 Unicode 的一种字符编码方式,广泛用于网络和跨平台文本交换。兼容 ASCII。
2024-11-07 20:57:18 887
原创 windows Edition@版本切换@家庭版@专业版@教育版@企业版@LTSC切换
windows版本(edition)切换不是任意两个版本都可以切换,比如pro无法直接切换到enterprise LTSC,只能切换到IOT enterprise。获取不同windows edition key。使用管理员命令行窗口执行以下命令。
2024-11-03 20:01:48 376
原创 C@C++语言标准变迁概述@查看编译器支持的语言标准@编译时指定语言标准
对于C/C++语言现代计算机上安装的编译器基本上都支持主流的C/C++语言标准一般初学者学习C/C++时不需要关注编译器支持什么版本的语言标准,一般支持新版本标准的编译器能够支持旧版本语言标准的编译只有语言专家和项目工程师或高级用户需要关注最新版本的标准,本文提供了可以快速检测您当前使用的编译器(g++)支持的c++版本;对于其他比如gcc也可以用类似的思路(但是c语言的标准比较少,内容比较稳定,基本上用C99或C11,没有太大变动)
2024-11-02 21:15:59 1001
原创 赋值语句@赋值表达式@便于阅读和便于理解的比较
同样的道理,在s 执行自增运算之前,字符就被存储到了指针s 指向的旧位置。最后的结果是依次将t指向的字符复制到s指向的位置,直到遇到结束符’\0’为止(同时也复制该结束符),为了更进一步地精炼程序,我们注意到,表达式同’\0’的比较是多余的,因为只需要判断表达式的值是否为0 即可。更容易阅读,或者方便阅读不表示容易理解,比如简短的语句看似简单,但是可能应用了更多的技巧,比朴素啰嗦的语句更难理解。该函数初看起来不太容易理解,但这种表示方法是很有好处的,我们应该掌握这种方法,C 语言程序中经常会采用这种写法。
2024-11-02 12:19:22 859
原创 windows@命令行中获取环境变量取值不展开取值(原值)
这会造成许多间接引用的路径发生更改后无法自动更新,造成灵活性下降,特别是通过命令行修改(尤其是添加)多取值环境变量的部分值的时候。为了便于讨论和实验,下面假设环境变量都讨论的是当前用户级别的环境变量。使用此重载指定检索到的值的特殊处理。此外,这里的不展开环境变量主要值的是记录着路径的环境变量)总之,我们需要解决的问题是命令行获取不展开的值。目前的方法是通过访问注册表来获取不展开的值。意思是假设你的环境变量中有一个。的环境变量(例如 创建环境变量。使用 参数指定要返回的值(如果。变量,并假设对应的取值为。
2024-11-01 20:22:37 809
原创 Vscode配置CC++编程环境的使用体验优化@相关指令和快捷键配置@编译调试模式选择@CodeRunner一键编译运行@补充说明
下面我给出自己的配置,其特点是基本满足各种编译需求,适用于轻量的C/C++编译在讲具体配置内容之前,先了解以下内容tasks.json中的tasks数组每个元素是一个对象,视为一个build task,分别表示一种build源代码的方案首先我的建议是取一个合适的task名字,在各个task对象的label字段中配置,名字可以设置的简单一些不需要担心命名太简单而看不出配置的用途,因为我们可以在detail字段中写入详细的信息将label字段设置的简单的好处在于中的。
2024-10-31 21:02:04 959
原创 算法的基本概念@性能分析初步@复杂度分析初步
本文介绍算法相关的基本概念,算法特点,算法指标,分析基础算法和简单抽象算法性能介绍复杂度以及相关符号(时间复杂度和空间复杂度,以时间复杂度为主)复杂度量级之间的比较以及部分关系的简单证明,介绍初等数学公式或一些恒等式在算法时间复杂度上的分析用途算法执行时间的数量级称为算法的渐近时间复杂度TnOfnTnOfn)),它表示随着问题规模nnn的增大,算法执行时间的增长率和fnf(n)fn的增长率相同,简称时间复杂度。一般fnf(n)fn。
2024-10-30 23:17:31 659
原创 EM@组合数学@朱世杰恒等式@曲棍球恒等式Hockey-stick identity
∑iani−1a−1na∑iana−1i−1an∑ianian1a1∑ianaia1n1如果将恒等式的左右两端对调,可以说,朱世杰恒等式将一个组合数naan展开成n−1r−1n−2r−1⋯r−1r−1r−1n−1r−1n−2⋯r−1r−1共n−a1n-a+1n−a1项。
2024-10-30 22:57:38 765
原创 scoop@提高scoop可用性@使用多个版本的scoop@scoop本身多版本共存
一般而言,scoop只要安装完成就主要关心的是buckets,buckets里控制着你可以从scoop安装的软件然而在国内,不使用代理的情况下,仅使用原版scoop是不够的国内scoop爱好者提供了魔改版的scoop,适合国内使用,但是仍然有其局限性,部分场景会发现下不动Scoop: scoop国内镜像优化库,能够加速scoop安装及bucket源文件,无需用户设置代理。虽然该项目提供了切换分支(archive)来使用原版体验,但是每次切换要拉取不同分支不是太方便。
2024-10-30 17:58:21 989
原创 windows@快速安装windows系统镜像安装@快速部署windows操作系统
原地安装 或升级 windows 系统和安装普通软件的步骤差不多,不太需要讨论。关于 win11 绕过硬件限制和双系统快速部署是有一些技巧,让安装过程更快目前我用过的最快的部署方法是用 dism++的镜像恢复功能,速度非常快,而且可以提前准备驱动打入,支持各种精简版系统的部署,比如非 ISO 合适的其它镜像文件也支持。特别是双系统,先选定或划分一个分区,还原镜时勾选添加引导,重启到新系统就行。另外建议先备份驱动,然后在重启到新系统前执行驱动导入操作,重启后新系统的驱动也都有了,舒服。
2024-10-27 16:35:19 902
原创 powershell@批量重新导入模块@刷新发生了变更的模块@ipmof
由于同一个会话下,powershell无法自动更新已经导入但发生变化的模块,这时候用户有两个选择:重新执行pwsh,或者使用ipmo(Import-Module) 配合-Force参数强制重载相应的模块前者重载得彻底,但是会无法继承父级会话中的环境,比如定义的变量在新开的pwsh中无法访问,而且开销比较大,速度慢后者一种方法更加轻量,由于不会创建新的pwsh进程,不会造成环境变量丢失,但是一个个检查模块然后重新加载对于开发者来说不方便。
2024-10-01 12:02:08 217
原创 powershell@函数结构@输入处理方式@Begin Process End@支持管道符的函数结构组织
powershell@函数结构@输入处理方式Begin Process End@支持管道符的函数结构组织通过合理使用beginprocessend和clean块,PowerShell 函数能够有效管理输入数据流和资源。理解这些块的功能和最佳实践可以帮助您编写更加健壮和灵活的脚本。
2024-09-29 23:39:25 715
原创 windows@win10@Win11版本号和代号命名变迁@获取或查看windows版本号信息详情方法列举
版本号:Windows 10 和 Windows 11 的版本号都为10.x,这反映了它们的核心架构相同。构建号:Windows 11 的构建号通常为22000或更高,Windows 10 的构建号从1507到19045不等,表示不同的更新和版本。Windows 系统经历了多次命名和版本号的变迁,从 Windows XP 到 Windows 11,功能和用户体验不断改进。每个主要版本都有特定的构建号,反映出更新的时间和内容。了解这些版本号和代号有助于管理系统更新及其兼容性。
2024-09-27 20:01:00 1093
原创 Powershel@powershell的强大特性和方便之处@高级函数和通用参数@风险缓解和消息确认SupportsShouldProcess
介绍powershell的强大特性和学习资源例证:powershell高级部分的综合示例:消息确认(风险缓解)框架的使用如果用于对于powershell有一定兴趣和了解,并且想要编写自己的powershell命令或函数(尤其是规范的高级函数),那么需要对相关的概念和文档有一定了解Cmdlet 概述 - PowerShell | Microsoft Learn编写 Cmdlet 的教程 - PowerShell | Microsoft Learn。
2024-09-27 13:13:00 653
原创 powershell@update-help更新文档和离线文档安装@并行加速安装帮助文档更新@安装报错问题
虽然powershell会为cmdlet或者用户自定义的powershell函数生成文档,但是基本上仅限于函数参数的类型和属性信息,对于参数的直观描述往往是缺乏的,而且无法生成,例如。建议使用必要的参数来更新powershell的帮助文档,或者使用离线的方式更新或着安装文档,尤其是多台设备共享。局域网内可以使用smb等工具分享,也可以配合robocopy传输内容给对方。),部分模块的文档会安装失败,这种情况下需要手动补充安装。如果没有安装相应文档,那么中间的一段描述。也可以用并发的方式在线安装。
2024-09-26 02:44:03 696
原创 git@git安装包下载@国内git for windows加速下载@命令行一键安装git软件@多种加速下载方案高成功率.md
git是一个基础软件,应用十分广泛,但是它的官网下载速度却让国内用户感到不快git for windows 是一个git在windows平台的客户端,除了官网下载,本文列举了多种可以提高下载速度的方案,可靠性由高到低,成功率几乎百分之百。
2024-09-25 17:08:02 881
原创 windows@文件系统链接@快捷方式@快捷键方式和符号链接及其对比
在 Windows 系统中,传统的快捷方式(Shortcut)和符号链接(Symbolic Link,JunctionLink,后者又称为连接点,两者存在一定区别)都是用来创建指向文件或目录的链接,但它们有不同的特点和使用场景。符号链接(Symbolic Link)、硬链接(Hard Link)、连接点(Junction Point)等这类技术统称为文件系统链接它们是操作系统用于管理文件和目录引用的不同方式,允许在文件系统中通过不同路径引用相同的文件或目录。符号链接。
2024-09-22 10:56:33 1046
原创 github加速下载@powershell命令行内加速下载github资源@获取镜像加速后的链接
为了便于用户使用,我将相关功能组织成了一个powershell模块集合,您可以通过gitee来一键部署(仓库很小)使用gitee,gitcode等托管站导入github加速代码仓库(但是release等文件不容易下载)然后直接调用相关函数即可(命令内调用了其他多个函数,不便在此粘贴源代码)克隆github仓库的加速资源有很多,比如使用cgit克隆。获取github资源的加速链接文件/仓库加速。,接受链接参数(默认尝试调用。
2024-09-21 23:36:54 764
原创 windows@软件管理方案@软件下载和安装方案@应用商店安装@从软件官网下载安装@命令行方案
windows上的软件管理方案@软件下载和安装方案@应用商店安装@从软件官网下载安装@命令行方案。
2024-09-18 21:38:52 840
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人