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

宣威市住房和城乡建设局网站下载中心网站建设需要租用什么

宣威市住房和城乡建设局网站下载中心,网站建设需要租用什么,普洱市网站建设,软件开发技术文章目录BloomFilter简单介绍BloomFilter中的数学知识fpp(误判率/假阳性)的计算k的最小值公式总结编程语言实现golang的实现[已知n, p求m和k](https://github.com/bits-and-blooms/bloom/blob/master/bloom.go#L133)参考BloomFilter简单介绍 BloomFilter我们可能经常听到也在使… 文章目录BloomFilter简单介绍BloomFilter中的数学知识fpp(误判率/假阳性)的计算k的最小值公式总结编程语言实现golang的实现[已知n, p求m和k](https://github.com/bits-and-blooms/bloom/blob/master/bloom.go#L133)参考BloomFilter简单介绍 BloomFilter我们可能经常听到也在使用, 它的特点是如果判断结果为不存在, 则一定不存在; 如果判断为存在, 则可能存在. 如下图示例说明当我们判断z元素存在时, 其实是不存在的, 即存在有概率性. 如上图, 长为m16的二进制向量, 初始全为0; k3(即添加一个元素需要将3个bit设置为1), 对n3个元素进行添加操作. BloomFilter几个关键量定义: m: 二进制向量大小(多少个二进制位) n: 要存放的元素个数 k: 哈希函数的个数, 或者说每添加一个元素都要进行k次计算 fpp或者简写为p: 误判率(false positive rate), 即 使用bloomfilter判断为存在时, 但实际不存在的概率 BloomFilter中的数学知识 fpp(误判率/假阳性)的计算 BloomFilter主要的数学原理是: 在某一范围内(1xm)1xm)1xm)(x为整数, m通常是很大的, 如106级别10^6级别106级别), 任意选取两个整数i,j,i和j可重复选取i, j, i和j可重复选取i,j,i和j可重复选取, 则其相等的概率是非常小的: mm21m\dfrac{m}{m^2}\dfrac{1}{m}m2m​m1​ 我们假定hash计算是均匀的, 即每次hash会随机地将m位中的一位设置为1. 那么: 一次hash计算(如h1(x)h1(x)h1(x))后, 任一位被 置为1 的概率为: 1m\dfrac{1}{m}m1​一次hash计算(如h1(x)h1(x)h1(x))后, 任一位 还是0(即未被置为1) 的概率为: 1−1m1 - \dfrac{1}{m}1−m1​添加一个元素(如bloomFilter.Add(x), 即执行k次hash)后, 任一位还是0的概率为: (1−1m)k(1 - \dfrac{1}{m})^k(1−m1​)k添加n个元素后(如上图中的n3个元素:x,y,z), 任一位还是0的概率为: (1−1m)kn(1 - \dfrac{1}{m})^{kn}(1−m1​)kn , 任一位为1的概率为 1−(1−1m)kn1- (1 - \dfrac{1}{m})^{kn}1−(1−m1​)kn如果将1个新的元素添加到已存在n个元素的BloomFilter中则任一位已经为1的概率与上面相同为1−(1−1m)kn1- (1 - \dfrac{1}{m})^{kn}1−(1−m1​)kn . 那么添加这个新元素时, k个比特都为1(相当于新元素和已有元素已经分不清了)的概率(此即为新插入元素的误识别率)为 p[1−(1−1m)kn]kp [1- (1 - \dfrac{1}{m})^{kn}]^{k} p[1−(1−m1​)kn]k 通常来说, m是一个非常大的数(1MiB内存就有220×8≈800万2^{20}\times{8}\approx 800万220×8≈800万个bit), 并且我们有: lim⁡x→∞(1x)1xe{ \lim\limits_{x \to \infin} (1x)^{\frac{1}{x}} e}x→∞lim​(1x)x1​e 那么在工程实践中, 可以认为p的近似值为: p[1−(1−1m)kn]k[1−(1−1m)−m×−knm]k≈(1−e−knm)k(当m很大时,将−1m看作x)\begin{aligned} p [1- (1 - \dfrac{1}{m})^{kn}]^{k} \\ [1- (1 - \dfrac{1}{m})^{-m\times\frac{-kn}{m}}]^{k} \\ \approx (1-e^{-\frac{kn}{m}})^{k} \enspace (当m很大时, 将 -\dfrac{1}{m}看 作x) \end{aligned} p​[1−(1−m1​)kn]k[1−(1−m1​)−m×m−kn​]k≈(1−e−mkn​)k(当m很大时,将−m1​看作x)​ k的最小值 计算过程参考: https://cs.stackexchange.com/questions/132088/how-is-the-optimal-number-of-hashes-is-derived-in-bloom-filter 已经遗忘的知识: 求导公式: (ln⁡x)′1x(\ln{x})^{} \dfrac{1}{x}(lnx)′x1​求导公式: (enx)′nenx(\bold{e}^{nx})^{} n\bold{e}^{nx}(enx)′nenx 在某些情况下, 我们对n, m, 的值可以给一个估算值, 以此来获得最小的p(即尽可能准确判断), 那么k就是一个变量了, 问题就变为求 (1−e−knm)k(1-e^{-\frac{kn}{m}})^{k}(1−e−mkn​)k的最小值. 令f(k)(1−e−knm)kf(k)(1-e^{-\frac{kn}{m}})^{k}f(k)(1−e−mkn​)k, 那么 两边取对数有:ln⁡f(k)ln⁡(1−e−knm)kkln⁡(1−e−knm)设g(k)kln⁡(1−e−knm),那么:g′(k)ln⁡(1−e−knm)knme−knm1−e−knm令xe−knm,x∈(0,1),那么有h(x)ln⁡(1−x)−x1−xln⁡x(注意k用−mnlnx替换)(1−x)ln⁡(1−x)−xln⁡x1−x(x∈0,1)\begin{aligned} 两边取对数有: \\ \ln f(k)\ln (1-e^{-\frac{kn}{m}})^{k} k \ln(1-e^{-\frac{kn}{m}}) \\ 设 g(k) k\ln{(1-e^{-\frac{kn}{m}})}, 那么:\\ g{}(k) \ln{(1-e^{-\frac{kn}{m}})} k\dfrac{\frac{n}{m}e^{-\frac{kn}{m}}}{1-e^{-\frac{kn}{m}}} \enspace \\ 令 x e^{-\frac{kn}{m}}, x \in(0, 1), 那么有 \\ h(x) \ln(1-x) - \dfrac{x}{1-x} \ln x \enspace (注意k用-\dfrac{m}{n}lnx替换) \\ \enspace \enspace \enspace \enspace \dfrac{(1-x) \ln(1-x)-x \ln x}{1-x} \enspace (x\in{0, 1}) \end{aligned} ​两边取对数有:lnf(k)ln(1−e−mkn​)kkln(1−e−mkn​)设g(k)kln(1−e−mkn​),那么:g′(k)ln(1−e−mkn​)k1−e−mkn​mn​e−mkn​​令xe−mkn​,x∈(0,1),那么有h(x)ln(1−x)−1−xx​lnx(注意k用−nm​lnx替换)1−x(1−x)ln(1−x)−xlnx​(x∈0,1)​ 对 h(x)(1−x)ln⁡(1−x)−xln⁡x1−x(x∈0,1)h(x) \dfrac{(1-x)\ln(1-x)-x \ln x}{1-x} \enspace (x\in{0, 1})h(x)1−x(1−x)ln(1−x)−xlnx​(x∈0,1), 不难看出: 当x12时,h(x)0x\dfrac{1}{2}时, h(x)0x21​时,h(x)0当x12时,h(x)0x\dfrac{1}{2}时,h(x)0x21​时,h(x)0当x12时,h(x)0x\dfrac{1}{2}时,h(x)0x21​时,h(x)0 站在巨人的肩膀上, 我们可以直接在这里看: 显然在x∈(0,1)范围内,当x0.5时,h(x)最小x\in(0, 1)范围内, 当x0.5时, h(x)最小x∈(0,1)范围内,当x0.5时,h(x)最小, 此时kmnln2k\dfrac{m}{n}ln2knm​ln2 也就是说: 当kmnln2k \dfrac{m}{n}ln2knm​ln2时(想象k非常接近0), xe−knmx e^{-\frac{kn}{m}}xe−mkn​会非常接近1, 此时x12x\dfrac{1}{2}x21​, h(x)0h(x)0h(x)0 ⇒ f(k)在变小; 当kmnln2k \dfrac{m}{n}ln2knm​ln2时(想象k非常接近0), xe−knmx e^{-\frac{kn}{m}}xe−mkn​会非常接近0, 此时x12x\dfrac{1}{2}x21​, h(x)0h(x)0h(x)0 ⇒ f(k)在变大; 所以kmnln2k\dfrac{m}{n}ln2knm​ln2时会使得f(k)f(k)f(k)最小, 即此时p最小. 公式总结 误判率公式: p[1−(1−1m)kn]kp [1- (1 - \dfrac{1}{m})^{kn}]^{k}p[1−(1−m1​)kn]k误判率近似公式(当m很大时): p≈(1−e−knm)kp \approx (1-e^{-\frac{kn}{m}})^{k}p≈(1−e−mkn​)k已知m, n, k的最小值(近似)为: kmnln⁡2≈0.7mnk\dfrac{m}{n}\ln{2} \approx 0.7\dfrac{m}{n}knm​ln2≈0.7nm​已知n, p, 且k取最小时, m−nln⁡p(ln2)2m-\dfrac{n\ln{p}}{(ln2)^{2}}m−(ln2)2nlnp​ 编程语言实现 golang的实现 https://github.com/bits-and-blooms/bloom 已知n, p求m和k func EstimateParameters(n uint, p float64) (m uint, k uint) {m uint(math.Ceil(-1 * float64(n) * math.Log(p) / math.Pow(math.Log(2), 2)))k uint(math.Ceil(math.Log(2) * float64(m) / float64(n)))return }参考 https://en.wikipedia.org/wiki/Bloom_filterhttps://cs.stackexchange.com/questions/132088/how-is-the-optimal-number-of-hashes-is-derived-in-bloom-filter (完)
http://www.sczhlp.com/news/216534/

相关文章:

  • 大良营销网站建设精英网站建设服务属于信息技术服务吗
  • 网站建设属那种营业wordpress手机 问题
  • 泸州市住房和城乡建设局网站國家建设协会官方网站
  • 江门网站建设技术托管商业网站规划
  • 外国人做那个视频网站吗wordpress免费问答模板
  • 山东做网站的服务好的常州网站建设
  • 网站备案为什么这么慢天津网页制作网页报价
  • 湖北外贸网站建设合肥搜索引擎推广
  • 可以做自己的单机网站网络舆情分析研判报告
  • 山西企业模板建站php做视频网站有哪些
  • 桃花岛网站是什么兼职网站编辑
  • 科技类网站色彩搭配外包公司网络安全管理制度
  • 建一个素材网站多少钱好的网站收入
  • 繁体商城网站模板网站程序开发要点
  • 汕头网站建设网站建设群晖wordpress打开慢
  • 个人简介网站源码怎么做美食的网站
  • 三合一网站建设公司哪里网站备案方便快
  • 淘宝客网站名辽宁建设工程信息网登录入口官方
  • 婚纱摄影网站模板聊城开发网站建设
  • 2025年主轴维修厂家企业推荐: 电/高速/精密/磨床/进口磨床/加工中心电/数控机床/高速电主轴维修厂家,服务商助力制造企业降本增效
  • 2025年磨床电主轴先升级推荐榜:国产/进口/内圆/外圆/无心/平面/来图定制磨床电主轴厂家,聚焦精密制造核心
  • 在写left join的时候 是大表在左侧 还是小表在左侧(二)
  • 在写left join的时候 是大表在左侧 还是小表在左侧(一)
  • 网站建设 选择题卓越职业院校建设专题网站
  • 用响应式做旧书网站深圳网站制作必找祥奔科技
  • 建设一个购物网站需要什么湖北省建设厅七大员报名网站
  • 悦昂网站建设黄山网站优化
  • 网站基本设置什么网站流量多
  • WordPress网站接入公众号企业网站引导页模板
  • 做贸易选哪家网站像乐视做硬件的视频网站