自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 异构动作空间

异构动作空间指的是在强化学习(RL)中,代理可以选择执行的动作类型不是单一类型的;即同一个代理可以在不同状态下选择不同类型的动作。这与传统的 RL 多是标准动作空间——通常是固定类型或连续、离散型的动作不同。

2025-10-10 13:37:49 214

原创 c++的‘-1/-0’用法

在整数运算中,-0和0是等价的,-1的用法具有通用意义。在浮点运算中,-0.0和0.0是有符号区别的,而-1.0则正常表示浮点的负数。在应用程序的上下文中,理解这些值如何用在条件、错误监控、数值计算中,对跨平台和性能优化至关重要。

2025-10-10 13:37:40 367

原创 c/c++字符串比较

在 C++ 中,有多种方法可以比较两个字符串,具体选用哪种方法取决于你使用的字符串类型和比较需求。

2025-10-10 13:37:29 268

原创 AFL(American Fuzzy Lop)

用户可以在使用 AFL 时编写自己的突变器来处理测试输入,AFL 提供了与用户自定义突变器对接的方法。通过适当设计的突变策略,用户可以探索特定类型的漏洞。AFL 的突变函数是其模糊测试过程的核心,理解和灵活应用这些策略可以显著提升测试的有效性。通过开发定制的突变器,用户可以根据具体目标和应用场景调整测试过程,从而更有效地发现潜在的安全问题。采用复杂高效的突变策略,就能充分利用 AFL 的能力,并快速识别软件中的缺陷。

2025-10-08 16:40:15 394

原创 强化学习(Reinforcement Learning,RL)

强化学习(Reinforcement Learning,RL)是机器学习的一个子领域,它专注于如何通过与环境的互动来学习最优策略,以实现特定目标。在 RL 中,代理(或称为智能体)通过试错来达到好的行为表现。RL 方法中的关键元素包括状态、动作、奖励和策略。

2025-10-08 16:39:14 1863

原创 随机网络蒸馏(Random Network Distillation, RND)

随机网络蒸馏(Random Network Distillation, RND)是一种用于强化学习(Reinforcement Learning, RL)中的探索策略的方法。RND 是一种内在奖励机制,通过引入探险的激励来帮助代理更有效地探索环境。它特别在稀疏奖励环境或奖励信号罕见的问题中表现良好。

2025-10-08 16:38:15 340

原创 Sobol 序列

Sobol 序列是一种低差异序列(Low-discrepancy Sequence),用来生成准随机(Quasi-random)数。与真正的随机数不同,准随机数用于提供更加均匀分布的样本集,以提高数值积分和统计模拟的效率和准确性。Sobol 序列被广泛应用于高维空间中的数值方法,如蒙特卡洛积分、金融工程中的期权定价等。

2025-10-08 16:37:21 527

原创 Multi-Metric Integration(多指标集成)

多指标集成(Multi-Metric Integration)

2025-10-08 16:36:05 534

原创 Valgrind

Valgrind 是一个用于内存调试、内存泄漏检测和性能分析的强大工具,特别流行于 Unix 和 Linux 平台。它主要用于检测 C 和 C++ 程序中的内存问题,但也支持其他语言的工具。以下是 Valgrind 的使用指南,帮助你有效地检测程序中的问题,提高程序的可靠性和性能。

2025-09-24 20:13:15 451

原创 C++避免内存泄露方法

内存泄漏(Memory Leak)是指程序中动态分配的内存未被释放,导致它们在程序的生命周期中持续占用无法被重用的内存。内存泄漏不仅影响程序的效率,还可能导致程序崩溃。在 C++ 编程中,防止内存泄漏尤为重要,特别是在处理复杂的动态内存分配时。

2025-09-24 20:05:10 462

原创 VSCODE使用指南

快捷键定制在文件 -> 首选项 -> 键绑定中,自定义快捷键以满足个人习惯。插件开发VSCode 支持通过 API 开发自定义插件,可满足更加专业和个性化的开发需求。通过有效使用 VSCode的各种功能和集成工具,可以极大地提高开发效率和项目管理能力。VSCode是一个强大的编辑器,以其广泛的社区支持和丰富的生态系统,在开源和企业开发环境中都有广泛的应用。Visual Studio Code (VSCode) 提供了大量的命令,可以通过命令面板轻松访问和执行。

2025-09-24 20:01:35 1479

原创 API/DPI

API 指的是应用程序接口,是一个软件之间相互交互的定义。API 提供了一组例程、协议和工具,用于构建软件和应用程序。通过 API,开发者可以使用一组明确的方法和数据进行编程,而无需了解软件底层实现的细节。API 和 DPI 在计算和图像处理领域彼此独立,涵盖了不同的领域和应用场景。API 涉及软件工程和系统整合,而 DPI 侧重于图像质量和设备分辨率。DPI 是指每英寸点数,通常用于描述打印机以及扫描仪等设备的分辨率。也用于描述显示器或图像的分辨率,但在数码屏幕上更常用的术语是 PPI(每英寸像素)。

2025-09-19 08:18:54 276

原创 动态库函数调用

在 C++ 中,动态库(DLL 在 Windows 或 Shared Library 在 Unix/Linux)是一种将代码封装成可重用模块的方式。程序可以在运行时加载这些库,并调用其中的功能。以下是一个简单的步骤示例,展示如何在 C++ 中创建和使用动态库。假设我们要创建一个简单的动态库,其中包含一个用于求和的函数。1. 创建动态库代码首先,我们需要创建一个动态库项目并实现我们的函数。以下是一个简单的示例代码:MathLibrary.h(头文件)2. 编译动态库Windows:使用 编译器命令:

2025-09-19 08:18:41 242

原创 软件开发经典设计模式:结构型-桥接模式

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立变化。通过为抽象部分和实现部分分别定义接口和子类,桥接模式实现了二者之间的解耦,增强了系统的可扩展性和灵活性。桥接模式的核心思想是使用组合而不是继承,将两个功能维度分离,使它们可以独立地扩展和变化。抽象和实现可以独立演化,这使代码项目更易于维护和扩展。抽象(Abstraction):精确抽象(Refined Abstraction):实现接口(Implementor):具体实现(Concrete Im

2025-09-18 09:25:35 432

原创 软件开发经典设计模式:结构型-装饰者模式

装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将行为附加到单个对象上,而不会影响同一类的其他对象。装饰者模式为解决对象功能扩展提供了一种灵活的替代继承的方法。

2025-09-18 09:25:26 348

原创 软件开发经典设计模式:结构型-适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许你将不兼容的接口转换为可兼容的接口。这使得之前无法一起工作的类可以通过适配器合作。适配器模式通常用作类之间接口的桥梁,是解决接口不兼容问题的手段。

2025-09-18 09:04:41 292

原创 软件开发经典设计模式:结构型-门面模式/组合模式/享元模式

门面模式:门面模式(Facade Pattern)是一种结构型设计模式,旨在为一个复杂子系统提供一个更简单、更统一的接口。门面模式通过引入一个高层接口,简化了子系统的使用和简化了交互过程,使得客户端只需与门面交互而不需要关心子系统内部的复杂实现。

2025-09-18 09:04:28 548

原创 软件开发经典设计模式:行为型

观察者模式观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的关系,让一个对象(被观察者)状态发生改变时,其所有依赖者(观察者)都会收到通知并自动更新。这种模式用于当一个对象需要自动通知其他对象发生变化时,实现事件处理机制。观察者模式的核心思想是将一个系统中的多个对象彼此解耦,使对象之间的通信在遵循发布-订阅模式的基础上更加灵活。当被观察对象的状态发生变化时,所有订阅它的观察者都会得到通知并做相应的更新,这确保了数据的一致性。被观察者(Subject):观察者(Obser

2025-09-18 09:02:39 1069

原创 软件开发经典设计模式:结构型-代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,它通过创建代理类来控制对原对象的访问。代理模式为某个对象控制访问权,并提供一个与原对象相同的接口。这种模式可以简化或延迟对象的访问,并在某些情况下增加额外的职责。

2025-09-17 20:07:25 842

原创 软件开发经典设计模式:创建型-原型模式

原型模式(Prototype Pattern)是一种创建型设计模式,允许你通过复制现有对象来创建新的对象,而不是从头开始构建。这种模式主要通过提供一个用于复制对象的接口,定义生成对象的类型,并通过实例化对象的原型来复制它们,来实现对象的快速创建。原型模式使用对象克隆技术,提供了更为灵活的对象创建方式,特别适用于需要创建多个相似对象的场合。:客户端通过调用克隆方法来请求新的对象。:实现一个克隆方法,该方法通过复制已有的实例来返回一个新的对象。:使用原型模式克隆出不同对象,相比创建复杂的类层次,更为简洁有效。

2025-09-17 20:05:58 169

原创 软件开发经典设计模式:创建型-建造者模式

核心思想:建造者模式将对象的构建过程与最终表示分离,使同样的构建过程可以创建不同的表示。它通常实现为一个构建器类,提供一系列的方法用于配置对象的不同部分,然后通过一个“指导者”(Director)类协调这些方法的调用顺序,以构建最终对象。建造者模式(Builder Pattern)是一种创建型设计模式,旨在分步骤创建一个复杂对象,并可以通过不同的配置来获得不同表现的对象。建造者模式非常适合创建复杂对象时使用,特别是当对象的某些部分是可选的或变量初始化过程较复杂的情况下。:最终创建的复杂对象。

2025-09-17 20:03:56 235

原创 软件开发经典设计模式:创建型-工厂模式

工厂模式(工厂方法和抽象工厂))是创建型设计模式之一,旨在提供创建对象的接口,而无需显式指定创建对象的类。这种模式在面向对象编程中非常有用,特别是在需要处理不同类型但实现相似接口的对象时。工厂模式的核心思想是使用工厂类或方法来封装对象创建的过程,有助于提高代码的灵活性和可维护性。(不是标准的 GoF 设计模式):用于创建对象的简单工厂类,用一个方法根据输入的参数返回特定类型的实例。:每个对象都有一个工厂方法接口,通过子类实现不同产品的创建,各子类决定实例化哪种产品。

2025-09-17 20:01:43 139

原创 软件开发经典设计模式:创建型-单例模式

单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。:对于多线程环境,使用 C++11 的局部静态变量,可以实现线程安全的懒汉式单例,以保证只有一个实例被创建。:类负责创建自己的实例,并确保这个类只有一个实例存在。:单例模式延迟实例化,即在第一次需要该类的实例时进行创建(懒汉式),可以优化内存使用。:单例类提供了一个静态方法或函数,让外部代码可以访问类的唯一实例,通常通过一个叫做。:确保线程安全,尤其是在首次创建对象时。

2025-09-17 19:57:38 257

原创 C++ 封装、继承和多态

封装:通过数据隐藏提高安全性和可维护性,使得类的内部状态与实现细节对外界不可见。继承:通过继承机制重用代码,并且形成类之间的层次结构,便于扩展。多态:通过虚函数和动态绑定,使得相同的操作能够作用于不同的对象,使设计更具灵活性和可扩展性。

2025-02-15 19:21:15 1111

原创 c++类protect内部的构造函数

由于protected构造函数只能在派生类中访问,因此您需要创建一个派生类,并通过派生类的构造函数来调用基类的protected构造函数。这种设计通常用于实现某种限制或控制,确保类的实例化只能在特定的上下文中进行。

2025-02-15 09:42:21 259

原创 c++ static用法

在 C++ 中,static静态局部变量: 用于在函数调用之间保存状态。静态成员变量: 允许类变量在所有对象之间共享。静态成员函数: 用于访问静态成员,不需要创建对象。静态全局变量和函数: 限制符号的可见性,以避免命名冲突。通过适当地使用static,可以有效地管理内存和数据共享,同时增强代码的组织性和可读性。

2025-02-14 10:41:25 482

原创 c++抽象类/接口

抽象类抽象类是一种包含至少一个纯虚函数的类,不能被实例化。通常用于定义接口,强制派生类提供某些特定的行为。纯虚函数声明为virtual,并在函数声明的末尾加上= 0。这是告诉编译器,该函数的实现需要在派生类中提供。public:// 纯虚函数// 普通成员函数(可选)// 实现//具体示例,展示了如何使用抽象类和纯虚函数来实现一个简单的形状系统,包括一个抽象基类和两个派生类:// 抽象类public:// 纯虚函数// 紧凑的图形绘制// 计算面积。

2025-02-13 14:28:46 215

原创 c++模版template

在编程,特别是在 C++ 中,模板是一种强大的功能,允许你创建泛型代码。使用模板可以让你编写一次代码,而在不同类型上重复使用。C++ 中主要有两种类型的模板:1.:允许创建可以处理不同数据类型的函数。2.:允许创建可以处理不同数据类型的类。

2025-02-12 20:03:52 547

原创 C++中的异常处理try

2. throw 表达式:用于抛出一个异常,可以是任何类型(如基本数据类型、对象等)。一旦抛出异常,控制权将转移到最近的、匹配的 catch 块。try 关键字在 C++ 中用于异常处理,允许程序捕获和处理在运行时发生的错误或异常情况。1. try 块:用于包围有可能会产生异常的代码。当在 try 块中发生异常时,程序将跳转到对应的 catch 块。C++ 的异常处理主要通过三个关键字实现:try,catch 和 throw。3.catch 块:用于捕获和处理异常。

2025-02-12 19:53:46 316

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除