Golang bitset 基本使用
安装:
go get github.com/bits-and-blooms/bitset
下面代码把fmtx换成fmt就行
//------------基本操作------------//构建一个64bit长度的bitsetb := bitset.New(64)//放入一个数b.Set(10)fmtx.Println("add-10:", b.DumpAsBits()) // 0000000000000000000000000000000000000000000000000000010000000000//删除一个值b.Set(12)b.Clear(10)fmtx.Println("del-10:", b.DumpAsBits()) //0000000000000000000000000000000000000000000000000001000000000000//测试b.Set(2).Set(6)fmtx.Println("add-2-6:", b.DumpAsBits()) //0000000000000000000000000000000000000000000000000001000001000100fmtx.Println("test2:", b.Test(2), " test5:", b.Test(5)) //[test2: true test5: false]b.Set(2) //重复设置fmtx.Println("test2:", b.Test(2), " adds2:", b.DumpAsBits()) //[test2: true adds2: 0000000000000000000000000000000000000000000000000001000001000100.]//----------------指定位置操作---------------//指定位置操作a := &bitset.BitSet{}a.Set(3)//在指定位置插入0a.InsertAt(3)fmtx.Println("指定位置插入0:", a.DumpAsBits()) //0000000000000000000000000000000000000000000000000000000000010000//在指定位置需改a.SetTo(4, false)fmtx.Println("指定位置4修改false:", a.DumpAsBits()) //0000000000000000000000000000000000000000000000000000000000000000a.Set(63)fmtx.Println("指定位置63修改true:", a.DumpAsBits()) //1000000000000000000000000000000000000000000000000000000000000000a.Set(3).DeleteAt(3) //删除了就全都往右移了fmtx.Println("指定位置3删除:", a.DumpAsBits()) //0100000000000000000000000000000000000000000000000000000000000000a.Set(63)fmtx.Println("再指定位置63:", a.DumpAsBits()) //1100000000000000000000000000000000000000000000000000000000000000//---------------两个bitsets交互----------------k := &bitset.BitSet{}j := &bitset.BitSet{}k.Set(1).Set(3).Set(5)j.Set(7).Set(3).Set(5)//交集fmtx.Println(k.Intersection(j)) //{3,5}//并集fmtx.Println(k.Union(j)) //{1,3,5,7}//差集fmtx.Println(k.Difference(j)) //{1}//全等fmtx.Println(k.Equal(j)) // false//遍历arr := bitset.New(64)arr.Set(1).Set(3).Set(5).Set(7)for i, e := arr.NextSet(0); e; i, e = arr.NextSet(i + 1) {fmtx.Println(i) // 1 3 5 7}
布隆过滤器-假阳性率计算公式

可知在哈希函数的个数k一定的情况下:
- 位数组长度m越大,假阳性率越低;
- 已插入元素的个数n越大,假阳性率越高。
相关文章:
Golang bitset 基本使用
安装: go get github.com/bits-and-blooms/bitset下面代码把fmtx换成fmt就行 //------------基本操作------------//构建一个64bit长度的bitsetb : bitset.New(64)//放入一个数b.Set(10)fmtx.Println("add-10:", b.DumpAsBits()) // 0000000…...
sql 分组讨论,二级分组(非2个字段分组),使用 窗口函数和普通分组实现
1. 二级分组需求 先按照一个字段分组,在按照 第二个字段分组。之后,如果 这个 二级分组中的数据,是 > 1条的。就筛选出来。 比如: 先按照 站点分组,再按照 设备分组, 即:如果站点上配置了…...
业务中如何过滤敏感词
在我们访问网站的时候,如果发现我们发布的内容有色情暴力的东西等等,会屏蔽掉,这种行为就是过滤敏感词。 从技术层面实现起来,其实比较简单,因为我们输入的内容就是一个大型的字符串,我们要调用某些api来判…...
用服务器搭建网站需要做什么
网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。不同领域的网页设计,网页图形设计,界面设计,创作,其中包括标准化的代码和专有软件,用户体验设计和搜索引擎优化。许多人…...
clickhouse 删除操作
OLAP 数据库设计的宗旨在于分析适合一次插入多次查询的业务场景,市面上成熟的 AP 数据库在更新和删除操作上支持的均不是很好,当然 clickhouse 也不例外。但是不友好不代表不支持,本文主要介绍在 clickhouse 中如何实现数据的删除,…...
C 语言中,「.」与「->」有什么区别?
使用“.”的话,只需要声明一个结构体。格式是结构体类型名结构体名。然后通过结构体名加上“.”再加上域名,就可以引用结构体的域了。因为结构体的内存是自动分配的,就像使用int a;一样。而使用“->”的话,需要声明一个结构体的…...
github pages 用法详解 发布自己的网站
github pages 基础用法 URL 规则 假设你的 github 帐号为 mygithub,需要发布的仓库名为 myrepo,那么 pages 的 URL 为: https://mygithub.github.io/myrepo 添加内容 用任意编辑器写好(或者生成)标准的网页内容&a…...
坤简炫酷的JQuery轮播图插件
介绍: 找到了一个炫酷的JQuery轮播图插件,只需要配置三四行代码就可以实现很多二维三维炫酷的切换效果。 视频效果及教程: https://www.bilibili.com/video/BV1Fu4y1d776/ 代码: https://github.com/w-x-x-w/AwesomeWeb 使用…...
C# 条件编译
C# 条件编译 C# 条件编译:根据不同的需求,编译生成不同的程序版本,条件编译是一种编译预处理命令,它是在编译代码之前对源代码进行处理。它可以根据条件,决定是否编译某段代码 条件编译的三种形式: 第一种…...
IntelliJ IDEA如何重新弹出git身份验证窗口
1、点击File菜单—>点击Settings—>点击Appearance & Behavior—>点击System Settings—>点击Passwords—>选中Do not save, forget passwords after restart—>点击Apply—>点击OK,如下所示: 2、重启IntelliJ IDEA—>通过g…...
【雕爷学编程】Arduino动手做(200)---WS2812B幻彩LED灯带4
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…...
【雕爷学编程】Arduino动手做(201)---DFRobot 行空板03
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…...
Spring中Bean的“一生”(生命周期)
文章目录 一、图解二、文字解析总结 一、图解 >注:处于同一行的执行顺序是从左往右 二、文字解析 SpringBean的生命周期总体分为四个阶段:实例化>属性注入>初始化>销毁 Step1 实例化Bean:根据配置文件中Bean的定义,…...
安卓:LitePal操作数据库
目录 一、LitePal介绍 常用方法: 1、插入数据: 2、更新数据: 3、删除数据: 4、查询数据: 二、LitePal的基本用法: 1、集成LitePal: 2、创建LitePal配置文件: 3、创建模型类…...
【JavaEE初阶】了解JVM
文章目录 一. JVM内存区域划分二. JVM类加载机制2.1 类加载整体流程2.2 类加载的时机2.3 双亲委派模型(经典) 三. JVM垃圾回收机制(GC)3.1 GC实际工作过程3.1.1 找到垃圾/判定垃圾1. 引用计数(不是java的做法,Python/PHP)2. 可达性分析(Java的做法) 3.1.2 清理垃圾1. 标记清除2…...
基于vue2.0和elementUi的vue农历日期组件vue-jlunar-datepicker(插件)
vue-jlunar-datepicker(插件) vue实现农历日历插件——vue-jlunar-datepicker插件 这个插件本身是基于vue2.0和elementUi框架来实现的。 安装 vue-jlunar-datepicker 插件 npm install vue-jlunar-datepicker --save // 如果安装过程中,出现…...
Python爬虫——selenium_元素定位
元素定位:自动化要做的就是模拟鼠标和键盘来操作这些元素,点击,输入等等。操作这些元素前首先要找到它们,WebDriver提供很多定位元素的方法 from selenium import webdriver# 创建浏览器对象 path files/chromedriver.exe brows…...
短视频内容平台(如TikTok、Instagram Reel、YouTube Shorts)的系统设计
现在,短视频内容已成为新趋势,每个人都在从TikTok、Instagram、YouTube等平台上消费这些内容。让我们看看如何为TikTok创建一个系统。 这样的应用程序看起来很小,但在后台有很多事情正在进行。以下是相关的挑战: •由于该应用程序…...
【git】Git 回退到指定版本:
文章目录 方法一: 使用 git reset 命令方法二:使用 git revert 命令方法三:使用 git checkout 命令常见的错误及其解决办法如下: 方法一: 使用 git reset 命令 命令可以将当前分支的 HEAD 指针指向指定的提交,从而回退代码到指定版…...
kibana+nginx配置密码 ubuntu
JAVA进阶之路-nginx设置密码 Kibana——通过Nginx代理Kibana并实现登陆认证 需要配置一下nginx文件 nginx配置文件详解 密码生成安装软件 apt install apache2-utils...
自如”增益租3.0”模式:以真实案例解析,做值得信赖的资产托管方案
一、从真实案例出发:理解增益租模式的运作逻辑近期,网络上流传着一些关于自如“增益租3.0”模式的案例讨论。其中,有业主反馈将毛坯房委托后,因选择分期支付装修费用,导致前期每月到手租金较低,且短期内未获…...
OpenClaw+优云智算Coding Plan:从灵感到成文,再到发布的全流程AI自动化肆
1.安装环境准备 1.1.查看物理内存 [rootaiserver ~]# free -m 1.2.操作系统版本 [rootaiserver ~]# cat /etc/redhat-release 1.3.操作系统内存 [rootaiserver ~]# df -h /dev/shm/ 1.4.磁盘空间 [rootaiserver ~]# df -TH [rootaiserver ~]# df -h /tmp/ [rootaiserver ~]# d…...
CTF逆向实战:从RC4到Base64,详解CTFshow萌新赛逆向题解
1. RC4加密算法在CTF逆向中的实战应用 RC4算法作为CTF逆向题目中的常客,经常出现在各类比赛中。这种流加密算法看似简单,但在实际解题过程中往往会遇到各种变种和陷阱。记得我第一次遇到RC4加密的题目时,完全不知道从何下手,现在回…...
IDA Pro 9.3 更新- 强大的反汇编程序、反编译器和多功能调试器工具
简介 IDA Pro 9.3 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器 A powerful disassembler, decompiler and a versatile debugger. In one tool.IDA Pro 一个强大的反汇编程序、反编译器和多功能调试器。集成在一个工具中。 请访问原文链接&#x…...
Bypass Paywalls Clean:信息获取工具的技术解析与实践指南
Bypass Paywalls Clean:信息获取工具的技术解析与实践指南 破解信息壁垒:智能识别系统工作原理解析 在学术研究中,当你尝试访问最新的行业报告时,突然弹出的付费提示往往中断研究流程;专业人士在跟踪领域动态时&#x…...
Unity URP 下 Shader 变体 (Variants):multi_compile 与 shader_feature的关键字管理及变体爆炸防控策略
1什么是 Shader 变体?在 GPU 着色器世界里,预处理器宏(Preprocessor Macro)是代码复用的核心手段。Unity 会在 构建期(Build Time)对每一组宏组合分别编译出一份独立的 Shader 程序,这每一份都叫…...
深入AUTOSAR CAN-TP状态机:从首帧(FF)、流控帧(FC)到连续帧(CF)的完整数据流拆解
深入AUTOSAR CAN-TP状态机:从首帧(FF)、流控帧(FC)到连续帧(CF)的完整数据流拆解 在汽车电子系统的开发中,诊断通信扮演着至关重要的角色。AUTOSAR CAN-TP(CAN Transport Protocol)作为UDS(Unified Diagnostic Service…...
【限时解密】2026奇点大会AI测试赛道TOP3方案供应商技术白皮书精要(含性能压测原始数据+误报率基线值),仅开放至大会倒计时72小时
第一章:2026奇点智能技术大会:AI原生测试自动化 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次将“AI原生测试自动化”确立为核心议题,标志着测试范式从脚本驱动向语义理解与自主演化的根本性跃迁。系统不再依赖人工编排的断言…...
智能医学影像分析系统 手骨X光影像的骨折检测与分类任务 手骨x光识别10653期(数据集+模型+界面+代码)
手骨x光识别10653期 README 项目概述 类别 远端指间关节 掌指关节 近端指间关节 桡骨 尺骨 腕部/手腕手骨X光影像数据集分析数据概览关键信息总数量及类别8900,类别:6数据集数量(取整)8900数据格式与应用价值YoloVOC,适…...
D4案例2 Nginx/Java服务自定义镜像部署及(NAS/NFS文件存储)动静分离实现
D4案例2 Nginx/Java服务自定义镜像部署及(NAS/NFS文件存储)动静分离实现 第一步:重新创建干净的命名空间 kubectl get namespace linux36 -o json | jq .spec.finalizers=[] | kubectl replace --raw /api/v1/namespaces/linux36/finalize -f - kubectl delete deploy -n linu…...
