当前位置: 首页 > news >正文

C++ -- 哈希扩展

目录

位图

位图概念

位图的实现

位图应用

布隆过滤器

布隆过滤器的提出

布隆过滤器概念

布隆过滤器的插入

 布隆过滤器的查找

布隆过滤器的删除


位图

        给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中?

  • 遍历,时间复杂度O(N)
  • 排序O(NlogN),再利用二分查找logN
  • 位图解决:数据是否在给定的整型数据中,结果是在或者不在,刚好是两种状态,那么可以使用一个二进制比特位来代表数据是否存在的信息,如果为1代表存在,为0代表不存在

使用位图可以大大减少空间的占用,40亿个无符号整数如果都要存储起来需要160亿字节,约为16G,如果要使用map和set来实现判断底层结构还需要消耗更多的空间。但如果使用位图,判断在不在只需要一个比特位,甚至只需要约0.5个G。

位图概念

        所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。

位图的实现

基本框架:

set用于将存在的数据位置1,reset用于将原本存在而现在不存在的数据位置0,test用于判断某个数据位存不存在。

这里需要注意,位图概念上来说是以bit为单位的,但是我们编写代码时最小的单位并不是bit,而是char。这里我们直接用int来开辟空间,一个int为32个比特位,开辟N/32+1的空间即可。

namespace hx
{template<size_t N>class bitset{public:bitset(){_a.resize(N / 32 + 1);}void set(size_t x){//...}void reset(size_x){//...}bool test(size_t x){//...}private:vector<int> _a;};
}

set实现:

i -- x位于第几个整型

j -- x位于该整型的第几位

要将某一位置1,我们用按位或实现即可,即将1左移j位与该整型值相或,这样既不会影响该整型的其他数据位又可以把指定的数据位置1.(任何数据与0相或都不影响原来的值)

void set(size_t x)
{size_t i = x / 32;size_t j = x % 32;_a[i] |= (1 << j);
}

reset实现:

用按位与实现,将1左移j位后按位取反,再与原来的数据相与(任何数据与1相与都不影响原来的值)。

void reset(size_x)
{size_t i = x / 32;size_t j = x % 32;_a[i] &= (~(1 << j)); 
}

test实现:

假设该数据位位于整型的第二位,即j=2的情况,

1<<j 就是 00000100

此时若该数据存在,这个整型的第二位也为1,与1<<j相与后的结果不为0,返回真;

若该数据不存在,这个整型的第二位为0,与1<<j相与后的结果为0,返回假。

bool test(size_t x)
{size_t i = x / 32;size_t j = x % 32;return _a[i] & (1 << j);
}

位图应用

1.给定100亿个整数,设计算法找到只出现一次的整数

        找到只出现一次的整数与判断在与不在不同的地方在于判断在不在只需要一个比特位,1代表存在,0代表不存在。而现在有不出现、出现1次、出现多次多种可能,所以我们可以用两个比特位来标识出现的次数。00 -- 出现0次,01 -- 出现1次,10 -- 出现两次或以上。代码实现:

template<size_t N>
class twobitset
{
public:void set(size_t x){// 00 -> 01if (!_bs1.test(x) && !_bs2.test(x)){_bs2.set(x);}// 01 -> 10else if (!_bs1.test(x) && _bs2.test(x)){_bs1.set(x);_bs2.reset(x);// 10代表出现两次及以上,不再发生改变}}bool is_once(size_t x){return !_bs1.test(x) && _bs2.test(x);}
private:bitset<N> _bs1;bitset<N> _bs2;
};

2.给两个文件,分别有100亿个整数,只有1G内存,如何找到两个文件的交集?

        假如我们将一个文件的所有值映射到一个位图,再去另一个文件判断在不在,这样的话得出的交集还需要去重。我们直接将两个文件分别映射到两个位图,对应的位置相与,如果为1这个值就是交集。

3.位图应用变形:1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所有整数。

        该问题类似问题1,用两个位图解决。01 -- 出现1次,10 -- 出现2次, 11 -- 出现2次及以上。

布隆过滤器

布隆过滤器的提出

        我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时都要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的——用服务器记录了用户看过的所有记录,当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,过滤掉那些已经存在的记录。如何快速查找呢?

        用哈希存储用户记录非常浪费空间;而位图一般只能处理整型,如果内容编号是字符串,就无法处理了。因此我们需要把哈希和位图结合一下,即布隆过滤器。

        举个例子,我们将张三、李四、王五这些字符串通过哈希算法映射为某个整型值,存储在位图中。就可以实现快速判断某个人的名字在不在了。但是如下图所示的映射方法存在一个问题:当字符串很多时,所有字符串映射到一个值非常容易发生哈希碰撞。这样的查询结果是不准确的——如果查询结果为不存在,那么这个字符串确实一定不存在;但如果查询结果为存在,这个字符串不一定存在(有可能其他字符串与该字符串的映射结果相同)。

        因此我们做出相应的改进,同一个字符串不仅映射到一个位置而是多个位置,这样虽然无法消除误判,但却能一定程度降低误判率。

        这种方法存在的应用场景是不需要很精确的查询结果的,比如一个网站快速判断昵称是否被注册过。 

布隆过滤器概念

        布隆过滤器时由布隆提出的一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你“某样东西一定不存在或者可能存在”,它是用多个哈希函数将一个数据映射到位图结构中。此种方式不仅可以提升查询效率,也可以节省大量的内存空间。

布隆过滤器的插入

向布隆过滤器中插入"baidu"和"tencent":

 

        如图所示,字符串会通过不同的哈希算法映射不同的值,选用多种哈希算法映射多个值再在位图中置位可以降低误判率,以下是几种常见的字符串哈希算法:

struct BKDRHash
{size_t operator()(const string& s){// BKDRsize_t value = 0;for (auto ch : s){value *= 31;value += ch;}return value;}
};
struct APHash
{size_t operator()(const string& s){size_t hash = 0;for (long i = 0; i < s.size(); i++){if ((i & 1) == 0){hash ^= ((hash << 7) ^ s[i] ^ (hash >> 3));}else{hash ^= (~((hash << 11) ^ s[i] ^ (hash >> 5)));}}return hash;}
};
struct DJBHash
{size_t operator()(const string& s){size_t hash = 5381;for (auto ch : s){hash += (hash << 5) + ch;}return hash;}
};

 布隆过滤器的查找

        布隆过滤器的思想是将一个元素用多个哈希函数映射到一个位图中,因此被映射到的位置的比特位一定为1.所以可以按照以下方式进行查找:分别计算每个哈希值对应的比特位只存储的是否为0,只要有一个为0,代表该元素一定不在哈希表中,否则可能在哈希表中。

        布隆过滤器如果说某个元素不存在时,该元素一定不存在,如果该元素存在时,该元素可能存在,因为有些哈希函数存在一定的误判。

布隆过滤器的删除

        布隆过滤器器不能直接支持删除工作,因为在删除一个元素时可能会影响其他元素。有些比特位会跟别的字符串映射位置重叠,删除一个元素会导致另一个元素也被“删除”了。

        一种支持删除的方法:将布隆过滤器中的每个比特位扩展成一个小的计数器,插入元素时给k个计数器加一,删除元素时给k个计数器减一,通过多占用几倍存储空间的代价来增加删除操作。

总结:

布隆过滤器优点:

  1. 增加和查询元素的时间复杂度为:O(K),(K为哈希函数的个数,一般比较小),与数据量大小无关。
  2. 哈希函数相互之间没有关系,方便硬件并行运算。
  3. 布隆过滤器不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势。
  4. 在能够承受一定的误判时,布隆过滤器比其他数据结构有很大的空间优势。
  5. 数据量很大时,布隆过滤器可以表示全集,其他数据结构不能。
  6. 使用同一组散列函数的布隆过滤器可以进行交、并、差运算。

布隆过滤器缺陷:

  1. 有误判率,即存在假阳性,不能准确判断元素是否在集合中(补救方法:再建立一个白名单,存储可能会误判的数据)。
  2. 不能获取元素本身。
  3. 一般情况下不能从布隆过滤器中删除元素。
  4. 如果采用技术方式删除,可能会存在计数回绕问题。

代码实现:

template<size_t N, 
class K = string,
class HashFunc1 = BKDRHash,
class HashFunc2 = APHash, 
class HashFunc1 = DJBHash>
class BloomFilter
{
public:void Set(const K& key){size_t index1 = HashFunc1()(key) % N;size_t index2 = HashFunc2()(key) % N;size_t index3 = HashFunc3()(key) % N;_bs.set(index1);_bs.set(index2);_bs.set(index3);}bool Test(const K& key){size_t index1 = HashFunc1()(key) % N;if (_bs.test(index1) == 0)return false;size_t index2 = HashFunc2()(key) % N;if (_bs.test(index2) == 0)return false;size_t index2 = HashFunc3()(key) % N;if (_bs.test(index3) == 0)return false;return true;}// 布隆过滤器不支持删除,删除可能会影响其他值
private:bitset<N> _bs;
};

相关文章:

C++ -- 哈希扩展

目录 位图 位图概念 位图的实现 位图应用 布隆过滤器 布隆过滤器的提出 布隆过滤器概念 布隆过滤器的插入 布隆过滤器的查找 布隆过滤器的删除 位图 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数…...

AI大模型分类以及Prompt优化技巧

目录 一、AI大模型分类 1、按模态分类 2、按开源性分类 3、按规模分类 4、按用途分类 如何对比和选择大模型 二、Token 如何计算 Token 如何估算Token成本 三、Prompt工程 Prompt优化技巧 基础提示技巧 1、明确指定任何和角色 2、提供详细说明和具体示例 3、使用…...

将本地项目提交到新建的git仓库

方式一: # 登录git&#xff0c;新建git仓库和指定的分支&#xff0c;如master、dev# 下载代码&#xff0c;默认下载master分支 git clone http://10.*.*.67/performance_library/pfme-*.git # 切换到想要提交代码的dev分支 git checkout dev# 添加想要提交的文件 git add .#…...

【wpf】10 C#树形控件高效实现:递归构建与路径查找优化详解

在WPF应用程序开发中&#xff0c;树形控件的实现是常见且具有挑战性的需求。本文将深入解析一套高效树形结构的实现方案&#xff0c;包含递归构建、路径查找优化、动态交互等多个关键技术点。 一、递归构建树形结构 private TreeItem CreateTreeViewItem(TreeNode node) {var…...

低空科技护航珞樱春色,技术引领助推广阔应用

春风拂珞珈&#xff0c;樱海绽放时。赏樱季已接近尾声&#xff0c;作为武汉大学测绘遥感信息工程全国重点实验室的成果转化科技型企业&#xff0c;大势智慧积极参与校园的智能化建设&#xff0c;助力武汉大学的樱花季巡航管理&#xff0c;打造更为安全、有序的赏樱体验。 低空…...

Tiny Machine Learning在人类行为分析中的全面综述

论文标题&#xff1a; 中文&#xff1a;《Tiny Machine Learning在人类行为分析中的全面综述》 英文&#xff1a;A Comprehensive Survey on Tiny Machine Learning for Human Behavior Analysis 作者信息&#xff1a; Ismail Lamaakal, Student Member, IEEE, Siham Essahr…...

8.12 GitHub Sentinel企业级进化:容器化优化×AI监控,效率提升300%实战

GitHub Sentinel 扩展优化与商业化演进路径 关键词:企业级 Agent 扩展性设计、容器化部署优化、多格式报告生成、第三方服务集成、SaaS 服务架构 1. 功能扩展方向 1.1 多格式报告生成技术实现 采用模板引擎与文件流处理技术实现动态报告生成: #mermaid-svg-2BhQlvVsDp5NdL…...

算法-时间复杂度和空间复杂度

刷算法必备时间和空间复杂度&#xff0c;记录下方便查询。 时间复杂度 概念 时间复杂度衡量的是算法 执行所需的时间 随输入规模 n 增长的变化趋势&#xff0c;用大O 表示法描述&#xff08;通常是看这个循环&#xff09;。 分类 常数时间O(1) 无论输入多大&#xff0c;执行…...

springboot国家化多语言实现

前言 公司在做国际化项目时需要匹配多语言环境&#xff0c;通过spring实现i18n国际化方便快捷 项目结构 src/ ├── main/ │ ├── java/ │ │ └── com/example/i18ndemo/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # …...

第2章 算法分析基础

2-1 算法的时间复杂度分析 2.1.1 输入规模与基本语句 输入规模&#xff1a;算法处理数据的规模&#xff0c;通常用 n 表示。 基本语句&#xff1a;执行次数与输入规模直接相关的关键操作。 例2.1 顺序查找 int SeqSearch(int A[], int n, int k) { for (int i 0; i < n…...

vue2 计算属性 computed

计算属性他是一个属性&#xff0c;他不是一个函数&#xff0c;使用的时候不要加括号 reduce reduce 是 JavaScript 数组的一个高阶函数&#xff0c;用于对数组中的每个元素执行一个​​累积计算​​&#xff0c;最终返回一个单一的值。...

Milvus 向量数据库详解与实践指南

一、Milvus 核心介绍 1. 什么是 Milvus&#xff1f; Milvus 是一款开源、高性能、可扩展的向量数据库&#xff0c;专门为海量向量数据的存储、索引和检索而设计。它支持近似最近邻搜索&#xff08;ANN&#xff09;&#xff0c;适用于图像检索、自然语言处理&#xff08;NLP&am…...

记录一次 python 文件环境变量配置-sqlmap.py

第一步&#xff1a;环境变量配置 C:\Users\14913\Downloads\application\3.secure\sqlmap-2025.5.6 或者 C:\Users\14913\Downloads\application\3.secure\sqlmap-2025.5.6 都可以&#xff01; 第二步 使用 第一步&#xff1a;不再进目录 第二步&#xff1a;不再python … s…...

使用大语言模型进行机器人规划(Robot planning with LLMs)

李升伟 编译 长期规划在机器人学领域可以从经典控制方法与大型语言模型在现实世界知识能力的结合中获益。 在20世纪80年代&#xff0c;机器人学和人工智能&#xff08;AI&#xff09;领域的专家提出了莫雷奇悖论&#xff0c;观察到人类看似简单的涉及移动和感知的任务&#x…...

STM32 CAN总线

目录 定时传输CAN简介和硬件电路 CAN简介 主流通信协议对比 ​编辑 CAN硬件电路 ​编辑 CAN电平标准 CAN收发器 – TJA1050&#xff08;高速CAN&#xff09; CAN物理层特性 帧格式 数据帧 遥控帧 错误帧 过载帧 ​编辑 帧间隔 ​编辑 位填充 波形实例 位…...

使用JMeter 编写的测试计划的多个线程组如何生成独立的线程组报告

我有一个测试计划&#xff0c;里面有两个线程组&#xff0c;如下&#xff1a; 添加了一个HTTP请求默认值&#xff1a; 然后我使用如下命令生成的可视化报告是两个线程组合并后的聚合报告。 jmeter -n -t 百度测试计划.jmx -l baidu.txt -e -o ./baidu但是我想要的效果是每…...

RabbitMQ如何保证消息不丢失?

在RabbitMQ中&#xff0c;消息丢失可能发生在三个阶段&#xff1a;生产者发送消息时、消息在RabbitMQ服务器内部传递时、消费者接收消息时。为了保证消息不丢失&#xff0c;需要从这三个方面分别采取措施&#xff1a; 1. 生产者确保消息发送成功 开启确认模式&#xff08;Conf…...

RAG 的介绍及评价方法

RAG的作用 大模型虽然具备处理复杂语言任务的强大能力&#xff0c;但在知识更新和依赖外部信息的及时性方面存在局限。大模型在训练时捕获的知识通常是静态的&#xff0c;一旦训练完成&#xff0c;模型便不再更新&#xff0c;无法掌握训练数据集之外的最新信息或事件。RAG可以…...

Linux网络新手注意事项与配置指南

Linux系统在网络管理方面提供了丰富的工具和灵活的配置方式,但对于新手来说,掌握正确的操作方法和注意事项至关重要。本文将从网络基础概念、配置工具、安全设置、故障排查以及常见错误等多个方面,结合具体代码示例,详细讲解Linux网络管理的核心内容,帮助新手快速入门并避…...

CI/CD与DevOps流程流程简述(提供思路)

一 CI/CD流程详解&#xff1a;代码集成、测试与发布部署 引言 在软件开发的世界里&#xff0c;CI/CD&#xff08;持续集成/持续交付&#xff09;就像是一套精密的流水线&#xff0c;确保代码从开发到上线的整个过程高效、稳定。我作为一名资深的软件工程师&#xff0c;接下来…...

【AWS+Wordpress-准备阶段】AWS注册+创建EC2实例

前言 自学笔记&#xff0c;解决问题为主&#xff0c;亲测有效&#xff0c;欢迎补充。 本地WP文件部署到AWS整体步骤如下&#xff1a;&#xff08;本文重点&#xff1a;AWS准备完成&#xff09; 0. [AWS 准备] 注册 AWS 并创建 EC2 实例 ↓ 1. [生成安装包&#xff1a;用 Du…...

FPGA----基于ZYNQ 7020实现定制化的EPICS通信系统

引言&#xff1a;前文我们降到了&#xff0c;使用alinx提供的sd卡&#xff0c;直接在上面编译即可。那么&#xff0c;如果我们的在FPGA侧有一些个性化的开发&#xff0c;那么生成的image.ub和boot.bin将于原sd卡中的不一致&#xff0c;我们应该如何坐呢&#xff1f; 补充知识点…...

读《暗时间》有感

读《暗时间》有感 反思与笔记 这本书还是我无意中使用 ima 给我写职业规划的时候给出的&#xff0c;由于有收藏的习惯&#xff0c;我就去找了这本书。当读到第一章暗时间的时候给了我很大的冲击&#xff0c;我本身就是一个想快速读完一本书的人&#xff0c;看到东西没有深入思…...

MIT关节电机相序校准

UVW三相相序判断 电机相序校正是确保多关节控制系统正常运行的重要步骤。在实际应用中&#xff0c;每个电机定子的三相线&#xff08;W、U、V&#xff09;的连接顺序可能存在差异&#xff0c;这是由于制造过程中的随机接线所致。不过&#xff0c;通过简单的校正方法&#xff0c…...

Qwen2.5模型结构

self.lm_head nn.Linear(config.hidden_size, config.vocab_size, biasFalse) 这个是用来干嘛的 输出层&#xff0c;词汇投影层&#xff0c;将模型输出的隐藏状态向量映射回词表空间&#xff0c;用于预测下一个token # 预测 logits&#xff0c;未经过 softmax lm_logits self…...

2021-11-11 C++泰勒sin(x)以2步进乘方除以阶乘加减第N项

缘由c书本题&#xff0c;求解了&#xff0c;求解-编程语言-CSDN问答 int n 10, d 3, z -1; double x 2.5, xx x;while (n){xx (乘方(x, d) / 阶乘(d)) * z;d 2, --n, z * -1;}std::cout << xx << std::endl;...

【MySQL】C语言访问数据库

C语言访问数据库 一. Linux 安装 MySQL 动静态库二. 使用MySQL数据库1. 创建MySQL对象2. 连接MySQL数据库3. 释放MySQL对象4. SQL 语句操作1. 插入操作2. 修改操作3. 删除操作4. 查询操作 准备工作 use mysql; select user, host from user;# 创建本地连接的用户 create user c…...

dify 部署后docker 配置文件修改

1&#xff1a;修改 复制 ./dify/docker/.env.example ./dify/docker/.env 添加一下内容 # 启用自定义模型 CUSTOM_MODEL_ENABLEDtrue# 将OLLAMA_API_BASE_URL 改为宿主机的物理ip OLLAMA_API_BASE_URLhttp://192.168.72.8:11434# vllm 的 OPENAI的兼容 API 地址 CUSTOM_MODE…...

【神经网络与深度学习】VAE 和 GAN

这位大佬写的 VAE 的讲解很不错 VAE 和 GAN 的相同点和不同点 引言 VAE&#xff08;变分自编码器&#xff09;和 GAN&#xff08;生成对抗网络&#xff09;是深度学习中两种主要的生成模型&#xff0c;它们在数据生成任务中发挥着重要作用。虽然它们的目标相似&#xff0c;都…...

2-C#控件

2-控件 1.panel控件的使用 private void button3_Click(object sender, EventArgs e){Form2 my2 new Form2();my2.TopLevel false;this.panel1.Controls.Add(my2);my2.BringToFront();my2.Show();}private void button4_Click(object sender, EventArgs e){Form3 my3 new F…...

1.1.2 简化迭代器 yield return的使用

yield return 是一个用于简化迭代器&#xff08;Iterator&#xff09;实现的关键字组合。它的核心作用是让开发者能够以更简洁的方式定义一个按需生成序列的方法&#xff08;生成器方法&#xff09;&#xff0c;而无需显式实现 IEnumerable 或 IEnumerator 接口。yield return …...

机器学习实操 第二部分 神经网路和深度学习 第14章 使用卷积神经网络进行深度计算机视觉

机器学习实操 第二部分 神经网路和深度学习 第14章 使用卷积神经网络进行深度计算机视觉 内容概要 第14章深入探讨了卷积神经网络&#xff08;CNNs&#xff09;及其在计算机视觉中的应用。CNNs受大脑视觉皮层的启发&#xff0c;通过局部感受野和权值共享机制&#xff0c;能够…...

电商双11美妆数据分析(2)

接下来用seaborn包给出每个店铺各个大类以及各个小类的销量销售额 关于性别 接下来考虑性别因素&#xff0c;了解各类产品在男性消费者中的销量占比 男士的销量基本来自于清洁类&#xff0c;其次是补水类。而这两类正是总销量中占比最高的两类。 非男士专用中&#xff0c;补水…...

数字康养新范式:七彩喜平台重构智慧养老生态的深度实践

在全球人口老龄化程度日益加深的当下&#xff0c;养老问题成为社会关注的焦点。 智慧养老作为一种创新的养老模式&#xff0c;借助现代信息技术&#xff0c;为提升老年人生活质量、缓解养老压力提供了新的思路与途径。 而当前中国 60 岁以上人口已达 2.8 亿&#xff0c;占总人…...

2D横板跳跃游戏笔记(查漏补缺ing...)

1.Compression&#xff08;压缩质量&#xff09;&#xff1a;可以改为None&#xff0c;不压缩的效果最好&#xff0c;但占用内存 2.Filter Mode&#xff08;过滤模式&#xff09;&#xff1a;可以选择Point&#xff08;no filter&#xff09; 3.Pixels Per Unit&#xff1a;是…...

c++中“”符号代表引用还是取内存地址?

c中&#xff0c;“&”符号有时代表引用&#xff0c;有时代表取地址符。 一、引用和取址 引用是一个已存在变量的别名&#xff0c;修改别名的值&#xff0c;原始变量的值也会改变&#xff1b;而取地址符则是得到一个指针&#xff0c;该指针指向变量的内存地址。 1&#x…...

AGV智能搬运机器人:富唯智能引领工业物流高效变革

在智能制造与工业4.0深度融合的今天&#xff0c;物流环节的高效与精准已成为企业核心竞争力的关键。富唯智能凭借其自主研发的AGV智能搬运机器人&#xff0c;以创新技术重塑工业物流标准&#xff0c;助力企业实现降本增效的跨越式发展。 一、技术突破&#xff1a;精准导航与智能…...

今年中国新能源汽车销量已破400万辆 大增42%

快科技5月7日消息&#xff0c;乘联分会公布了2025年4月新能源乘用车厂商批发销量数据。 纵观2025年以来&#xff0c;综合预估今年1-4月累计批发400万辆&#xff0c;同比增长42%。 根据中汽协发布的数据&#xff0c;2024年中国新能源汽车市场产销两旺&#xff0c;全年累计销量…...

广告屏蔽插件的内部细节EasyList 规则详解:为什么广告屏蔽不直接用 CSS/JS?​(彩蛋)

​广告屏蔽插件的内部细节&#xff1a;EasyList 规则详解&#xff1b;为什么广告屏蔽不直接用 CSS/JS屏蔽广告&#xff1f;​​ 我们经常在浏览器中使用一些广告屏蔽插件&#xff08;如 ​uBlock Origin、AdGuard、AdBlock Plus&#xff09;已经成为许多用户的必备插件。 刚开…...

TCGA数据库临床亚型可用!贝叶斯聚类+特征网络分析,这篇 NC 提供的方法可以快速用起来了!

生信碱移 贝叶斯网络聚类 CANclust是一种基于贝叶斯的聚类方法&#xff0c;系统性地对基因突变、细胞遗传学信息和临床指标进行联合建模&#xff0c;用于多种模态数据的联合聚类分析&#xff0c;并识别在患者群体中反复出现的特征模式。 个体的遗传与环境背景决定其应对疾病的…...

好的软件系统

一个“好的软件系统”通常具有以下几个核心特征&#xff0c;简洁来说就是&#xff1a;“能用、好用、易维护、可扩展、安全可靠”。 一个好的软件系统&#xff0c;不只是“能跑起来”&#xff0c;而是“跑得稳、跑得快、跑得久&#xff0c;而且随时能换赛道还能继续跑 高内聚2.…...

某大型交通规划设计院转型实践:数智化破局复杂工程项目管理,实现高效人力资源一体化管理

随着中国经济的快速发展及基础设施建设的不断推进&#xff0c;交通规划设计行业正迎来新的机遇与挑战。作为行业的标杆企业&#xff0c;某大型交通规划设计院&#xff08;以下简称G院&#xff09;自1952年成立以来&#xff0c;始终致力于为公路、市政、建筑、园林规划等领域提供…...

格雷狼优化算法`GWO 通过模拟和优化一个信号处理问题来最大化特定频率下的功率

这段代码是一个Python程序,它使用了多个科学计算库,包括`random`、`numpy`、`matplotlib.pyplot`、`scipy.signal`和`scipy.signal.windows`。程序的主要目的是通过模拟和优化一个信号处理问题来最大化特定频率下的功率。 4. **定义类`class_model`**: - 这个类包含了信号…...

react中的用法——setDisabled dva dispatch effects

setDisabled 在react中&#xff0c;setDisabled通常是指通过状态管理来控制某个组件&#xff08;如按钮、输入框等&#xff09;的禁用状态。虽然react本身没有内置的setDisabled方法&#xff0c;但你可以使用useState钩子来实现类似的功能。以下是一个简单的示例&#xff0c;展…...

深入解析华为交换机中的VRRP原理

在现代网络架构中&#xff0c;高可用性和冗余性是确保网络稳定运行的关键因素。虚拟路由冗余协议&#xff08;VRRP&#xff09;作为一种广泛应用的冗余协议&#xff0c;能够有效地提升网络设备的可用性。特别是在华为交换机中&#xff0c;VRRP的实现为网络提供了更强大的灵活性…...

优艾智合CEO张朝辉荣膺U45杰出青年企业家

2025年是深圳经济特区成立45周年&#xff0c;也是深商会成立20周年。适逢五四青年节来临&#xff0c;深商总会、深圳市商业联合会、深圳市老字号协会、深圳市中小企业公共服务联盟、香港大湾区工商业联合会、广东省粤港澳大湾区产业协同发展联合会、深圳市深商公益基金会、深圳…...

解决HomeAssistant 无法安装 samba share问题

最近家里树莓派上的homeassistant 被折腾崩了&#xff0c;重新安装过程中发现加载项“Official add-ons”里面的“samba share”、“file edit”、“Mosquitto broker”等常用组件都不能安装。报以下错误&#xff1a; [supervisor.docker.interface] Cant install homeassista…...

【工具】HandBrake使用指南:功能详解与视频转码

HandBrake使用指南&#xff1a;功能详解与视频转码 一、前言 高清视频在当下日益普及&#xff0c;从影视制作到个人拍摄&#xff0c;从社交媒体发布到远程教育&#xff0c;如何高效地压缩、转换和管理视频文件的体积与清晰度&#xff0c;成为内容创作者与技术开发者的核心任务…...

代码随想录算法训练营第三十四天

LeetCode题目: 198. 打家劫舍213. 打家劫舍 II337. 打家劫舍 III3341. 到达最后一个房间的最少时间 I(每日一题) 其他: 今日总结 往期打卡 198. 打家劫舍 跳转: 198. 打家劫舍 学习: 代码随想录公开讲解 问题: 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都…...

数字电子技术基础(五十五)——D触发器

1 D触发器 我们知道电平触发在CLK1、S1、R1的时候&#xff0c;有不确定的状态&#xff0c;输出会进入不稳定状态&#xff0c;这种情况下电路可能会导致逻辑错误&#xff0c;通过如果在时钟信号有效期间&#xff0c;如果S和R在此期间发生了多次变化&#xff0c;那么输出会随着发…...