区块链技术
前言 近十年来,互联网领域出现了相当多的名词概念,如 Web3、元宇宙等。这些新产生的概念大多数并没有一个相对权威的、精准的定义,与其称它们为新的技术概念,倒不如用“愿景”一词来描述它们显得更为准确。以 Web3 为例,在各式各样的定义当中,所表达出来的实际上是一种对去中心化网络的期望。 用户的个人信息、生产的内容、所能获取得到的信息不再依托于某个中心平台进行存储、分发、授权,每一个人都自由地相互交换信息,没有任何一个垄断平台有权力阻断这个过程。很显然,这损害了当下几乎所有平台内容提供商的利益 ...
阅读更多
进程调度器
前言 一直以来操作系统都对我有一种十分特别的吸引力,初中课堂上就和同桌偷偷拿着草稿纸幻想一个替代Windows的“Doordows”操作系统应该长什么样、有什么功能,现在看来当时对操作系统的认识不过停留在图形用户界面(谁能想到现在图形用户界面成了我最讨厌的东西之一——写起来太烦了)。随着在专业领域上的认识逐步深入,这种吸引力从界面转移到了它本身的实现复杂性之上。得益于当下开源运动的盛行,即使只是普通学生的我也能亲眼读到工业级操作系统的源代码,从各种博主的解读中窥探到那些我们熟知的数据结构和算法 ...
阅读更多
线段树及主席树
CF438D The Child and Sequence At the children’s day, the child came to Picks’s house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite sequence of Picks. Fortunately, Picks remembers h ...
阅读更多
文本文件编辑器
前言 C语言课程设计有一道实现一个文本文件编辑器的题目,本以为是个小程序,了解之后才发现入了大坑。做一个文本编辑器显然是一个重复造轮子的行为,更何况是一个命令行文本编辑器,因而网上能够找到的教程及资源十分有限。用5天时间肝完了这一课设题目,趁这么一个机会,为中文网贡献一份简易文本编辑器教程。 最终实现效果:一个类似于Vim界面的简易跨平台文本编辑器。 项目源码已上传至Github。 以下内容按照实验报告要求撰写。 实验内容 实现一个具有以下功能的文本文件编辑器: 能够打开文本文件、保存文 ...
阅读更多
快速幂+取模
前言 从今天开始好好学数学orz 目录 快速幂运算 取模运算 大整数取模 大整数乘法取模 幂取模 快速幂运算 如果我们要计算ana^nan的值,正常情况下需要将aaa乘以自身nnn次,而这种暴力的计算方法需要花费O(n)O(n)O(n)的时间。利用二分思想,快速幂运算算法能够将这种幂运算的时间复杂度降低至O(log⁡n)O(\log n)O(logn),从而大大提高计算速率。 对于ana^nan,如果我们采用a×a×⋯×a⏟n个a\underbrace{a\times a\t ...
阅读更多
排序算法
前言 排序算法大概是学习编程最早接触到的一类算法了,一段时间以来我一直依赖C++提供的标准库函数sort进行排序,基本没有手写过排序算法。刚好C语言课提到这个,干脆就总结并手写一下各大排序算法吧。 本文将会分别从算法原理、实现方法、时间空间复杂度分析和稳定性分析四个方面讨论各大排序算法。另外,我们默认将序列从小到大进行排序。 相关概念: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂 ...
阅读更多
自建个人博客
前言 摸鱼的一个周末,总算是把自己的博客给装饰好了,本来较为模糊的一些Web概念也逐渐在捣鼓中有了一些浅显的认识。于是决定写一个新手向的个人博客建立教程,为后来者提供一些自己的经验。 本文会从基础概念及命令行操作的介绍开始,旨在为纯小白提供最友好的教程。 通过本教程,你将会收获: 了解与网站相关的基本概念 学会基本的命令行操作 一个崭新的个人博客网站 基本概念 网站 当我们在浏览器输入网址并回车后,很快就会看到页面上显示出了内容。在这个过程中,有一些我们平常没有思考过的地方:网址是什 ...
阅读更多