- 博客(20)
- 收藏
- 关注
原创 Golang语言中float64转int可用向上取整或向下取整做四舍五入运算
1.Golang中没有float64转int的调用函数,但是给出了取整运算的函数。2.浮点型转int类型,本质是取整运算。假设x为float64类型取整运算又分为向上取整和向下取整,函数分别为math.Ceil(x)和math.Floor(x)2.1可以对数x分别向上取整和向下取整。2.2可以对数x+0.5,然后向下取整2.3可以对数x-0.5,然后向上取整值得注意的是取整后返回的数值依然是float64类型,需要用int类型强制转换!实例package mainimport (“fm
2021-05-14 20:42:49 20629
原创 Go语言安装Goland:The selected directory is not valid home for SDK.
首先区分SDK和Goland开发工具(环境)SDK下载安装: https://golang.google.cn/dl/开发环境(JetBrains 的系列产品,如 Idea,Pycharm,Goland等)。其中,Goland下载:https://www.jetbrains.com/go/download/
2020-12-08 13:33:05 13663
原创 Hash和哈希(散列)表
HashHash又称为散列,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变成固定长度的输出,该输出就是散列值。Hash算法还有一个特点,就是很难找到逆向规律。在同一函数下,如果两个散列值是不相同的,那么这两个散列值的原始输入也是不同的。Hash算法又被称为散列算法。虽然被称为算法,但是其更像是一种思想。Hash算法没有一个固定的公式,只要符合散列思想的算法都可以被称为Hash算法。哈希表(散列表)若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便
2020-05-15 16:56:45 491
原创 Paillier同态加密算法
Paillier 公钥加密,是基于复合剩余类的困难问题。判定合数剩余类问题是指 N= p * q,其中p和q都是大素数,任意给定y∈ZN2∗y∈Z_{N^2}^*y∈ZN2∗,使得z=yNmodN2z=y^N mod N^2z=yNmodN2,判定z是模N2N^2N2的N次剩余还是非剩余是困难的。与Paillier加密相关数学基础,例如gcd,lcm,二次剩余等理论可以查看我之前写的几篇博客...
2020-05-08 11:31:32 18578 12
原创 ElGamal加密算法的理解
原理:求解离散对数是困难的,而其逆运算可以应用平方乘的方法有效的计算出来。关于定义中循环群、生成元等基础概念的理解可以看上一篇文章整理https://blog.csdn.net/sLiubala/article/details/105952656ElGamal加密算法三部分:密钥生成、加密、解密密钥生成利用生成元g产生一个q阶循环群G从{1,…q-1}中随机选择一个xh=gx ...
2020-05-08 10:48:12 1906 1
原创 单位元、逆元、群、生成元、循环群,有限群的理解
单位元单位元是集合里一种特别的元素,与该集合里的二元运算有关。当单位元与其他元素结合时,并不会改变那些元素,也叫幺元。例:加法中 0 元素;乘法中 1 元素;若 a * e = a , e 称为右单位元;若 e* a = a , e 称为左单位元;若 e * a = a * e = a , e 同时为左单位元和右单位元,则e可称为双边单位元,简称单位元。逆元官方描述:逆元素 是指一个...
2020-05-06 18:16:08 36847 3
原创 gcd,lcm,同余理论、二次剩余、二次非剩余、和n次剩余通俗意义的理解
判断一个数是否为素数:威尔逊定理https://blog.csdn.net/sLiubala/article/details/105906882同余理论:https://blog.csdn.net/sLiubala/article/details/105906999a≡b( mod n ),c≡b( mod n ),则a +(-) c=b +(-) c (mod n),ac=bd(mod n...
2020-05-04 11:48:48 3211 1
原创 同余定理 A* B ≡ C (mod D) 此类公式的理解
AB / D =C即AB 对D取余,结果为C2.[AB-C]/D=0即AB减去C后的结果可整除D,余数为零具体的举例理解可以看上一篇文章。
2020-05-03 18:33:49 2516
原创 威尔逊定理公式的理解
( p -1 )! ≡ -1 ( mod p )1.123*…*(P-1)/p =K …(P-1)即(p-1)的阶乘对于p求余,结果为p-12.[(p-1)! + 1] / p = K …0即(p-1)的阶乘加1可整除p,对p求余为0对类似 A* B ≡ C (mod D) 的理解,可以查看下一篇文章。...
2020-05-03 18:28:39 2046
转载 go语言之进阶篇结构体成员变量为指针数据类型匿名字段
1、结构体指针类型匿名字段示例:package mainimport “fmt”type Person struct {name string //名字sex byte //性别, 字符类型age int //年龄}type Student struct {*Person //指针类型id intaddr string}func main(...
2020-02-25 16:36:10 468
原创 go语言扩展欧几里得算法求乘法逆元代码
package mainimport “fmt”func main(){var s intvar n intfmt.Scan(&s)fmt.Scan(&n)var x,y *intx=new(int)y=new(int)*x=0*y=0var d int=Exgcd(s,n,x,y)fmt.Println(*x,*y)var m int=Mod_reve...
2019-09-03 10:45:43 614
原创 go语言 在函数中传递指针变量 经典案例
package mainimport “fmt”func swap(p1,p2 *int){*p1,*p2=*p2,*p1}func main(){a,b:=10,20swap(&a,&b)fmt.Println(a,b)}
2019-09-03 09:48:58 446
转载 简要分析DES对称加密算法完成过程
原文:https://blog.csdn.net/m0_37962600/article/details/79912654#commentsedit总结:原理:该算法是是一个利用56+8奇偶校验位为64位的密钥,以64位为单位的块数据进行加密。计算过程:一、按照交换表-移位-交换表规则生成16个子钥(48位)二、用得到的子密钥对64位(K1,K2,…K16)通过子密钥交换规则生成最终L...
2019-08-27 16:56:13 550
原创 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
说明apt程序正在运行$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock$ sudo apt update
2019-02-26 16:59:14 221
原创 linux系统ubuntu18.04安装go的方法
1.下载GO安装包,谷歌官网有可能进不去,下面这个网址可以直接下载。$ wget https://golang.google.cn/dl/go1.11.5.linux-amd64.tar.gz2.在此权限直接解压压缩包到usr/local$ sudo tar -C /usr/local -xzf go1.11.5.linux-amd64.tar.gz3.创建GO目录$ mkdir $HO...
2019-02-25 15:16:05 619
原创 用eclipse运行java程序
好长时间没有用过eclipse,竟然忘记了程序进去的入口。jdk的安装地址:https://www.oracle.com/technetwork/java/javase/downloads/index.htmlhttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmleclipse安...
2019-01-29 09:10:11 6485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人