【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.3 数据脱敏与安全(模糊处理/掩码技术)
👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路
文章大纲
- PostgreSQL数据脱敏实战:从模糊处理到动态掩码的全流程解析
- 4.3 数据脱敏与安全:模糊处理与掩码技术深度实践
- 4.3.1 数据脱敏的核心技术体系
- 4.3.1.1 技术分类与场景映射
- 4.3.1.2 技术选型决策树
- 4.3.2 模糊处理技术详解
- 4.3.2.1 数值型数据模糊处理
- 4.3.2.2 文本型数据模糊处理
- 4.3.3 掩码技术实战
- 4.3.3.1 固定模式掩码
- 4.3.3.2 `动态掩码(Dynamic Masking)`策略
- 4.3.4 扩展工具与性能优化
- 4.3.4.1 anon扩展深度应用
- 4.3.4.2 性能优化方案
- 4.3.5 合规性与安全增强
- 4.3.5.1 密钥管理方案
- 4.3.5.2 访问控制矩阵
- 4.3.6 质量评估与验证
- 4.3.6.1 评估指标体系
- 4.3.6.2 验证工具推荐
- 4.3.7 行业实践案例
- 4.3.7.1 金融行业
- 4.3.7.2 医疗行业
- 4.3.8 扩展与未来趋势
- 4.3.8.1 动态脱敏技术演进
- 4.3.8.2 隐私计算融合
- 4.3.9 总结与最佳实践
- 4.3.9.1 技术栈选择建议
- 4.3.9.2 实施路线图
PostgreSQL数据脱敏实战:从模糊处理到动态掩码的全流程解析
4.3 数据脱敏与安全:模糊处理与掩码技术深度实践
4.3.1 数据脱敏的核心技术体系
4.3.1.1 技术分类与场景映射
技术类别 | 典型实现方式 | PostgreSQL支持度 | 适用场景 | 合规性匹配 |
---|---|---|---|---|
静态脱敏 | 字符替换、哈希加密 | 高(pgcrypto/anon) | 测试数据生成 | GDPR第32条 |
动态脱敏 | 实时数据变形 | 中(anon扩展) | 生产环境访问控制 | HIPAA 164.308 |
模糊处理 | 数值扰动、日期偏移 | 高(随机函数) | 数据分析场景 | CCPA第1798.140 |
格式保留加密 | 特定模式替换 | 低(需扩展) | 金融卡号处理 | PCI DSS 3.4 |
4.3.1.2 技术选型决策树
4.3.2 模糊处理技术详解
4.3.2.1 数值型数据模糊处理
- 添加10%随机扰动
- 日期数据偏移1-3年
-- 示例表结构
CREATE TABLE employee_salary (id SERIAL PRIMARY KEY,name TEXT,salary NUMERIC(10,2),hire_date DATE
);-- 向 employee_salary 表插入 10 条测试数据
INSERT INTO employee_salary (name, salary, hire_date)
VALUES('张三', 5000.00, '2020-01-01'),('李四', 6000.00, '2020-02-15'),('王五', 5500.00, '2020-03-20'),('赵六', 7000.00, '2020-04-10'),('孙七', 6500.00, '2020-05-25'),('周八', 8000.00, '2020-06-05'),('吴九', 7500.00, '2020-07-18'),('郑十', 5200.00, '2020-08-30'),('王十一', 6800.00, '2020-09-12'),('李十二', 7200.00, '2020-10-22');-- 薪资数据添加10%随机扰动
UPDATE employee_salary
SET salary = salary * (0.9 + random() * 0.2);-- 日期数据偏移1-3年
UPDATE employee_salary
SET hire_date = hire_date + make_interval(years => floor(random() * 3) + 1);
4.3.2.2 文本型数据模糊处理
- 姓名模糊处理(保留姓氏)
- 地址模糊处理(保留城市)
-- 对姓名进行脱敏处理,保留姓氏,将名字部分替换为 ***
UPDATE employee_salary
SET name = CONCAT(SUBSTRING(name FROM '^[\u4e00-\u9fa5]{1}'),'***'
);-- 地址模糊处理(保留城市)
UPDATE employee_salary
SET address = CONCAT(SUBSTRING(address FROM '^[^,]+'), -- 提取城市', ***路***号'
);
4.3.3 掩码技术实战
4.3.3.1 固定模式掩码
- 手机号掩码(中间四位)
-- 手机号掩码(中间四位) SELECT id,name,CONCAT(SUBSTRING(telephone FROM '^(\d{3})\d{4}(\d{4})$'),'*','*','*','*',SUBSTRING(telephone FROM '(\d{4})$')) AS masked_phone FROM customer_info;
4.3.3.2 动态掩码(Dynamic Masking)
策略
- PostgreSQL
Anon
ymizer 是一个扩展,用于掩盖或替换 PostgreSQL 数据库中的个人可识别信息或商业敏感数据
。- 创建脱敏策略
- 设置动态掩码规则
-- 创建脱敏策略 CREATE EXTENSION anon; SELECT anon.init();-- 动态掩码规则 SECURITY LABEL FOR anon ON COLUMN customer_info.email IS 'MASKED WITH FUNCTION anon.pseudo_email(customer_id)';SECURITY LABEL FOR anon ON COLUMN customer_info.telephone IS 'MASKED WITH FUNCTION anon.partial(telephone, 2, $$*****$$, 4)';
anon插件
-数据类型支持数据类型 支持的脱敏策略 示例函数 文本(TEXT) 伪造、哈希、部分隐藏
anon.fake_name()
,anon.hash(name)
数值(NUMERIC) 噪音化、范围泛化
anon.noise(salary, 0.15)
日期(DATE) 时间偏移、随机日期
anon.dnoise(hire_date, '1 year')
布尔(BOOLEAN) 随机化 anon.random_in(ARRAY[true, false])
枚举(ENUM) 映射替换
anon.random_in(ARRAY['A', 'B', 'C'])
4.3.4 扩展工具与性能优化
4.3.4.1 anon扩展深度应用
高级伪造数据
数据噪音化处理
-- 高级伪造数据 SELECT anon.fake_first_name() AS first_name,anon.fake_last_name() AS last_name,anon.fake_postcode() AS zip_code,anon.fake_siret() AS company_id FROM generate_series(1, 1000) AS id;-- 数据噪音化处理 SELECT salary * (1 + anon.dnoise(0.1)) AS noisy_salary,hire_date + anon.dnoise('30 days'::interval) AS noisy_hire_date FROM employee_salary;
4.3.4.2 性能优化方案
优化手段 | 适用场景 | 性能提升比 |
---|---|---|
批量处理 | 百万级数据 | 80% |
并行脱敏 | 多核CPU | 300% |
索引优化 | 频繁查询 | 50% |
缓存策略 | 重复脱敏 | 40% |
4.3.5 合规性与安全增强
4.3.5.1 密钥管理方案
- 密钥轮转示例
- 使用最新密钥加密
-- 密钥轮转示例 CREATE TABLE encryption_keys (key_id SERIAL PRIMARY KEY,key_value TEXT,effective_date DATE,expiration_date DATE );-- 使用最新密钥加密 SELECT pgp_sym_encrypt('sensitive_data', (SELECT key_value FROM encryption_keys WHERE effective_date <= CURRENT_DATE AND expiration_date > CURRENT_DATE )) AS encrypted_data;
4.3.5.2 访问控制矩阵
角色类型 | 数据权限 | 脱敏要求 | 审计日志 |
---|---|---|---|
开发人员 | 全脱敏 | 掩码+模糊 | 必须记录 |
分析师 | 半脱敏 | 保留统计特征 | 可选记录 |
管理员 | 明文 | 无 | 严格审计 |
4.3.6 质量评估与验证
4.3.6.1 评估指标体系
4.3.6.2 验证工具推荐
- 开源数据匿名化软件:ARX
- ARX是一款强大的开放源代码数据匿名化工具,旨在保护敏感的个人数据安全。
- 它集高可扩展性、易用性和全面的数据匿名化策略于一体,使数据脱敏过程变得更加高效和可靠。无论您是数据科学家、隐私专家还是软件开发者,ARX都能为您提供理想的解决方案。
ARX能处理大规模数据,甚至在普通硬件上也能运行,并拥有跨平台的图形用户界面,易于操作
。ARX核心功能
:统计模型驱动匿名化
:利用不同的统计模型,优化数据的实用性和安全性之间的平衡。多种隐私模型
:支持k-匿名、ℓ多样性、t接近度以及δ存在性等语法隐私模型,以及(ɛ, δ)-差分隐私这样的语义模型。- 成本效益分析:提供方法来评估数据发布后的经济效益,以最大化数据价值。
数据转换技术
:包括一般化、抑制、微聚合、顶部/底部编码以及全局和局部重编码等多种手段。数据实用性分析:帮助分析匿名化后数据的质量损失
。- 风险评估:提供工具来分析重新识别风险,确保数据的安全性。
ARX适用于多种数据敏感性强的场景
:- 医疗健康领域:保护患者信息,支持匿名数据分析和研究。
- 金融行业:在遵守严格隐私法规的同时,分享交易数据进行市场分析。
- 政府统计:发布不含有个人信息的公共统计数据。
- 企业内部数据管理:在共享敏感业务数据时,确保员工隐私不被侵犯。
# ARX数据匿名化工具 java -jar arx.jar \--input data.csv \--anonymize k-anonymity \--k 5 \--output anonymized_data.csv# 自定义验证脚本--Python import pandas as pddef validate_anonymization(original, anonymized):original_df = pd.read_csv(original)anonymized_df = pd.read_csv(anonymized)# 验证数据量assert len(original_df) == len(anonymized_df), "数据量不一致"# 验证k-匿名assert anonymized_df.groupby(['年龄', '性别', '邮编']).size().min() >= 2, "k-匿名不满足"# 验证敏感属性多样性assert anonymized_df.groupby(['年龄', '性别', '邮编'])['疾病'].nunique().min() >= 2, "l-多样性不满足"
4.3.7 行业实践案例
4.3.7.1 金融行业
- 银行卡号脱敏
-- 银行卡号脱敏
SELECT id,CONCAT(SUBSTRING(card_number FROM '^(\d{4})'),' **** **** ',SUBSTRING(card_number FROM '(\d{4})$')) AS masked_card
FROM transaction_records;
4.3.7.2 医疗行业
- 患者信息脱敏
-- 患者信息脱敏
SELECT patient_id,anon.pseudo_first_name(patient_id) AS first_name,anon.pseudo_last_name(patient_id) AS last_name,anon.pseudo_city(patient_id) AS city
FROM medical_records;
4.3.8 扩展与未来趋势
4.3.8.1 动态脱敏技术演进
- 阿里云AnalyticDB动态脱敏,权限粒度控制到用户级
-- 阿里云AnalyticDB动态脱敏,权限粒度控制到用户级
CREATE REDACTION POLICY employee_mask ON employees
FOR ALL COLUMNS
WHEN (current_user NOT IN ('admin', 'hr_manager'))
USING mask_email(email);
4.3.8.2 隐私计算融合
- 差分隐私示例
-- 向 employee_salary 表插入 10 条测试数据
INSERT INTO employee_salary (name, salary, hire_date)
VALUES('张三', 5000.00, '2020-01-01'),('李四', 6000.00, '2020-02-15'),('王五', 5500.00, '2020-03-20'),('赵六', 7000.00, '2020-04-10'),('孙七', 6500.00, '2020-05-25'),('周八', 8000.00, '2020-06-05'),('吴九', 7500.00, '2020-07-18'),('郑十', 5200.00, '2020-08-30'),('王十一', 6800.00, '2020-09-12'),('李十二', 7200.00, '2020-10-22');-- 创建用于添加拉普拉斯噪声的函数
CREATE OR REPLACE FUNCTION add_laplace_noise(value NUMERIC, epsilon NUMERIC)
RETURNS NUMERIC AS $$
DECLAREnoise NUMERIC;
BEGIN-- 生成拉普拉斯噪声noise := (random() - 0.5) * (2.0 / epsilon);RETURN value + noise;
END;
$$ LANGUAGE plpgsql;
-- 差分隐私示例-- 查询并添加差分隐私噪声
SELECT add_laplace_noise(COUNT(*)::numeric, 1.0) AS total_employees,add_laplace_noise(AVG(salary), 1.0) AS avg_salary
FROM employee_salary
WHERE hire_date >= '2020-01-01';
4.3.9 总结与最佳实践
4.3.9.1 技术栈选择建议
场景类型 | 推荐方案 | 工具组合 |
---|---|---|
开发测试 | 静态脱敏+数据伪造 | anon + ARX |
生产环境 | 动态脱敏+访问控制 | PostgreSQL内置+阿里云DMS |
数据分析 | 模糊处理+差分隐私 | pgcrypto + ARX |
跨境传输 | 格式保留加密+密钥管理 | pgsodium + KeyVault |
4.3.9.2 实施路线图
-
- 数据分类:通过
敏感数据扫描工具定位敏感
字段
- 数据分类:通过
-
- 策略设计:根据业务需求选择脱敏方法
-
- 技术实现:利用PostgreSQL扩展或第三方工具
-
- 质量验证:使用
ARX进行重识别风险评估
- 质量验证:使用
-
- 合规审计:建立脱敏日志与权限审计机制
- 合规审计:建立脱敏日志与权限审计机制
通过上述技术体系的构建,我们可以在保障数据安全的前提下,充分释放数据价值。
- PostgreSQL凭借其强大的扩展能力和灵活的SQL语法,为数据脱敏提供了丰富的实现手段。
- 在实际应用中,需要结合业务场景、合规要求和性能需求,选择最合适的脱敏策略,并通过持续的质量验证和安全审计,确保数据处理的全流程可控。
相关文章:
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.3 数据脱敏与安全(模糊处理/掩码技术)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL数据脱敏实战:从模糊处理到动态掩码的全流程解析4.3 数据脱敏与安全:模糊处理与掩码技术深度实践4.3.1 数据脱敏的核心技术体系4.3.1.1 技…...
nginx面试题
nginx 返回状态码413 Nginx 状态码 413 表示“请求实体过大”(Request Entity Too Large),意味着客户端发送的请求体大小超过了服务器允许的限制。 解决方法 修改 Nginx 配置文件: 找到 Nginx 配置文件,通常位于 /etc…...
flink rocksdb状态说明
文章目录 1.默认情况2.flink中的状态3.RocksDB4.对比情况5.使用6.RocksDB架构7.参考文章8.总结提示:以下主要考虑flink 状态永久存储 rocksdb情况,做一些简单说明 1.默认情况 当flink使用rocksdb存储状态时。无论是永久存储还是临时存储都可能会落盘写文件(如果没有配置存储…...
Linux | WEB服务器的部署及优化
一. web服务的常用知识 1.1 www www(World Wide Web):即为万维网,常被称为“全球信息广播”。它是一种基于超文本和HTTP协议,能够将文字、图形、影像以及声音等多媒体信息,通过超链接的方式组织在一起&…...
Nginx正反向代理与正则表达式
目录 一:正向代理 1.编译安装nginx 2.配置正向代理 二:反向代理 1.配置nginx七层代理 2.配置nginx四层代理 三:nginx 缓存 1.缓存功能的核心原理和缓存类型 2.代理缓存功能设置 四:nginx rewrite 和正则表达式 1.Nginx…...
字节:LLM自动化证明工程基准
📖标题:APE-Bench I: Towards File-level Automated Proof Engineering of Formal Math Libraries 🌐来源:arXiv, 2504.19110 🌟摘要 🔸大型语言模型(LLM)的最新进展在形式定理证明…...
豆包多轮对话优化策略:上下文理解与记忆,意图识别,对话管理
豆包多轮对话优化策略:上下文理解与记忆,意图识别,对话管理 上下文理解与记忆:我会分析每一轮用户输入的文本内容,理解其中的语义、意图和关键信息,并将这些信息与之前轮次的对话内容相结合,形成对整个对话上下文的理解和记忆。例如,在一个关于旅游规划的对话中,用户先…...
ADK 第四篇 Runner 执行器
智能体执行器 Runner,负责完成一次用户需求的响应,是ADK中真正让Agent运行起来的引擎,其核心功能和Agents SDK中的Runner类似,具体作用如下: 会话管理:自动读取/写入 SessionService,维护历史信…...
yolo 用roboflow标注的数据集本地训练 kaggle训练 comet使用 训练笔记5
本地训练 8gb内存,机械硬盘用了4分钟训练完了 ........... model torch.hub.load(path/to/yolov5, custom, path./runs/train/exp10/weights/best.pt, sourcelocal) 连不上github kaggel训练 传kaggle了 # Train YOLOv5s on COCO128 for 3 epochs !python train…...
chili3d笔记11 连接yolo python http.server 跨域请求 flask
from ultralytics import YOLO from flask import Flask, request, jsonify from flask_cors import CORS import base64 from io import BytesIO from PIL import Image import json# 加载模型 model YOLO(./yolo_detect/best.pt)app Flask(__name__) CORS(app) # 启用跨域…...
安全为上,在系统威胁建模中使用量化分析
*注:Open FAIR™ 知识体系是一种开放和独立的信息风险分析方法。它为理解、分析和度量信息风险提供了分类和方法。Open FAIR作为领先的风险分析方法论,已得到越来越多的大型组织认可。 在数字化风险与日俱增的今天,企业安全决策正面临双重挑战…...
STA中的multi_cycle 和false_path详细讨论
特殊路径:跨时钟域下的exception_path:分为多种情况优先 1、不同clk_domain ,但频率相同 create_clock -name CLKM -period 10 -waveform {0 5} [get_ports CLKM] create_clock -name CLKP -period 10 -waveform {0 5} [get_ports CLKP] set_multicycl…...
Vite 的工作流程
Vite 的工作流程基于其创新的 “预构建 按需加载” 机制,通过利用现代浏览器对原生 ES 模块的支持,显著提升了开发效率和构建速度。以下是其核心工作流程的详细分析: 一、开发环境工作流程 1. 启动开发服务器 冷启动:通过 npm …...
NGINX 的 ngx_http_auth_jwt_module模块
一、模块概述 ngx_http_auth_jwt_module 模块用于通过验证请求中提供的 JWT 来进行客户端授权。此模块支持 JSON Web 签名(JWS)、JSON Web 加密(JWE)以及嵌套 JWT(Nested JWT),使其成为一种灵活…...
【Game】Powerful——Transformation Card(10)
文章目录 1 级卡片2 级卡片3 级卡片4 级卡片5 级卡片6 级卡片7 级卡片8 级卡片8.1、神兽8.2、珍兽 9、其他9.1、5 级变身卡9.2、8 级变身卡 10、PK 汇总物理 11、卡片合成 1 级卡片 千变万化等级要求:1 级 金钱龟,防御30⬆ 大耳兔,速度15⬆…...
【算法学习】递归、搜索与回溯算法(一)
算法学习: https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言: 这个专题与前面的相比是比较有难度的,但是在平时刷题时出现的概率还是非常高的,下面还是按照之前的逻辑来理清一下这几道…...
发行基础:上传版本注意事项
1、steam的规则是上传,提审,随时可更新。 2、基本流程:根据app id以及depot id,上传本地游戏文件到服务器,把分支版本设置为默认,发布。 试玩版与正式版的app id与depot id是相互独立的。 3、理论上开发者…...
智算中心建设方案和前景分析
智算中心建设方案和前景分析 一、智算中心的概念与重要性 1.1 定义与内涵 智算中心,即智能计算中心,是基于最新人工智能理论,采用领先的人工智能计算架构,专门为人工智能应用提供所需的算力服务、数据服务和算法服务的新型基础…...
亚马逊卖家复刻案例:用社群分层策略实现海外用户月均消费3.2次
近年来,随着跨境电商市场的快速发展,全球消费模式经历深刻变革。尤其是在美国、欧洲等成熟市场,中小卖家面对高度市场集中和运营成本上升的双重压力,纷纷寻求以更精细化的用户运营来提高客户复购率,增加单用户价值。20…...
小刚说C语言刷题—1038编程求解数学中的分段函数
1.题目描述 编程求解数学中的分段函数。 …………x1 (当 x>0 )。 yf(x)…0 (当 x0 )。 ………x−1 (当 x<0 )。 上面描述的意思是: 当x>0 时 yx1 ; 当 x0 时 y0 ; 当 x<0 时 yx−1 。 输入 输入一行,只有一个整数x(−30000≤x≤30…...
kotlin 03flow-stateFlow和sharedFlow企业中使用
一 stateFlow和sharedFlow企业中使用 在企业级 Kotlin 项目中,StateFlow 和 SharedFlow 是 状态管理 与 事件分发 的核心工具,尤其在 MVVM 架构中扮演着极为关键的角色。 ✅ 企业中如何使用 StateFlow 和 SharedFlow 场景工具示例UI 状态同步ÿ…...
【机器学习|学习笔记】决策树Decision Tree(DT)的起源、原理、发展、改进和应用(附代码)
【机器学习|学习笔记】决策树Decision Tree(DT)的起源、原理、发展、改进和应用(附代码) 【机器学习|学习笔记】决策树Decision Tree(DT)的起源、原理、发展、改进和应用(附代码) 文…...
Kotlin-空值和空类型
变量除了能引用一个具体的值之外,还有一种特殊的值,那就是 null, 它代表空值, 也就是不引用任何对象 在Kotlin中, 对空值的处理是非常严格的,正常情况下,我们的变量是不能直接赋值为 null 的,否则无法编译通过, 这直接在编译阶段就避免了空指针问题 Kotlin中所有的类型默认都是…...
Java 企业级开发设计模式全解析
Java 企业级开发设计模式全解析 在 Java 企业级开发的复杂领域中,设计模式如同精湛的工匠工具,能够帮助开发者构建高效、可维护、灵活且健壮的软件系统。它们是无数开发者在长期实践中总结出的解决常见问题的最佳方案,掌握这些模式对于提升开…...
高并发内存池
文章目录 前言一、项目介绍二、内存池介绍1.池化技术2.内存池3.malloc视角下内存的管理 三、定长内存池3.1 设计思路3.2 数据结构 四、高并发内存池整体框架设计4.1 thread cachethreadcache哈希桶映射对齐规则threadcache TLS无锁访问 4.2 central cachecentral cache结构设计…...
常用对称加密算法的Python实现及详解
文章目录 **常用对称加密算法的Python实现及详解****1. 对称加密概述****1.1 对称加密的基本原理****1.2 对称加密的分类****1.3 对称加密的应用** **2. DES(Data Encryption Standard)****2.1 算法原理****2.2 Python实现****2.3 安全性分析** **3. 3DE…...
ByteArrayInputStream 类详解
ByteArrayInputStream 类详解 ByteArrayInputStream 是 Java 中用于从字节数组读取数据的输入流,位于 java.io 包。它允许将内存中的字节数组当作输入流来读取,是处理内存数据的常用工具。 1. 核心特性 内存数据源:从字节数组(b…...
MySQL C API高效编程:C语言实现数据库操作的深入解析
知识点【MySQL C API】 1、头文件及MYSQL * 句柄 //头文件 #include <mysql/mysql.h>1、MYSQL MYSQL是一个结构体,封装了与数据库连接相关的所有状态,配置和数据。 2、MYSQL *的本质 类似于 FILE*,代表一个与数据库连接的通道&…...
字符串,数组,指针之间的关系
在C语言中,字符串、指针和数组之间有着紧密且复杂的关系,它们在内存存储、操作方式等方面相互关联,以下为你详细介绍: 字符串 定义:字符串是由字符组成的序列,以空字符(\0)作为结束…...
2025流感疫苗指南+卫健委诊疗方案|高危人群防护+并发症处理 慢性肾脏病饮食指南2025卫健委版|低盐低磷食谱+中医调理+PDF 网盘下载 pdf下载
2025 年卫健委发布的《成人肥胖食养指南(2024 年版)》为减肥提供了科学的饮食指导。 📢提示:文章排版原因,资源链接地址放在文章结尾👇👇,往下翻就行 📢提示࿱…...
学习路线(机器人软件架构)
机器人软件系统架构从入门到专家学习路线 一、基础阶段(6-12个月)基础知识储备机器人基础概念:编程技能必备语言:工具链: 入门框架推荐资源: 中级阶段(1-2年)系统架构基础ROS进阶架构…...
Stellaris 群星 [DLC 解锁] CT 表 [Steam] [Windows SteamOS macOS]
Stellaris 群星 [DLC 解锁] & CT 表 [Steam] [Windows & SteamOS & macOS] DLC 版本 至最新全部 DLC 后续可能无法及时更新文章,具体最新版本见下载文件说明; DLC 解锁列表(仅供参考) 《群星》 - Symbols of Domina…...
题目 3321: 蓝桥杯2025年第十六届省赛真题-画展布置
题目 3321: 蓝桥杯2025年第十六届省赛真题-画展布置 时间限制: 2s 内存限制: 192MB 提交: 673 解决: 130 题目描述 画展策展人小蓝和助理小桥为即将举办的画展准备了 N 幅画作,其艺术价 值分别为 A1, A2, . . . , AN。他们需要从这 N 幅画中挑选 M 幅,并…...
Excel 查询之 iNDEX与MATCH组合
在Excel日常工作中,数据查询是最常见的操作之一。虽然VLOOKUP函数广为人知,但它有一个明显的局限性——要求查询值必须位于返回值的左侧。今天我要介绍一个更灵活、更强大的组合:INDEX和MATCH函数。 为什么选择INDEXMATCH? VLOO…...
【Leetcode 每日一题 - 补卡】1128. 等价多米诺骨牌对的数量
问题背景 给你一组多米诺骨牌 d o m i n o e s dominoes dominoes。 形式上, d o m i n o e s [ i ] [ a , b ] dominoes[i] [a, b] dominoes[i][a,b] 与 d o m i n o e s [ j ] [ c , d ] dominoes[j] [c, d] dominoes[j][c,d] 等价 当且仅当 ( a c a c …...
【Elasticsearch入门到落地】12、索引库删除判断以及文档增删改查
接上篇《11、RestClient初始化索引库》 上一篇我们完成了使用RestHighLevelClient创建索引库的代码实现,本篇将讲解如何判断索引库是否存在并删除它,以及如何对索引库中的文档进行增删改查操作。 一、索引库判断与删除 在操作索引库时,有时…...
36、C#中的⽅法声明参数关键字params,ref,out的意义及⽤法
在C#中,params、ref 和 out 是方法声明中用于修饰参数的关键字,它们各自有不同的用途和语义。以下是它们的详细说明和用法: 1、 params 关键字 意义 params 允许方法接受可变数量的参数,这些参数会被编译为一个数组。适用于参数…...
DEX平台引领风尚 XBIT让数字资产回归简单与透明
近日,全球加密货币市场持续升温,Dex 交易平台成为众多投资者关注焦点,其中XBIT去中心化交易所平台凭借独特优势脱颖而出。 图片来源:币界网 在当今加密货币领域,交易平台的安全性与便捷性至关重要。XBIT去中心化交易所…...
基于Python+MongoDB猫眼电影 Top100 数据爬取与存储
前言:从猫眼电影排行榜页面(TOP100榜 - 猫眼电影 - 一网打尽好电影 )爬取 Top100 电影的电影名称、图片地址、主演、上映时间和评分等关键信息,并将这些信息存储到本地 MongoDB 数据库中,🔗 相关链接Xpath&…...
Linux文件复制命令精要指南:cp与scp详解
大家好,欢迎来到程序视点!我是你们的老朋友.小二! Linux文件复制命令精要指南:cp与scp详解 一、cp命令(本地文件复制) 核心功能 复制文件/目录到目标路径,支持重命名及批量操作。 关键参数 …...
Qt实现网页内嵌
文章目录 一、环境准备 二、代码实现 三、测试 一、环境准备 首先,确保你的Qt安装包含了QtWebEngine模块。我的Qt是5.12.9并且使用MSVC来编译项目。在项目文件中需要添加以下配置,其中在Qt中配置MSVC,建议去看看这位大佬的博客:…...
Kotlin中 StateFlow 或 SharedFlow 或 LiveData的区别
在Android开发中,处理数据流是常见的需求,特别是在UI更新和数据共享方面。Kotlin提供了几种不同的工具来帮助开发者实现这一需求,包括StateFlow、SharedFlow和LiveData。每种工具都有其特点和使用场景,下面我们将逐一比较它们的区…...
jupyter notebook运行简单程序
一. 使用 cmd 创建虚拟环境 1.创建虚拟环境 (1)创建新的虚拟环境(本项目名设置为zhineng),并设置python版本 conda create -n zhineng python3.6 (2)查看python版本 python --version &am…...
查看Ubuntu版本
1. 使用 lsb_release 命令(推荐) lsb_release -a输出示例: ubuntuVM-0-6-ubuntu:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jamm…...
《算法导论(第4版)》阅读笔记:p7-p8
《算法导论(第4版)》学习第 5 天,p7-p8 总结,总计 2 页。 一、技术总结 1.算法解决什么问题? DNA测序问题(Dynamic Programming, 动态规划),寻找路径问题,加密问题,利益最大化问题(linear programming, …...
AI笔记-1
Halide Perovskites (HPs) 卤化物钙钛矿 卤化物钙钛矿(HPs)已被 公认为 光伏和发光器件 中最有前途的材料之一 在本观点中,我们将探讨钙钛矿的定义,主要聚焦于由 较重卤素(Cl、Br和I)组成的钙钛矿亚群&…...
【C++重载操作符与转换】成员访问操作符
目录 一、点操作符(.) 1.1 基本概念 1.2 点操作符不能被重载 二、箭头操作符(->) 2.1 基本概念 2.2 箭头操作符的重载 2.3 箭头操作符重载的特殊规则 三、成员指针操作符(.*)和指向成员指针的箭…...
java单元测试代码
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import java.util.List;public class UserServiceTest {Testpublic void testSearchUserByTags() {// 模拟标签列表List<String> tagNameList List.of("tag1", "…...
Vue中的过滤器参数:灵活处理文本格式化
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
【神经网络与深度学习】深度学习中的生成模型简介
深度学习中的生成模型 openai 的一个古早介绍 引言 深度学习中的生成模型能够学习数据分布并生成新数据,在人工智能的多个领域中都有重要应用。不同类型的生成模型在原理和结构上各有特点,适用于不同的任务,如图像生成、文本生成和时间序列…...