自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1023)
  • 资源 (13)
  • 收藏
  • 关注

原创 GESP等级考试C++5级30-二分查找2

本文介绍在含重复元素的升序数组中使用lower_bound方式实现二分查找,以定位元素首次出现的位置。通过不断缩小范围,找到第一个大于等于目标值的位置,并额外验证该位置是否等于目标值,确保结果正确。完整代码实现包括自定义函数与主程序逻辑,适用于多组查询,有效处理重复元素场景。

2026-11-05 09:53:07 8

原创 GESP等级考试C++5级29-二分查找1

二分查找是一种高效的有序数组搜索算法,基于分治思想,每次将搜索范围缩小一半,时间复杂度为O(log n)。其核心是通过比较中间元素与目标值的大小,动态调整搜索区间。代码实现中,定义find_x()函数,使用双指针start和end控制范围,通过mid = start + (end - start) / 2避免整数溢出。对于多次查询,可高效返回元素下标或-1(未找到)。适用于严格升序且无重复的整数数组。

2026-11-05 09:49:41 104

原创 GESP等级考试C++5级28-唯一分解定理2

最小因式筛法通过预处理构建2~N范围内每个数的最小质因数表(spf),实现高效质因数分解。对于多个查询,可快速定位每个数的质因数及其个数。例如,360分解为2³×3²×5¹。算法时间复杂度为O(N log log N),适用于多组数据处理,显著优于单次试除法。

2026-11-02 10:44:53 8

原创 GESP等级考试C++5级27-唯一分解定理1

唯一分解定理指出,任一大于1的自然数可唯一分解为质数乘积。通过试除法实现该分解:从2开始依次试除,统计每个质因数的个数,直至n缩小至1。算法复杂度为O(√n),代码中利用循环与条件判断输出结果,如360分解为2³×3²×5¹。最后若n>1,说明其本身为质数,也需输出。

2026-11-02 10:42:17 122

原创 玩游戏学Python14-输入input

本文介绍了Python中input()函数的用法:默认接收用户输入并返回字符串类型;通过int()可转换为整型,float()可转换为浮点型;支持带提示信息的输入。结合游戏实例,演示如何让用户输入背景色和汽车速度,实现交互式控制,增强程序灵活性。

2026-10-28 10:01:31 207

原创 玩游戏学Python13-类型转换及字符串占位符

本文通过Python的pgzero库,实现汽车在屏幕中环绕行驶并实时显示其位置。利用str()函数将整型坐标转换为字符串,结合screen.draw.text()函数显示汽车的(x, y)坐标。进一步采用f-string格式化方法,简洁高效地动态呈现汽车位置,提升游戏可视化效果。代码完整,逻辑清晰,适用于初学者学习条件语句与字符串格式化。

2026-10-28 09:57:46 413

原创 GESP等级考试C++5级26-数组模拟高精度运算6

本文介绍GESP C++5级要求的高精度除法运算,重点实现被除数为高精度、除数为低精度的情况。通过自定义div()函数,将高精度数逆序存储后逐位相除,利用余数进位计算商,并用reverse()逆序商数组,最后去除前导零。主函数中将字符串逆序转为向量,转换除数,调用div()函数求商与余数,最终输出结果。代码完整、逻辑清晰,适用于高精度除法入门学习。

2026-10-22 10:06:55 22

原创 GESP等级考试C++5级25-数组模拟高精度运算5

本文实现高精度乘法,通过自定义mul()函数处理大数相乘。将字符串逆序存入vector<int>,逐位相乘后累加至结果数组,统一进位并去除前导零。主函数读取两个大数字符串,调用mul()计算乘积,逆序输出结果。代码简洁高效,适用于任意长度整数乘法。

2026-10-22 10:04:24 131

原创 GESP等级考试C++5级24-数组模拟高精度运算4

本文通过自定义函数实现高精度减法,将输入的被减数和减数逆向存储于vector中,去除前导0后,利用cmp函数比较大小,决定是否交换a、b。若a < b,调用swap交换并标记结果为负;随后调用sub函数进行逐位减法运算,处理借位,并去除结果前导0。最后输出差值,支持正负数结果,完整实现高精度减法。

2026-10-20 15:19:36 18

原创 GESP等级考试C++5级23-数组模拟高精度运算3

本文介绍了高精度减法运算的实现方法,重点解决负数结果带来的困难。通过自定义比较函数cmp()判断被减数与减数大小,确保被减数始终不小于减数,避免负数结果。随后,利用sub()函数进行逐位相减,处理借位并去除结果中的前导0,最终实现正确、高效的高精度减法运算。

2026-10-20 15:17:41 110

原创 玩游戏学Python12-布尔型与条件语句

本文介绍了Python中的布尔型数据、比较运算符及条件语句,并通过pgzero实现汽车环绕屏幕行驶。利用if语句判断汽车是否超出屏幕右侧,若超出则将其位置重置至左侧,实现无缝环绕效果。代码结合了布尔逻辑与条件控制,展示了程序逻辑在游戏开发中的实际应用。

2026-10-14 10:23:35 422

原创 玩游戏学Python11-算术运算符应用3

赋值运算符“=”用于将值赋予变量,如将2.5赋给car_speed。复合赋值运算符(如+=、-=、*=、/=)结合算术与赋值操作,先计算再赋值,提升代码简洁性。例如a+=1等价于a=a+1。图10和图11展示了其应用,可简化car.right += car_speed的写法。完整代码实现小车移动,使用pgzero库,通过update()函数持续更新位置,使小车在屏幕上运行。

2026-10-14 10:18:23 261

原创 玩游戏学Python10-算术运算符应用2

在《玩游戏学Python》中,通过pgzero库的update()函数每秒调用60次,可实现小车动画。只需在update()中修改汽车Actor的right属性(如car.right += car_speed),即可让小车移动。使用浮点型变量定义速度(如car_speed = 1.5),可精确控制移动速率,使小车平滑加速。相比整数速度,浮点型提升移动流畅度与灵活性。

2026-10-13 10:44:12 285

原创 玩游戏学Python9-算术运算符应用1

在pgzero中,使用screen.draw.text()函数可在draw()函数中显示文本信息。通过设置位置、字体大小(fontsize)和颜色(color)参数,可灵活控制显示效果。将字体属性设为变量,可方便地动态调整显示内容,提升代码可维护性。

2026-10-13 10:41:05 185

原创 玩游戏学Python8-算术运算符2

本文介绍在pgzero中使用算术运算符优化游戏代码。通过HEIGHT/2或HEIGHT//2动态设置汽车纵坐标,实现窗口自适应;利用+和*操作符组合字符串,灵活设置标题(如TITLE='我的第一个pgzero游戏'*2)和图标(如ICON='car'+'.png'),提升代码可维护性与灵活性。完整代码展示了这些运算符的实际应用。

2026-10-12 18:58:30 304

原创 玩游戏学Python7-算术运算符1

Python算术运算符包括+、-、*、/、//、%。整型可使用全部运算符,如+、-、用于数值计算,/返回浮点数,//取整除商,%求余数。字符串仅支持+(连接)和(重复),如"abc"+"def"结果为"abcdef","a"*3得"aaa"。其他算术运算符不可用于字符串与整型混合运算。

2026-10-12 18:54:53 85

原创 玩游戏学Python6-演员Actor

在PyZer0中,Actor用于表示游戏角色,封装了图像显示、位置控制等功能。通过将car.png放入images文件夹,并使用Actor('car', (150, 300))创建汽车对象,可在指定坐标显示车辆。pgzero坐标系原点在左上角,x轴向右,y轴向下。在draw()函数中调用car.draw()即可绘制汽车,完整代码实现了一个简单的游戏界面,汽车位于(150, 300)处。

2026-10-10 10:25:34 460

原创 玩游戏学Python5-函数

本文介绍了函数的基本概念与定义格式,强调函数可重复执行任务以提高代码效率。重点讲解了pgzero库中draw()函数用于绘制游戏窗口并填充背景色,以及update()函数用于循环更新游戏状态。通过实例展示了如何定义和调用函数,并说明draw()和update()由pgzero自动调用,分别负责绘图与状态更新,每秒约60次调用,实现游戏动态效果。

2026-10-10 10:22:57 198

原创 玩游戏学Python4-字符串

本文介绍了Python中字符串的概念及其在pgzero游戏编程中的应用。字符串是用引号括起的字符序列,可通过变量定义。通过定义大写变量TITLE和ICON,可修改游戏窗口标题和图标。标题栏文字由TITLE变量指定,图标需为32×32或64×64的PNG、JPG、GIF格式图片,并与代码同目录。注意变量名必须大写,图片大小需符合要求,否则无法正常显示。

2026-10-09 11:58:28 478

原创 玩游戏学Python3-整型

Python基本数据类型包括整型、浮点型、布尔型和字符串型。整型(int)用于表示整数,可通过变量定义并赋值,如a=1。变量是标识符,绑定对象后可访问其值。在pyzero中,可用整型变量WIDTH和HEIGHT控制窗口大小,如WIDTH=640表示窗口宽640像素。变量可多次赋值,最终值以最后一次为准;且变量名区分大小写,WIDTH与width为不同变量。像素是屏幕最小显示单位,游戏画面由像素排列构成。

2026-10-09 11:56:11 300

原创 玩游戏学Python2-IDLE与pgzero入门

IDLE是Python自带的轻量级IDE,支持交互模式与文件模式。交互模式可即时执行代码,但关闭后内容丢失;文件模式需通过“File→New File”创建,代码可保存并运行(按F5),便于后续调用。pgzero是简化2D游戏开发的框架,核心为pgzrun库,通过import pgzrun和pgzrun.go()启动游戏,实现“零样板代码”的快速开发。

2026-10-08 15:33:40 317

原创 玩游戏学Python1-Python和pgzero库的安装

本文介绍了Python 3.10.6的安装与启动流程,包括勾选“Add Python to PATH”并使用Install Now完成安装,随后通过IDLE打开Python环境。接着详细说明了pgzero库的安装方法:通过cmd命令行使用pip install pgzero -i https://pypi.tuna.tsinghua.edu.cn/simple进行安装,并可通过pip list验证安装结果,适用于初学者快速开展2D游戏开发。

2026-10-08 15:29:47 162

原创 GESP等级考试C++5级22-数组模拟高精度运算2

本文通过数组模拟实现大整数的高精度加法运算。将大整数逆序存入vector<int>,逐位相加并处理进位,使用add()函数完成两数相加。最后去除结果前导零,并逆序输出。代码简洁高效,可处理任意大小整数的加法运算。

2026-10-07 10:23:04 27

原创 GESP等级考试C++5级21-数组模拟高精度运算1

本文介绍C++中高精度大整数运算的实现方法。由于内置类型无法表示超大整数,采用vector逆序存储(低位在前),模拟竖式计算,便于进位处理与for循环操作。通过字符串输入并逆序转存,去除前导零后逆序输出,实现大整数的加减乘除基础运算。

2026-10-07 10:20:53 147

原创 GESP等级考试C++5级20-素数判断法3

线性筛通过维护素数表,确保每个合数仅被其最小质因子标记一次,避免冗余操作。核心在于:若i为素数则加入表;遍历素数表,用i乘各素数标记合数;当i能被当前素数整除时立即break,保证唯一标记。代码中使用long long防溢出,实现严格O(n)复杂度。

2026-10-04 10:54:37 18

原创 GESP等级考试C++5级19-素数判断法2

本文介绍素数筛算法,针对朴素判断法在大范围求素数时效率低的问题,提出埃氏筛(埃拉托斯特尼筛法)。其核心思想是从小到大遍历,每遇素数即标记其所有倍数为合数,剩余未被标记者即为素数。该算法时间复杂度为O(n log log n),接近线性。代码实现中使用布尔数组标记合数,通过循环筛选并收集素数,高效获取1~n内所有素数。

2026-10-04 10:51:49 120

原创 GESP等级考试C++5级18-素数判断法1

素数判断常用朴素算法与优化版本。朴素算法遍历小于n的所有数,判断是否整除,时间复杂度为O(n);优化后只需试到√n,复杂度降为O(√n),效率显著提升。素数定义为大于1且仅能被1和自身整除的自然数,反之为合数。

2026-09-28 10:20:10 21

原创 GESP等级考试C++5级17-辗转相除法

辗转相除法(欧几里得算法)用于求两正整数最大公约数(gcd),基于gcd(a,b) = gcd(b, a mod b),反复迭代直至余数为0,此时被除数即为gcd。可推广至多个数的gcd求解,且gcd与最小公倍数(lcm)满足a×b = gcd×lcm,求lcm时应先除后乘以防溢出。注意处理负数时需取绝对值,避免死循环。

2026-09-28 10:18:16 143

原创 GESP等级考试C++5级15-快慢指针1

快慢指针(龟兔赛跑算法)是单链表中经典技巧,用于高效查找中心结点。慢指针每次前移1步,快指针每次前移2步,当快指针到达末尾时,慢指针恰在链表中间。若结点数为奇数,返回正中心;偶数时返回靠右的中心结点。代码实现简洁,时间复杂度O(n),空间复杂度O(1),适用于链表中位查找等场景。

2026-09-25 16:44:52 313

原创 GESP等级考试C++5级16-快慢指针2

本文介绍使用快慢指针法高效查找链表倒数第i个结点的原理与实现。核心思想:快指针先走i步,随后快慢指针同步前进,当快指针到达末尾时,慢指针即指向倒数第i个结点。代码中通过边界判断确保链表长度足够,避免越界。完整实现包含链表创建与查询,运行结果正确输出目标节点值,时间复杂度为O(n),空间复杂度为O(1)。

2026-09-25 16:44:11 42

原创 GESP等级考试C++5级14-循环链表2

双向循环链表在双向链表基础上实现头尾相连:尾结点的next指向头结点,头结点的pre指向尾结点,形成循环结构。创建时需正确初始化头结点的next和pre为自身,并在插入新结点时更新尾结点与头结点的指针。遍历支持正向(从head→next)和反向(从head→pre)两种方式,反向遍历更简便,可直接通过head的pre获取尾结点。代码实现简洁高效,适用于需要双向循环访问的场景。

2026-09-24 10:30:38 13

原创 GESP等级考试C++5级13-循环链表1

循环链表是将单向链表尾结点与头结点相连形成的环形结构,实现从任意结点出发均可遍历所有结点。其核心在于尾结点的next指向头结点,遍历时以是否回到头结点作为终止条件。代码实现中,空链表时头结点next指向自身,插入新结点后尾结点的next指向头结点。遍历通过判断当前结点是否为头结点来结束,适用于约瑟夫环、轮询调度等环形场景,使代码更简洁直观。

2026-09-24 10:27:57 317

原创 GESP等级考试C++5级12-双向链表的插入及删除

本文介绍了双向链表中删除指定位置结点的原理与实现。通过修改前后结点的指针域,将目标结点从链表中移除,并释放其内存。代码实现包括deleteNode()函数,用于定位并删除第i个结点,确保前驱与后继指针正确更新。运行结果显示成功删除第3个结点,正向遍历输出剩余元素。完整代码涵盖创建、删除与遍历操作,体现了双向链表的灵活管理能力。

2026-09-23 09:29:42 26

原创 GESP等级考试C++5级11-双向链表的插入及删除

本文介绍了在双向链表指定位置插入新结点的原理与实现。通过查找前驱结点p,创建新结点s并更新各结点指针(s→next、s→pre、p→next、p→next→pre),完成插入。代码实现了insert函数,并在main函数中于第3位插入数据100,经正向遍历输出结果验证正确性。完整代码包含双向链表的创建、插入及遍历功能,体现了双向链表插入操作的双向指针维护特性。

2026-09-23 09:27:18 152

原创 GESP等级考试C++5级10-双向链表的访问

双向链表通过next和pre指针实现正向与反向访问。正向遍历从头结点出发,利用next域依次访问;反向遍历则先找到尾结点,再通过pre域逆序输出。代码中分别定义forwardShow和backwardShow函数实现两种遍历方式,完整展示了双向链表的创建与双向遍历过程。

2026-09-17 09:19:58 18

原创 GESP等级考试C++5级9-双向链表的创建

双向链表结点包含数据域data、指向后继的next指针和指向前驱的pre指针。创建过程与单向链表类似,通过输入数据直至-1结束。关键区别在于需设置pre指针:头结点pre置为NULL,新结点p的pre指向当前尾结点r,r的next指向p,实现双向连接。完整代码展示了动态创建与链接过程。

2026-09-17 09:16:22 133

原创 GESP等级考试C++5级8-获取链表的结点数量

本文实现链表结点数量的获取,通过自定义len()函数遍历链表,统计结点总数。代码中定义了链表结构体Node,利用头指针head和尾指针r动态创建链表,输入数据直至遇到-1停止。len()函数从头结点开始逐个访问下一结点,计数直到末尾,返回结点数量。运行结果显示链表长度,完整代码涵盖链表创建与长度计算,逻辑清晰,便于理解与应用。

2026-09-15 09:51:03 10

原创 GESP等级考试C++5级7-删除结点

本文介绍了链表中删除指定位置结点的原理与实现。通过找到第i-1个结点,将其指针指向第i+1个结点,实现删除第i个结点。代码中定义了delete_node()函数,利用指针操作完成结点删除,并在main()函数中调用该函数删除第3个结点,最后通过show()函数输出删除后的链表。运行结果验证了删除操作的正确性。

2026-09-15 09:48:40 113

原创 GESP等级考试C++5级6-查找与修改结点2

根据内容:主要讲用set函数查找并修改链表指定数据结点,给出代码和效果。摘要应简洁。</think>本文介绍了通过set()函数在链表中查找指定数据域x的结点并修改为y的方法,给出了代码实现及运行效果,并附完整示例程序。

2026-09-09 08:54:44 16

原创 GESP等级考试C++5级5-查找与修改结点1

文本主要讲解查找节点包括两种,重点介绍查找指定位置节点的set()函数实现,包括代码、运行效果和完整代码。需要简洁概括。注意字数限制。</think>本文介绍了查找节点的两种方式,重点讲解查找指定位置节点的实现:通过set()函数遍历链表,找到第i个节点并修改其数据域,与插入结点方法类似但循环条件不同。文章包含代码示例、运行效果及完整代码,展示了链表中指定节点数据修改的完整流程。

2026-09-09 08:52:33 137

基于IOAPIC重定位的 键盘监听技术及防御

键盘监听技术会引起个人重要信息的泄露。通过对IOAPIC重定位技术的研究,实现了针对单核系统和多核系统的键盘监听和记录。在Windows Driver Kits7.0.1中编译生成的驱动,能够记录键盘信息,引起重要信息的泄露。通过提出的防御键盘监听的方法能够有效地预防键盘监听。

2017-03-27

Windows文件系统过滤驱动开发教程(第二版)

大约两年以前我在驱动开发网上发表了一组描述如何开发 Windows 文件系统过滤驱动的文章。非常庆幸这些文章能 给大家带来帮助。 原本的文章中我使用了自己编写的代码。我不打算在这里论述代码风格的优劣并发起一场辩论,无可怀疑的是,读者们 大多喜欢看到类似微软范例的代码。为此我把文章中的代码换成微软标准的文件过滤驱动范例 sfilter 的代码。赠于喜欢此 书的读者和驱动开发的后来者们。 网友们帮我整理的原版已经非常流行。为了区别起见,称为第二版。

2017-04-23

基于VS2015套接字完成端口模型源代码

《VS2015实现套接字完成端口模型》文章中提到的套接字完成端口模型源代码。文章地址为https://blog.youkuaiyun.com/hou09tian/article/details/80911809

2018-07-04

基于Java语言的安卓系统编程学习第一部分

基于Java语言的安卓系统程序编程:包括Eclipse环境搭建、项目结构解析、按键、菜单、控件UI、图像按键等。本内容为第一部分。

2017-04-23

ddkwizard_setup_v1.2.0a及ddkward.cmd

VS2008产生及编译驱动的工具。包括ddkwizard_setup_v1.2.0a.exe,ddkbuild_bat和ddkbuild_cmd。

2016-10-23

基于对话框程序的注册码快捷键粘贴功能的实现

程序的注册码的格式一般为“XXXX-XXXX-XXXX-XXXX”,在使用时将注册码输入到多个编辑框控件中,每个编辑框中输入一段。手动输入注册码非常麻烦,而采用快捷键进行粘贴时,只能逐个编辑框进行粘贴,而不能一次性粘贴完毕。 以上功能可以通过编程实现。

2017-04-23

贪吃蛇源代码

Windows控制台的贪吃蛇源代码,基于VS2010,可实现速度控制。

2019-01-16

VS2008编译驱动程序的配置方法

编译驱动程序的常用方法有两种,一种是通过WDK/DDK的COMMAND环境进行编译,另外一种是通过Visual Studio系列软件实现界面编译。通过Visual Studio编译驱动程序需要对其进行相关配置,本文以VS2008和WDK7600为例,讲解了实现编译驱动程序的配置方法。

2016-10-23

Windows7下VS2008维护模式破解工具.rar

VS2008试用版的估计期X天后结束,需要重新输入注册码时。Windows7会将VS2008维护模式中输入注册码的控件隐藏,使用本工具,可以在Windows7下显示VS2008维护模式中的输入注册码的控件,完成VS2008的重新注册!

2019-05-31

filespy源代码

能通过Netware Client32连接到网络,查看所有的用户在使用哪些文件,还可以查看某个用户对文件的权限,以及用户登录的时间等,当网络上要更新某个应用程序时,这个软件可以用来要求正在使用程序的用户退出.

2016-09-25

DirectDraw中文手册

DirectX 编程是现在图形编程特别是游戏编程的热点.而广大的 DirectX 编程爱好者被其帮助文档中的英文所苦,于是民间有不少的爱好者开始自己翻译其手册为中文,然后放在网上让大家共享.然而,由于缺乏组织,很多人都在做着重复的工作,结果浪费了很多的时间和精力.如果把这些自发的力量组织起来,无疑是件很有意义的事.而实现跨地域的组织工作,正是 Internet 的特长.因此我们决定在国际互联网上建立一个站点来专门进行 DirectX 手册的翻译组织工作,然后把翻译过的作品放在我们的主页上让每一个需要的人都可以得到.

2017-01-31

Windows Graphics Programming Win32 Gdi And Directdraw.chm

This book is about Windows graphics programming using Win32 GDI API, with an introduction to DirectDraw, and an even more brief introduction to Direct3D Immediate Mode. It covers common features implemented on all Win32 platforms, pure 32-bit features implemented on Windows NT/2000 only, and the most recent additions to GDI for Windows 2000 and Windows 98. For example, alpha blending, transparent bit blting, gradient fill, right-to-left reading order, layered window, and sending JPEG/PNG images to printer are fully covered.

2017-01-31

黑客调试技术解密pdf

本书是帮助应用程序员和系统程序员理解调试过程的指南,揭示了各种调试器的实用使用技巧,说明了如何操作调试器以及如何客服障碍和修复调试器,介绍了黑客利用调试器和反汇编器来寻找程序弱点和实施攻击的方法

2016-09-20

空空如也

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

TA关注的人

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