BSGS-BabyStepGiantStep算法+拓展】的更多相关文章

代码測试环境:Hadoop2.4+Mahout1.0 前面博客:mahout贝叶斯算法开发思路(拓展篇)1和mahout贝叶斯算法开发思路(拓展篇)2 分析了Mahout中贝叶斯算法针对数值型数据的处理.在前面这两篇博客中并没有关于怎样分类不带标签的原始数据的处理. 以下这篇博客就针对这种数据进行处理. 最新版(适合Hadoop2.4+mahout1.0环境)源代码以及jar包能够在这里下载Mahout贝叶斯分类不含标签数据: 下载后參考使用里面的jar包中的fz.bayes.model.Bay…
学习数学真是一件赛艇的事. BSGS名字听起来非常有意思,力拔山兮气盖世,北上广深,小步大步...算法其实更有意思,它是用来求解一个方程的 A^x ≡ B (mod P) 是不是特别眼熟,有几个式子长的特别像,先观察一下: 一:快速幂:      求A^B mod P的值 二:乘法逆元 A*x ≡ 1 (mod P)     或者       A*x ≡ B (mod P) 三:欧拉定理       A^φ(P) ≡ 1 (mod P)    (A,P互质) 四:费马小定理    A^(P-1)…
一.Floyd算法本质 首先,关于Floyd算法: Floyd-Warshall算法是一种在具有正或负边缘权重(但没有负周期)的加权图中找到最短路径的算法.算法的单个执行将找到所有顶点对之间的最短路径的长度(加权). 通俗一点说,Floyd就是可以用于求解多源汇最短路径的算法,也就是求连通图中任意两点间的最短路径,当然,如果不连通,它返回的就是无穷大(初始化为无穷大).Floyd可以处理负权,但无法处理有负权环的图. 接下去进入正题: 众所周知,Floyd算法本质其实是动态规划.它其实是由三维数…
\(BSGS(baby-step-giant-step)\)算法是用来解高次同余方程的最小非负整数解的算法,即形如这个的方程: \(a^x\equiv b(mod\ p)\) 其中\(p\)为质数(其实只要(\((a,p)=1\)即可) 首先考虑暴力怎么解:由费马小定理可知\(a^{p-1}\equiv 1(mod\ p)\),也就是说如果在\([0,p-1]\)内无解的话,方程就是无解的.所以我们从小到大枚举\([0,p-1]\)中的每一个数,满足方程就结束.但是这里\(p-1\)并不一定是最…
什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSGS算法中是要求a^m在%c条件下的逆元的,如果a.c不互质根本就没有逆元.) 如果x有解,那么0<=x<C,为什么? 我们可以回忆一下欧拉定理: 对于c是素数的情况,φ(c)=c-1 那么既然我们知道a^0=1,a^φ(c)=1(在%c的条件下).那么0~φ(c)必定是一个循环节(不一定是最小的)…
首先说明一点,此篇blog解决的问题是就下面的数据如何应用mahout中的贝叶斯算法?(这个问题是在上篇(...完结篇)blog最后留的问题,如果想直接使用该工具,可以在mahout贝叶斯算法拓展下载): 0.2 0.3 0.4:1 0.32 0.43 0.45:1 0.23 0.33 0.54:1 2.4 2.5 2.6:2 2.3 2.2 2.1:2 5.4 7.2 7.2:3 5.6 7 6:3 5.8 7.1 6.3:3 6 6 5.4:3 11 12 13:4 前篇blog上面的数据在…
如果想直接下面算法调用包,可以直接在mahout贝叶斯算法拓展下载,该算法调用的方式如下: $HADOOP_HOME/bin hadoop jar mahout.jar mahout.fansy.bayes.BayerRunner -i hdfs_input_path -o hdfs_output_path -scl : -scv , 调用参数如下: usage: <command> [Generic Options] [Job-Specific Options] Generic Option…
BSGS算法 \(Baby Step Giant Step\)算法,即大步小步算法,缩写为\(BSGS\) 拔山盖世算法 它是用来解决这样一类问题 \(y^x = z (mod\ p)\),给定\(y,z,p>=1\)求解\(x\) 普通的\(BSGS\)只能用来解决\(gcd(y,p)=1\)的情况 设\(x=a*m+b, m=\lceil \sqrt p \rceil, a\in[0,m), b\in[0,m)\) 那么\(y^{a*m}=z*y^{-b} (mod\ p)\) 怎么求解,为…
BSGS \(BSGS\)算法又称大步小步\((Baby-Step-Giant-Step)\)算法 \(BSGS\)算法主要用于解以下同余方程 \[A^x\equiv B(mod\ p)\]其中\((A,P)=1\),即\(A\)与\(P\)互质 前置知识 根据欧拉定理\(A^{ \varphi(p)} \equiv1(mod\ p)\),所以\(A^x(mod\ p)\)的循环节为\(\varphi(p)\).也就是说如果上面的方程有解\(x\),那么肯定有\(x \in [0,\varphi…
目录 定义 原理 朴素算法 数论分块 例题 Luogu2485 [SDOI2011]计算器 题解 代码 扩展 例题 Luogu4195 [模板]exBSGS/Spoj3105 Mod 代码 之前写了一篇关于BSGS的学习笔记.因为太过老旧,就想修改一些错误,顺便添上扩展BSGS的部分.可惜博客园不能对已发布的随笔修改编辑器,索性重新发出来.旧文已删. 定义 Baby-Step-Giant-Step算法,简称BSGS算法,又称大步小步算法,用于求方程\(a^x\equiv b(\text{mod…