标签: 课程作业

19 篇文章

thumbnail
算法设计与分析:要点总结-1
算法概述 算法的5大特性 确定性:算法的每一步骤必须有明确的定义,无二义性。即在相同输入下,每次执行都应得到相同的结果。 能行性:算法的每一步都必须是可实现的,即在有限时间内能用有限资源完成。 输入:算法可以有零个或多个输入,输入是算法处理的初始数据。 输出:算法必须有一个或多个输出,输出是算法处理的结果。 有穷性/有限性:算法必须在执行有限步骤后…
thumbnail
IOC-Exercise
严格地说,这个不算IOC,详见:IOC? IOC与DI?。 一个IOC(控制反转)和DI(依赖注入)的练习程序,实际上和Highway-Toll-Framework的实现基本类似。 \---IOC-Exercise Agent.java Person.java Vehicle.java VehicleType.java Agent.java 提供f…
thumbnail
E2_AES
算法主要原理 算法流程如下: 算法步骤 AES算法是一种对称分组密码算法,采用代换-置换网络(SPN)结构,通过多轮迭代的加密过程对数据进行混淆和扩散,确保其安全性。该算法将明文分成固定长度的128位数据块(实际上分组长度也有128位、192位或256位三种选择),并支持128位、192位或256位的密钥,分别对应10轮、12轮或14轮的加密轮次。…
thumbnail
E1_Vigenere
算法主要原理 加密公式:C = (P + K)%26 C:密文 P:原文 K:第几套加密方式 解密公式:P = (C - K)%26 C:密文 P:原文 K:第几套加密方式 如果P<0,P+26取得正序 简单来说,Vigenere密码实际上就是分组的凯撒密码。而分组的方法就是重复密钥,密钥相同的明文为同一组。每一组都可以看作是由不同的密钥所加…
thumbnail
Highway-Toll-Framework
一个高速收费站框架,新增车辆类型(包括是真的新增车辆类型或者同一类型车辆叫法不同)不用修改原有代码,只需要在类上加注解(或注解配合properties配置文件)即可。 \---highway | Main.java | MainV2.java | MainV3.java | MainV4.java | +---annotation | Vehicl…
thumbnail
Three-terminal-communication
一个socket应用程序,有服务端、消费端和充值端。不同端通过对象处理流用一个MyTransaction类来进行信息传输。服务端监听端口,并开一个新线程对发来的信息执行相应操作。消费端向服务端发送消费请求,充值端向服务端发送充值请求。 \---v2 ConsumeClient.java MyTransaction.java RechargeClie…
thumbnail
软件工程课堂讨论二
计算器实现 class Calculator: def __init__(self): self.queue = [] # 用于存储输入的计算表达式 def press_key(self, key): if self.is_valid_key(key): if key == '=': result = self.calculate(…
thumbnail
软件工程课堂讨论一
从运行状态到阻塞状态有等待锁的情况吗? 当一个线程试图获取一个锁(如 synchronized 块或 ReentrantLock),如果该锁已经被其他线程持有,当前线程无法立即获取锁时,就会从运行状态(Running)转换为阻塞状态(Blocked),直到锁被释放。 文章最后部分有两个讨论: 获取到锁的线程为什么不直接执行到结束,这样就不会占用锁了…
thumbnail
当AI成熟之后,老板会选择AI还是真人?
自ChatGPT在2022年11月上线后,一路开挂,5天时间便突破百万用户,仅2个月时间月活用户就突破1亿,成为史上增速最快的消费级应用,远超TikTok、Facebook、Google等全球应用。也因此,ChatGPT掀起了一场全民AI热潮。 在当前科技迅猛发展的背景下,各种AI工具如雨后春笋般涌现,并迅速渗透到各行各业。从ChatGPT、Mid…