Go语言中文网 为您找到相关结果 151

Golang计算MD5

Golang计算MD5 1.单向加密 什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密。这些学术 解释都不用管它,反正就是一群数学家老爷爷通过各种证明得到的一种方法,用这种方法加密 过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。既然加密者自己 都无法解密,那这乖僻的加密算法有个毛用阿?哪些场景需要这种有去无回的加密方式呢? 这里先了解下单向加密的特征: 首先,不可解密性在上面已经提到了,目的就是掩藏明文。其次单向加密算法的另外两个特征 使得它更接地气,第一是任意两段明文数据,加密以后的密文不能是相同的; 第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。这样当我们需要表征一段 唯一的内容,但是有不想别人知道该段内容时或者仅仅是为一个内容...阅读全文

博文 2014-12-30 12:00:01 YangJunjie

goproxy和msocks简介

goproxy是我个人写的,和shadowsocks同类的软件。当然,在设计之初我完全不知道shadowsocks的存在,goproxy的最初目标也不是成为shadowsocks的同类。只是我一直无法实现一个可靠的,能够达成目标的系统。最后想,那这样吧,我找一个跳一跳能够够到的苹果。大幅简化的结果就是goproxy——后来我才知道shadowsocks。 shadowsocks的基本原理 shadowsocks的基本概念,就是利用某种不同于SSL的协议,将本地的socks数据流转发到远程。这个协议,在默认版本中是一个凯撒变换,后来有了aes等加密算法。goproxy也采用了类似的做法,同样支持aes等加密算法。在每次连接时,客户端先用加密通道连接服务器端,然后完成整个连接通路。这样的设计鲁棒...阅读全文

博文 2014-10-06 06:06:32 shell909090

Golang 字符串比较,一个不大不小的坑

背景是酱紫的,对一串字符串做了AES解密后得到的密文,从密文中截取了签名,和之前存在数据库里的签名进行比较验签的时候,一直失败,打印两个签名值出来看,一模一样... Google后在一篇博客里发现了这句'String values are compared byte-wise (lexically).' and 'zero value for string is "" ',大概的意思就是,string 的比较实际上是比较对应的byte数组的,之后打印了两个签名的byte值,玄机显现,密文中的签名值最后有7,7,7,7,7]这样的值,目测是进行AES加密的时候加密算法补位导致的... 解决办法,根据数据库中签名值的长度对密文中的签名做了截取,然后比较,妥了... 推荐阅读:AES 图文详解,G...阅读全文

博文 2015-08-06 16:00:01 冰河垂钓

golang shadowsock 安装部署

最近一直在用ss但是python的并发并不是很好所以我改换成golang 的ss了。代码下载 编译好的直接下载 server配置(跟官方的不一样): 新建文件夹 进入文件夹后新建文件:config.json pid.cfg start.sh test.log config 是server运行的配置文件 pid.cfg 是server运行的进程号记录的位置 start.sh 是服务启动时候运行的脚本 test.log 这个是排查故障的时候用的错误记录文件 config.json 12345678{ "server":"XXX.com", //服务器ip地址或者绑定的域名 "server_port":8088, // 运行的端口 "local_port":1080, //本地运行端口 "pass...阅读全文

博文 2015-03-09 12:02:02 jianyingLi

AlphaGo的论文的译文,关于深度神经网络,蒙特卡洛树搜索:Mastering the game of Go with deep neural networks and tree search

前言: 围棋的英文是 the game of go,标题翻译为:《用深度神经网络和树搜索征服围棋》。译者简介:大三,211,计算机科学与技术专业,平均分92分,专业第一;英文水准:托福 103分,GRE v158 + q167 + AW3.5。为了更好地翻译此文,笔者查看了很多资料。笔者翻译此论文已尽全力,不足之处希望读者指出。 在AlphaGo的影响之下,全社会对人工智能的关注进一步提升。在笔者考完GRE的当天,3月12日,AlphaGo 第三次击败李世石。在3月15日总比分定格为4:1,随后AlphaGo的围棋排名世界来到第二。 论文的英文原文点击这里拜读 编者按:吐槽CSDN的后台服务器,在我用LaTeX编写的公式结尾都加上了一个“|”,比如:公式公式。这真是一个醉人的Bug。2014...阅读全文

博文 2016-03-22 19:00:01 u013390476

Golang加密系列之AES

这里我们只讨论使用aes加密算法,pkcs7padding,CBC模式模式进行加密。 加密代码: func Encrypt(plantText, key []byte) ([]byte, error) { block, err := aes.NewCipher(key) //选择加密算法 if err != nil { return nil, err } plantText = PKCS7Padding(plantText, block.BlockSize()) blockModel := cipher.NewCBCEncrypter(block, key) ciphertext := make([]byte, len(plantText)) blockModel.CryptBlocks(c...阅读全文

博文 2015-09-02 11:00:01 君子藏锋

geohash算法以及求最邻近区域的点-golang

geohash算法以及求最邻近区域的点, 对这两个算法封装成了golang package, 写LBS服务程序的时候有用。https://github.com/gansidui/geohashhttps://github.com/gansidui/nearest package main import ( "fmt" "github.com/gansidui/geohash" ) func main() { latitude := 39.92324 longitude := 116.3906 precision := 5 hash, box := geohash.Encode(latitude, longitude, precision) fmt.Println(hash) fmt.Prin...阅读全文

博文 2014-12-30 13:00:01 bluezwt

go语言中椭圆曲线加密算法的使用

椭圆曲线加密算法,使用golang的实现! 最近在看一些关于比特币的东西,里边有个椭圆曲线加密算法,查了下,感觉很不错! 与经典的RSA,DSA等公钥密码体制相比,椭圆密码体制有以下优点: 1.安全性高:有研究表示160位的椭圆密钥与1024位的RSA密钥安全性相同。 2.处理速度快:在私钥的加密解密速度上,ecc算法比RSA、DSA速度更快。 3.存储空间占用小。 4.带宽要求低. 椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利...阅读全文

博文 2016-10-09 07:00:05 IrvinYoung

golang中的加密方式总结

缘起 因为项目中使用mysql的AES_DECRYPT方法,欲使用golang实现该方法, 但是研究了半天没明白怎么回事, 最后才发现golang当前默认支持CBC的方式,但是mysql当前使用的是ECB模式, 所以需要使用者分组分块加密,特总结一下golang中的各个加密算法 关于密码学 当前我们项目中常用的加解密的方式无非三种.对称加密, 加解密都使用的是同一个密钥, 其中的代表就是AES非对加解密, 加解密使用不同的密钥, 其中的代表就是RSA签名算法, 如MD5、SHA1、HMAC等, 主要用于验证,防止信息被修改, 如:文件校验、数字签名、鉴权协议 AES AES:高级加密标准(Advanced Encryption Standard),又称Rijndael加密法,这个标准用来替代...阅读全文

博文 2018-10-20 19:34:42 pengj

常见的加密算法

在项目开发过程中,当我们利用数据库存储一些关于用户的隐私信息,诸如密码、帐户密钥等数据时,需要加密后才向数据库写入。这时,我们需要一些高效地、简单易用的加密算法,当我们向数据库写数据时加密数据,然后把加密后的数据存入数据库;当需要读取数据时,从数据库把加密后的数据取出来,再通过算法解密。 常用的加密算法有Base64、MD5、AES和DES。 Base64 Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。 首先使用Base64编码需要一个含有64个字符的表,这个表由大小写字母、数字、+和/组成。采用Base64编码处理数据时,会把每三个字节共24位作为一个处理单元,再分为四组,每组6位,查表后获得相应的字符即编码后的字符串。编码后的...阅读全文

博文 2017-06-25 09:07:21 witchiman

JAVA与GO语言实现的RSA加密算法的互通

之前写过C#与JAVA语言RSA算法的互通程序,后来又找了找JAVA与GO语言互通的RSA算法,发现没有现成的,经过探索后,成功实现了两者的互通,现在分享如下: 注意:1 .两者的公钥和私钥是不能混用的,即JAVA的公私钥是不能直接用于GO的,反过来也不行。 2.下面的JAVA源码的解密思想是: (1)将java产生的公钥pubKey_from_java复制给Go (2)Go利用java的公钥加密一段信息,data,err=RsaEncrypt(" hello ",pubKey_from_java) (3)java利用自己的私钥privKey_from_java解密这段信息data,已验证通过。 3. Go源码解密的思想与上述同理,不再赘述。直接上源代码。 JAVA实现RSA的源码如下: p...阅读全文

博文 2016-03-08 14:00:01 igoqhb

go语言实现7大排序算法

package main import ( "fmt" "math/rand" "time" // "os" // "os/signal" ) const ( num = 100000 rangeNum = 100000 ) func main() { randSeed := rand.New(rand.NewSource(time.Now().Unix() + time.Now().UnixNano())) var buf []int for i := 0; i < num; i++ { buf = append(buf, randSeed.Intn(rangeNum)) } t := time.Now() //冒泡排序 // maopao(buf) // 选择排序 // xuanze(b...阅读全文

博文 2017-03-25 04:00:35 徐学良

Go与Android的CRC32/Adler32算法使用

Packet在网络传输中必须要考虑万一数据损坏的情况,CRC32与Adler32都是最常用的算法。 Go与Android都内置好了这两种算法的实现,直接使用就好。 Go的调用方式如下: // 校验算法(ADLER32/CRC32)例子 //author: Xiong Chuan Liang //date: 2015-4-12 package main import ( "fmt" "hash/adler32" "hash/crc32" ) var ADLER32 int = 0 var CRC32 int = 1 func main() { for _, v := range []string{"aaaaaaaaaa", "3333sdfsdffsdffsd", "234esrewr2343...阅读全文

博文 2015-06-18 09:09:22 xcltapestry

GO与Java的DES ECB加解密算法互换

Java默认DES算法使用DES/ECB/PKCS5Padding工作方式,在GO语言中因为ECB的脆弱性,DES的ECB模式是故意不放出来的,但实际情况中有时我们并不需要那么安全,以下代码完成与java默认DES算法的互通,为了能更好的与各种语言互通,建议在java中还是明确指明工作模式,如:DES/CBC/PKCS5Padding package main import ( "bytes" "crypto/des" "errors" "log" ) func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) log.Println("程序开始....") key := []byte{0xD5, 0x92, 0x86, 0x02, ...阅读全文

博文 2015-10-28 20:00:06 scybs

常见哈希函数FNV和MD5

介绍哈希函数之前,先说一下Golang的哈希结果。在包/hash/下的hash.go文件,定义了哈希函数的接口。所有哈希函数都要实现此接口。 // Hash is the common interface implemented by all hash functions. type Hash interface { // Write (via the embedded io.Writer interface) adds more data to the running hash. // It never returns an error. io.Writer // Sum appends the current hash to b and returns the resulting sli...阅读全文

Go语言 Go加密之DES

接着RSA加密解密,我们继续来看看DES的加密解密 一、DES简介 DES(Data Encryption Standard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES 的常见变体是三重 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。 DES加密,涉及到加密模式...阅读全文

博文 2015-06-17 23:01:48 abv123456789

Go的依赖管理

最近使用Go语言写了一个线上Session复制工具。对Go工程的依赖管理感到很是不满意。不满意的原因有以下几点。 过度依赖仓库,甚至将仓库的网址作为命名空间。 不能支持指定版本或者tag。 根据对Go的依赖管理的观察,可以观察到以下几点。 在执行go get的时候会扫描import的部分 将依赖拉取到src目录下面,并进行前一个步骤 当所有的依赖都拉取完成后,直接使用广度优先搜索算法搜索依赖图并进行编译。 那么解决方法就非常简单了。 设计一个配置文件,用来指定每个项目的branch或tag 将所有项目从仓库牵出到指定的brnach或tag上 扫描所有文件的import部分,构建编译的依赖关系图 广度优先遍历依赖关系图,进行编译 玩Go不久,不知道是否有更高级的方案或者已有的方案解决Go工程...阅读全文

博文 2014-11-22 17:00:01 David_Alpha_Fox

golang使用jwt

0x0 什么是jwt JWT是JSON Web Token的缩写,可以用作授权认证。传统的授权认证一般采用session,由于session存储在服务端,加大了服务端的计算量, 而且多台服务器之间存在着session同步的问题。而JWT存储在客户端,不仅减少了服务端的计算量,而且天生支持分布式。 0x1 jwt的结构 JWT由三部分组成: Header:头部,表明类型和加密算法 Claims:声明,即载荷(承载的内容) Signature:签名,这一部分是将header和claims进行base64转码后,并用header中声明的加密算法加盐(secre)后构成。 即: tmpstr = base64(header)+base64(claims) signature = encrypt(tm...阅读全文

博文 2017-12-17 22:00:00 xdao

md5与crc32性能对比

感觉MD5算法复杂度比crc32高很多,具体高多少呢?测试一下 // main.go package main import ( "crypto/md5" "fmt" "hash/crc32" ) func main() { data := []byte("test") fmt.Printf("%x", md5.Sum(data)) } func Crc32IEEE(data []byte) uint32 { return crc32.ChecksumIEEE(data) } func Md5(data []byte) [16]byte { return md5.Sum(data) } // main_test.go package main import "testing" func Be...阅读全文

博文 2017-02-09 08:09:02 李维

go语言之各种加密算法的使用

go语言之各种加密算法的使用 加密算法常用于数据传输中的封装,下面看看如何使用go语言库封装好的加密算法。 直接看代码。 package main import ( "encoding/base64" "crypto/md5" "encoding/hex" "fmt" ) const base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" var coder = base64.NewEncoding(base64Table) func base64Encode(encode_byte []byte) []byte { return []byte(coder.EncodeToString(...阅读全文

博文 2015-06-17 23:00:33 bojie5744

GO的并行算法这么慢?

我的环境如下: INTEL I5-2500K 4CORE 3.7GHZ 8G 内存 我分别用C#4.0和GO1.1写了一个计算质数的小程序。 C#我分别用串行算法和并行算法计算了1000,10000,50000,100000以内的质数。 GOLANG我只是用了并行算法,也是计算了1000,10000,50000,100000以内大的质数。 算法很简单,就是两个for循环。本以为GO是本地语言,至少要比C#快一些的。结果却让我吐血 GO: 目前有4个CPU 执行1000次的时间 4 毫秒 .............................. 执行10000次的时间 256 毫秒 ...................阅读全文

你也能写个 Shadowsocks

本文将教你从0写一个Shadowsocks,无需任何基础,读完本文你就能完成一个轻量级、高性能的 Shadowsocks 代替品。 我们暂且把最终完成的项目叫做 Lightsocks,如果你很急切地想看到结果,可以先体验本文最终完成的项目 Lightsocks ,也可以下载阅读源码。 认识 Shadowsocks Shadowsocks 是一个能骗过防火墙的网络代理工具。它把要传输的原数据经过加密后再传输,网络中的防火墙由于得不出要传输的原内容是什么而只好放行,于是就完成了防火墙穿透,也即是所谓的“翻墙”。 在自由的网络环境下,在本机上访问服务时是直接和远程服务建立连接传输数据,流程如图: 但在受限的网络环境下会有防火墙,本机电脑和远程服务之间传输的数据都必须通过防火墙的检查,流程如图:如果...阅读全文

博文 2017-11-05 06:04:50 吴浩麟

Golang计算MD5

Golang计算MD5 1.单向加密 什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密。这些学术 解释都不用管它,反正就是一群数学家老爷爷通过各种证明得到的一种方法,用这种方法加密 过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。既然加密者自己 都无法解密,那这乖僻的加密算法有个毛用阿?哪些场景需要这种有去无回的加密方式呢? 这里先了解下单向加密的特征: 首先,不可解密性在上面已经提到了,目的就是掩藏明文。其次单向加密算法的另外两个特征 使得它更接地气,第一是任意两段明文数据,加密以后的密文不能是相同的; 第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。这样当我们需要表征一段 唯一的内容,但是有不想别人知道该段内容时或者仅仅是为一个内容...阅读全文

博文 2014-10-09 16:00:03 cz_it

消息摘要算法示例(python和go)

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。 一、python消息摘要示例 代码如下: #! /usr/bin/python ''' File : testHash.py Author : Mike E-Mail : Mike_Zhang@live.com ''' import hashlib src = raw_input("Input string : ") funcNameList = ["MD5","SHA1","SHA224","SHA256","SHA384","SHA512"] funcMap = { "MD5" : lambda cnt : hashlib.md5(cnt).hexdi...阅读全文

博文 2014-10-04 19:26:50 MikeZhang

django 密码加密算法的 go 语言版本

package main import ( "crypto/sha256" "encoding/base64" "golang.org/x/crypto/pbkdf2" "log" "strconv" ) // Django 的实现细节请参考 Python 和 django 文档: // django.contrib.auth.hashers.make_password // django.utils.crypto import pbkdf2 // hashlib.sha256 // base64 func main() { pwd := []byte("shangshanyouyu") // 用户设置的原始密码 salt := []byte("I1lrI7wqJOJZ") // 盐,是一个...阅读全文

博文 2015-11-06 19:00:10 nowboy11427

golang实现直接插入排序算法

直接插入排序算法golang实现版本: 插入算法概要: 建立一个空的链表,首先在要排序的数组中随便拿出来一个数据,放在新建链表的开头,然后不停的从原数组中 获取数据,并和链表中的数据进行比较,大就放在链表的右端,小就放在链表的左端,一直循环直到结束为止, 排序完成。 package main import( "container/list" "fmt" ) var old []int = []int{432,432432,4234,333,333,21,22,3,30,8,20,2,7,9,50,80,1,4} func main(){ fmt.Println("old array:",old) res,_ := InsertionSort(old) i := 0 for e := res....阅读全文

博文 2014-10-04 19:26:08 rufidmx

golang gc机制学习

以下针对go1.5 gc方法 参考官方文章:https://blog.golang.org/go15gc,go的gc看起来类似于宽度优先搜索算法。 1. 将heap看作是一个图,其内部存储的变量之间有指针相互联系。所有变量最初都被着色为白色 2. 遍历heap,选择root节点,将它们标记为灰色 3. 针对上面选择的每一个root节点,首先将其颜色变为黑色,然后迭代的去访问他的孩子节点(即其所代表的变量内部的指针成员所指向的其他节点) 4. 针对每个孩子节点,返回第2步进行相同的处理 最后,所有能够被访问到的节点颜色都被标记为黑色,无法访问到的节点则依然是白色,这些白色节点就是孤立节点,它们的内存会被回收。 整个过程图1所示。 GC控制 Go语言提供了一个变量GOGC,用来对gc进行控制。该...阅读全文

博文 2016-04-29 11:00:02 sivolin

Amazon Api 签名算法(golang版和java版)

package main import "fmt" import "crypto/hmac" import "crypto/sha256" import "time" import "strings" import "encoding/base64" import "net/http" import "net/url" import "io/ioutil" const METHOD ="GET" const HOST ="webservices.amazon.com" const URI= "/onca/xml" const QUERY_STRING= "AWSAccessKeyId=121212121212&AssociateTag=smasholab-20&IdType=ISBN&Ite...阅读全文

博文 2015-06-17 20:23:35 u013834131

关于go语言des加解密算法

最近的项目需要,跻身go语言的行列,真不知道是福还是祸啊,嗨,感慨一下! 今天弄了一个des加解密的算法,主要也是用到了golang的标准库,和网上大牛的文档,在这里先感谢一下,并附上原链接地址: http://blog.studygolang.com/2013/01/go%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86%E4%B9%8Bdes/ 好,不废话,直接上代码: func DesEncrypt(origData, key []byte) ([]byte, error) { block, err := des.NewCipher(key) if err != nil { return nil, err } origData = PKCS5Padding(ori...阅读全文

博文 2015-06-17 23:00:45 mi_tiger

北京创业团队现招golang技术研发和实习生

北京创业团队现招golang技术研发和实习生 技术研发 招收golang、js开发了, 要求工作3年以上,良好基础知识, 精通golang或js开发, 熟练掌握各种常用加密算法,常用数据结构; 开源贡献者优先, github 源码者优先,技术博客者优先; 掌握golang的同时还掌握其他一门或多门语言(如python、c++、java)的加分。 对分布式相关理论和系统有研究者优先具有技术钻研精神,追求完美,并具有较强自驱学习能力 薪酬:15k-25k每月。 另招收在校实习生,计算机专业,懂golang优先,有开源项目经验优先 如有兴趣:请email您的简历到:aaron-wu@qkldx.net ...阅读全文

go语言写的并行排序算法(快速排序)

package main import "fmt" // threads 线程标识创建线程的个数 func quicksort(nums []int, ch chan int, level int, threads int) { level=level*2 if len(nums) == 1 { ch<- nums[0]; close(ch); return }//ch<-nums[0] 表示将nums[0] 数据写到ch通道中 if len(nums) == 0 { close(ch); return } less := make([]int, 0)// greater := make([]int,0) left := nums[0] //快速排序的轴 nums = nums[1:] //...阅读全文

博文 2015-12-23 01:00:11 ZHONGHUNZHAIZHUREN

golang 椭圆曲线加密使用ecdsa

非对称加密算法有RSA、ECDSA,对极大整数做因数分解的难度决定了RSA算法的可靠性,ECDSA为椭圆曲线加密算法,是基于椭圆方程公式,所以安全性要高于RSA。 这里说下使用ecdsa做签名和校验,并不讲原理; golang封装的ecdsa目前只有用私钥加密,公钥做校验,没有解密环节;所以目前可以应用于数字签名; 以下为封装: /** 通过一个随机key创建公钥和私钥 随机key至少为36位 */ func getEcdsaKey(randKey string) (*ecdsa.PrivateKey, ecdsa.PublicKey, error){ var err error var prk *ecdsa.PrivateKey var puk ecdsa.PublicKey var cu...阅读全文

golang 组合算法

//递归输出组合内容func combineloop(arr []string, r []string, i int, n int, output chan<- []string) { if n <= 0 { return } rlen := len(r) - n alen := len(arr) for j := i; j < alen; j++ { r[rlen] = arr[j] if n == 1 { or := make([]string, len(r)) copy(or, r) output <- or } else { combineloop(arr, r, j+1, n-1, output) } }}//...阅读全文

博文 2015-06-18 17:04:34 zhjih123

北京区块链创业团队现招golang技术研发

北京区块链创业团队现招兵买马了 职位1 技术研发 招收golang、js开发了, 要求工作3年以上,良好基础知识, 精通golang或js开发, 熟练掌握各种常用加密算法,常用数据结构; 开源贡献者优先, github 源码者优先,技术博客者优先; 掌握golang的同时还掌握其他一门或多门语言(如python、c++、java)的加分。 对分布式相关理论和系统有研究者优先 具有技术钻研精神,追求完美,并具有较强自驱学习能力 薪酬:1-3万每月。 另招收在校实习生,懂golang优先,有开源项目经验优先 职位2 技术研发 数学.密码学专业学生 要求 硕士毕业,熟练掌握各种常用加密算法,掌握计算机相关知识。 抗...阅读全文

golang实现分页算法

```go //分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 7个页数 前 1,2,3,4,5 后 的格式返回,小于5页返回具体页数 func Paginator(page, prepage int, nums int64) map[string]interface{} { var firstpage int //前一页地址 var lastpage int //后一页地址 //根据nums总数,和prepage每页数量 生成分页总数 totalpages := int(math.Ceil(float64(nums) / float64(prepage))) //page总数 if page > totalpages { page = totalpages } if page ...阅读全文

博文 2018-09-10 16:01:03 JimPang

Mastering the game of Go with deep neural networks and tree search 中文版来了

http://pan.baidu.com/s/1hr3kxog http://download.csdn.net/detail/nehemiah666/9472669 里面有nature上paper,我翻译的中文版,和录的一个讲述AlphaGo工作原理的视频,是对AlphaGo工作原理的总结。 下面是摘要部分: 对于人工智能来说,围棋一直被视为最具挑战性的经典游戏,这是由于其巨大的搜索空间以及难于评估的棋盘盘面和走子。这里我们介绍了一个新方法:使用价值网络 (value networks )来评估棋盘盘面和使用策略网络 (policy networks )来选择走子。为了训练这些深度神经网络,我们将有监督学习(从人类职业比赛中学习)和增强学习(从自我对抗的比赛中学习)创新地结合在一起。在没有...阅读全文

博文 2016-04-04 20:00:10 nehemiah666

堆实现的Top-K算法,元素流中筛选极值集合

使用时元素需实现ELEM接口