《算法设计与分析》复习笔记 计算复杂度 T(n)∈O(f(n)) ⟺ limn→∞T(n)f(n)≤c ⟺ ∀n≥n0 T(n)≤f(n)O(f(n))+O(g(n))=O(max{f(n),g(n)})O(f(n))+O(g(n))=O(f(n)+g(n))O(f(n)∗g(n))=O(f(n)∗g(n))O(cf(n))=O(f(n))T(n)\in O(f(n)) \iff \lim_{n\rarr \i 2024-12-25 算法 #笔记 #算法
《数值分析》复习笔记 一、绪论 数值计算算法设计的基本原则 要有数值稳定性,能够控制舍入误差的传播; 防止较小的数加到较大的数; 避免两个相近的近似值相减; 除法运算时,要避免除数的绝对值远远小于被除数的绝对值。 误差、有效数字 绝对误差:e=x∗−xe=x^*-xe=x∗−x,精确值减去近似值; 相对误差:er=ex=x∗−xx∗e_r = \frac{e}{x}=\frac{x^*-x}{x^*}er 2024-12-15 数学 #数学 #笔记
SpringBoot依赖注入以及相关注解 近期的一个项目中需要搭建一个后端,根据ChatGPT之神的指引,决定使用开源、简洁的后端框架Spring Boot。选这个框架的另一个原因是《服务计算基础》这门课中接触了一下Apache Dubbo、Spring Boot和Apache Axis这几个后端的开发方式,发现还是使用Spring Boot开发一个REST接口最简单轻量,毕竟不是专门要走后端方向,最简单的学习成本才是最重要的。 依赖 2024-12-01 后端 #后端 #开发
thinking_of_encrypt_design_model 前段时间接到一个实现可搜索加密的任务,用着顺其自然的设计模式完成了代码的编写。但是今天回头看,感觉还是有诸多问题,写一篇博客记录加密算法开发的心路历程。 功能实现 该算法是一种代理重加密的公钥加密算法,主要用于用户之间的数据共享。首先用户可以将文件用私钥加密后上传到云端,并且该文件会附带关键词,其他用户可以使用该关键词检索到该文件,并向文件拥有者申请授权。该算法需要实现的关键接口函数如下: S 2024-11-27 经验心得 #开发 #设计模式
抽象代数基础之环、域 顺着上篇博客的内容,本篇博客继续学习抽象代数。内容主要涉及一些比较基础的关于交换环、域的定理。 基本性质 定义:交换环是指有加法和乘法两种二元运算的集合R,满足: R在加法下是阿贝尔群; 乘法运算具有交换性; 乘法运算具有结合性; 乘法运算存在幺元1; 分配性:对每个a,b,c∈R,a(b+c)=ab+aca,b,c\in R, a(b+c)=ab+aca,b,c∈R,a(b+c)=ab+ac 2024-11-26 数学 #密码学 #抽象代数
抽象代数之群论基础 为了更好地研究密码学,本着“磨刀不误砍柴工”的想法,对本科时学习的《离散数学》进行一个复习。不一样的是,这次直接对抽象代数(特别是其中的群论、环论、域论)进行再次探索。参考书目为Joseph J. Rotman的《Advanced Modern Algebra》以及丘维声的《抽象代数基础》。对于我认为重要的定理,我会记录下来并附加上主观感受,并不会给上详细证明。 这篇博客先主要复习群论,其余之后再 2024-11-19 数学 #数学 #抽象代数
约瑟夫问题递推解以及非递推解推导 约瑟夫问题 约瑟夫斯置换是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又被称为约瑟夫环。 人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,处刑下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一方向跳过相同数量的人,直到只剩下一个人,并被释放。 问题即,给定人数、起点、方向和要跳过的数字,选择初始圆圈中的 2024-11-02 算法 #算法
《服务计算基础》作业1 《服务计算基础》这门课质量是很高,但是课程作业也可以说是非常折磨人。作业里要求编程的内容并不多,但是每个实验都需要配置环境,非常的麻烦。所以把这个作业的实验报告稍加修改,作为一篇博客发表,希望可以帮助到后来的人。 服务计算基础 Homework1 作业1: 服务开发和调用 12345678910111213>Class person>{String name;int ag 2024-10-29 后端 #后端
单元测试与测试驱动开发 在学着做lept_json这个项目时,作者在教程中介绍了单元测试的概念,并使用测试驱动开发(Test Driven Development)的方法来循序渐进地完善程序的功能。这篇博客就简单地展开讲一下单元测试和测试驱动开发,并介绍一下在Java中如何使用JUnit库来对代码进行单元测试。 单元测试 单元测试其实挺好理解的,平时在写代码时,有经验的程序员经常会将不同的功能拆分成函数,这样便于对每个 2024-10-19 经验心得 #开发 #LeptJson #测试
【长期更新】LeetCode刷题笔记 自从上了大学,高中的算法竞赛的内容就逐渐地忘记了,到现在已经快退化到平均水平了。上了研也应该重新收拾一下,开始准备实习、找工作了。本篇博客长期更新,记录算法题的做题思路,只记录思路,不是特殊情况不记录代码。 LeetCode 25. K个一组翻转链表 题目链接 题面 给你一个链表,要求每k个链表为一组,将它们翻转。当剩余的链表不足k个时,不做任何操作。 12输入:head = [1,2,3, 2024-10-15 算法 #算法 #LeetCode