关于g++/gdp的安装和vscode配置
关于g++/gdp的安装和vscode配置
1. 先下载mingw
MinGW -
Minimalist GNU for Windows - Browse Files at SourceForge.net
下载完之后打开,一直continue直到这个下载完成。
下载完成之后点击continue进入如下界面。在Basic
Setup中选择gcc/g++,在All Packages中选择gdb。
在installation中选择Apply change开始下载。
下载完成之后在MinGW的bin文件夹中确定g++.exe, gcc.exe,
gdb.exe三个文件的存在。
编辑系统环境变量,在path中加入*/MinGW/bin。打开cmd,测试能否运行g++,
gdb。
2. 配置VSCode
打开一个文件夹,新建文件写一个helloword.cpp。
显示安装推荐
也可以直接在扩展中安装。这里我在扩展中安装。
安装完成之后回到helloworld.cpp。尝试直接运行debug。
可以成功运行。
...
Amplification 放大器
Amplification 放大器
概述
放大器
电子系统中,传感器或信号源输出电平非常微弱。为了满足后续电路(如滤波、模数转换、功率驱动等)的动态范围与信噪比要求,需在信号链中加入电压放大环节。
理想运算放大器在设计上追求以下性能指标:
开环电压增益无限大(\(\displaystyle
A_0\to\infty\)),以保证微小输入差值也能被放大;
输入阻抗无限大(\(\displaystyle
Z_\text{in}\to\infty\)),避免对信号源造成负载;
输出阻抗为零(\(\displaystyle
Z_\text{out}\to0\)),确保对后级负载的电压传输;
带宽宽广,覆盖从直流到几十兆赫甚至更高频段。
在评价放大器性能时,通常关注以下几个指标:
增益 Gain
输入与输出阻抗 impédances d’entrée et de sortie
带宽 bande passante
噪声因子及噪声温度 facteur et la température de bruit
失真 distorsions
效率 ...
GAN,VAE和流模型的原理(以流模型为主)
GAN,VAE和流模型的原理(以流模型为主)
2025/02/26 以便自己查看
生成式神经网络
生成式神经网络是一种以生成与被提供的数据集相似的新数据为目的的人工神经网络。它试图构建一种模型分布\(p_{model}\),使其尽可能接近原始数据分布\(p_{data}\)。由于不依赖其他标签数据,生成式模型往往是无监督学习。
特别的,生成式模型也可以预测在\(y\)条件下\(x\)的分布\(P(x|y)\),比如要求一个用于生成水果图像的模型生成一个苹果:\(P(\text{水果}|\text{苹果})\)。
对于数据的集合\(\mathbf{X}\),生成式神经网络理想的损失函数是模型分布和数据分布之间的似然函数:
\[
\begin{align} \mathcal{L}(model(\theta) \mid \mathbf{X})= \prod_{x
\in \mathbf{X}} p_{model(\theta)}(x)\end{align}
\]
似然函数是模型可调节参数\(\theta\)的函数,用于衡量模型分布对数据分布的拟合程度,所 ...
J05 同步
J05 同步
一、进程和线程基础
进程
由操作系统创建,用于运行程序,可使多个进程以“假实时”并行方式运行。
选择器负责将处理器资源分配给进程。
通过共享页面完成进程之间通信。
进程的状态:
状态(États):
Actif(活动状态):表示进程正在CPU上运行。
Prêt(就绪状态):进程已准备好运行,但正在等待CPU的分配。
Bloqué(阻塞状态):进程由于等待某些事件(例如I/O操作或资源可用性)而无法运行。
状态转换事件:
Création(创建):一个新的进程被创建,通常是由操作系统或一个已有的进程创建的。
Suppression(删除):进程被终止并从系统中移除。
Fin du
quantum(时间片结束):进程的时间片用完,操作系统将CPU分配给其他进程。
Demande d’entrée/sortie ou de
ressource(请求输入/输出或资源):进程请求某些资源或I/O操作,进入阻塞状态。
Fin d’entrée/sortie ou ressource
disponible(输入/ ...
J04 测试
J04 测试
验证与确认 (Vérification
et Validation)
验证 (Vérification)
确认我们是否正确地制作了产品。
软件是否符合其规格说明?
确认 (Validation)
确认我们是否制作了正确的产品。
软件是否满足用户需求?
验证方法 (Méthodes de
vérification)
检查 (Inspection)
静态测试,包括规格说明和代码的审查。
测试 (Test)
动态测试,通过输入数据运行代码。
符号验证 (Vérification symbolique)
抽象执行,生成输入数据或验证特定点(如代码覆盖、计算精度等)。
形式验证 (Vérification formelle)
基于证明或模型检测(Model Checking)。
为什么要测试?(Pourquoi tester
?)
研究表明,设计阶段修复错误的成本与生产阶段相比,成本比为
1:100。
在开发 NASA 卫星嵌入式软件时,测试占开发预算的
...
J03.5 质量 qualité
J03.5 质量 qualité
SOLID
单一职责原则(SRP: Single Responsibility
Principle)
开闭原则(OCP: Open/Closed Principle)
里氏替换原则(LSP: Liskov Substitution
Principle)
接口隔离原则(ISP: Interface Segregation
Principle)
依赖反转原则(DIP: Dependency Inversion
Principle)
SRP:单一职责原则
一个类(一个函数、一个方法)应该只承担一个职责。
每个职责的变更会引发类的修改(规范的变动)。
一个承担多重职责的类会导致职责之间的耦合。
OCP:开闭原则(Open/Closed Principle)
一个模块(类、包)应对扩展开放,对修改关闭:
对扩展开放:模块可以通过新行为扩展。
对修改关闭:这些扩展不需要修改已有代码。
使用面向对象机制:组合、继承、抽象类、接口等。
根据以下需求识别开闭点:
客户的可扩展性需求。
...
J03 Java基础 04:补充
J03 Java基础 04:补充
Java修饰符
访问控制修饰符
访问控制修饰符用于控制类、方法、变量等的访问权限。
修饰符
同类
同包
子类
其他包
private
✅
❌
❌
❌
无修饰符
✅
✅
❌
❌
protected
✅
✅
✅
❌
public
✅
✅
✅
✅
类级别修饰符
final
表示类不能被继承:
12final class Example {}
abstract
表示类是抽象类,不能实例化,必须由子类实现:
1234abstract class Example { abstract void display();}
strictfp
用于限制浮点运算精度,确保结果一致(跨平台):
12strictfp class Example {}
方法级别修饰符
final
方法不能被重写:
1234class Example { ...
J03 Java基础 03:集合框架
J03 Java基础 03:集合框架
集合框架
Java 集合框架(Java Collections Framework, JCF) 是 Java
提供的一套标准化 API,用于处理集合(Collection)类的数据结构。
Java 集合框架包含以下几个核心部分:
接口(Interfaces):定义了集合的基本行为规范,即上图黄色部分。
实现类(Implementations):为接口提供具体实现,即上图蓝色和紫色部分。
工具类(Utility
Classes):提供对集合的操作支持,如排序、查找等。
在使用时,接口是不能直接实现的,需要使用具体的类实现。
collection接口
collection接口是所有集合类的跟接口,可以使用集合类的6种方式实现。
例如学生成绩储存的例子:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546public class StudentScoreManager { pub ...
J03 Java基础 02:面向对象
J03 Java基础 02:面向对象
Java类
类是一组对象的描述,一个对象是其类的示例。
类和对象和引用
一个简单的类可以如下定义:
1234public class Complex{ public double real; public double imag;}
这个类用实部和虚部两个属性描述了复数。
我们可以使用new
来实现一个对象:complex c = new Complex()
。由于我们没有在类中定义构造方法,程序会按照默认的构造方法,以默认值初始黄两个双精度浮点数。
在上一条语句中,c
是对象的一个引用而不是对象本身。可以通过对象的引用访问public
属性。
类的方法
接下来,我们可以给类增加一些方法。基于面向对象的思想,我们不应该直接访问类的属性,类应该提供一些接口,来帮助我们获取和设置属性。
123456789101112131415161718192021222324public class Complex { private double real; // 实部 priv ...
J03 Java基础 01:基本语法
J03 Java基础 01:基本语法
概述
Java由Sun
Microsystems于1995年开发(后被Oracle收购),语法源自C++,最初设计用于交互式电视,随后用于在浏览器中执行代码,是最广泛使用的编程语言之一。
不同语言的工作方式
Python
12345def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1)
解释器通过读取和执行代码,将指令翻译为二进制代码,并请求处理器执行相应的操作。
编译语言(C, C++)
123456int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }
源代码通过编译器翻译为等效的二进制代码,并直接在处理器上执行。
虚拟机语言(Java)
12345678public class Math { ...