算法概述 算法的5大特性 确定性:算法的每一步骤必须有明确的定义,无二义性。即在相同输入下,每次执行都应得到相同的结果。 能行性:算法的每一步都必须是可实现的,即在有限时间内能用有限资源完成。 输入:算法可以有零个或多个输入,输入是算法处理的初始数据。 输出:算法必须有一个或多个输出,输出是算法处理的结果。 有穷性/有限性:算法必须在执行有限步骤后…
算法主要原理 加密公式:C = (P + K)%26 C:密文 P:原文 K:第几套加密方式 解密公式:P = (C - K)%26 C:密文 P:原文 K:第几套加密方式 如果P<0,P+26取得正序 简单来说,Vigenere密码实际上就是分组的凯撒密码。而分组的方法就是重复密钥,密钥相同的明文为同一组。每一组都可以看作是由不同的密钥所加…
一个高速收费站框架,新增车辆类型(包括是真的新增车辆类型或者同一类型车辆叫法不同)不用修改原有代码,只需要在类上加注解(或注解配合properties配置文件)即可。 \---highway | Main.java | MainV2.java | MainV3.java | MainV4.java | +---annotation | Vehicl…
一个socket应用程序,有服务端、消费端和充值端。不同端通过对象处理流用一个MyTransaction类来进行信息传输。服务端监听端口,并开一个新线程对发来的信息执行相应操作。消费端向服务端发送消费请求,充值端向服务端发送充值请求。 \---v2 ConsumeClient.java MyTransaction.java RechargeClie…
如何谋划分类与标签这件事情可谓是一个大难题,因为一些文章不可能是被计划好写出来的,更多的是像灵光一现,我想要了解这个才写的,因此我有了重新规划标签和分类的想法。 基本原则 尽量遵循以下原则: 分类(Category):是博客的“目录结构”,用于对文章进行宏观划分,每篇文章一般只属于一个主要分类。 标签(Tag):是文章的“关键词”,用于对内容进行细…
成绩计算器这个小项目一开始的功能特别简陋,并且我也没把它当成一个项目来做,本来只是写来方便计算我自己绩点的小工具。写完后我想着有几个好友也有计算绩点的需求,他们还是使用excel的模板来计算的,在我看来会有些不方便,所以就把这个打包出来分享给了他们。分享给他们后,有人给我提了一些修改建议,我想既然如此就把这个变成一个小小的项目吧,熟练一下我使用gi…
计算器实现 class Calculator: def __init__(self): self.queue = [] # 用于存储输入的计算表达式 def press_key(self, key): if self.is_valid_key(key): if key == '=': result = self.calculate(…
从运行状态到阻塞状态有等待锁的情况吗? 当一个线程试图获取一个锁(如 synchronized 块或 ReentrantLock),如果该锁已经被其他线程持有,当前线程无法立即获取锁时,就会从运行状态(Running)转换为阻塞状态(Blocked),直到锁被释放。 文章最后部分有两个讨论: 获取到锁的线程为什么不直接执行到结束,这样就不会占用锁了…
自ChatGPT在2022年11月上线后,一路开挂,5天时间便突破百万用户,仅2个月时间月活用户就突破1亿,成为史上增速最快的消费级应用,远超TikTok、Facebook、Google等全球应用。也因此,ChatGPT掀起了一场全民AI热潮。 在当前科技迅猛发展的背景下,各种AI工具如雨后春笋般涌现,并迅速渗透到各行各业。从ChatGPT、Mid…