草庐IT

多目标算法

全部标签

algorithm - 使用 Golang 的遗传算法中的轮盘赌选择

我正在为遗传算法构建一个模拟轮盘赌选择函数。首先,我想在主函数中添加fitnessScore的sum。在添加fitnessScore之后,我想使用Go中的math/rand包从那个sum中随机化一个值。在这种情况下我应该如何使用rand包如何修复spin_wheel:=rand.sum以便随机生成一个值?packagemainimport("fmt""time""math/rand")funcrouletteWheel(fitnessScore[]float64)[]float64{sum:=0.0fori:=0;i=spin_wheel){returnfitnessScore}}re

go - Go 中的相同算法、多种输入和输出类型的可能性?

我目前正在使用draw2dlib来渲染一些图像。我注意到构建SVG的核心算法和方法是相同的,或PNG图片。我确实需要将此图像渲染为SVG(用于Web)和PNG(用于PDF)唯一的区别在于输入类型和输出。对于PNG渲染我有作为输入:vargc*draw2dimg.GraphicContextvarimg*image.RGBAimg=image.NewRGBA(image.Rect(0,0,xSize,ySize))gc=draw2dimg.NewGraphicContext(img)作为输出:draw2dimg.SaveToPngFile(FileName,img)对于SVG,我有:作为

go - MergeSort 算法与 goroutines 问题

我是Go的新手,我想更好地理解它,尤其是谈论goroutines。我在GitHub上找到了一个并行MergeSort算法,在研究这段代码时,我有一些问题,我想了解为什么使用它以及是否有任何方法可以将它转换为其他类型。第一个问题,为什么channel被用作struct{}而不是int[]或其他东西?有没有办法将其更改为int[]或任何其他类型?另一个问题是,为什么这个算法使用gofunc()而不是为此创建新函数?有没有一种方法可以用其他功能实现它并简单地在前面写go关键字?最后一个问题,什么时候使用default大小写?funcMultiMergeSortWithSem(data[]in

algorithm - 从N个元素的 slice 生成K个元素的算法

我正在尝试从Go中的thisStackoverflowquestion移植算法。我正在尝试使用的算法如下:给定任意长度的字符串slice和“深度”,找到原始slice中长度为深度的元素的所有组合。例如,如果给定一个包含A,B,C,D,E和F且深度为3的slice,则结果应为:[A,B,C][A,B,D][A,B,E][A,B,F][A,C,D][A,C,E][A,C,F][A,D,E][A,D,F][A,E,F][B,C,D][B,C,E][B,C,F][B,D,E][B,D,F][B,E,F][C,D,E][C,D,F][C,E,F][D,E,F]我已经尝试在上述Go语言中实现一些建

go - 使用 make 为不同的体系结构构建动态目标?

我正在寻找一种方法来基本上迭代架构列表并使用make构建独特的架构。例如,我有一个包含所有架构的变量,以及当前的静态目标。下面是我的(简化的)逻辑。ALL_ARCHES=amd64armarm64VERSION=$(shellgitsymbolic-ref--shortHEAD)-$(shellgitrev-parse--shortHEAD)cmd/mything/mything:cmd/mything/*.goCGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuild-ldflags"-Xmain.version=$(VERSION)"-o$@cmd/myt

go - Makefile 规则始终执行,尽管目标存在

我正在尝试为myGoLangproject调整我的Makefile.我有几条规则应该:设置一个gitpre-commit钩子(Hook)(不想提交二进制文件并意外违反版权法)通过youtube-dl下载一个mp3文件通过ffmpeg提取该视频的一个片段以前我是通过shellscript执行此操作并手动检查每个文件,但在将我的脚本转换为Makefile的过程中我似乎遗漏了一些东西。唯一没有重新运行的规则是预Hook,但我认为那是因为我没有为我的目标/规则名称使用变量?.default:install.phony:installgeneratecleanexportbin_director

go - net.Dial 在编译目标 wasm 时总是返回错误

我正在golang中设置一个连接到nodejs中的服务器的tcp客户端。golang客户端正在编译为webassembly(wasm)并通过npm的http-server命令提供服务。该程序在编译时运行良好gorunmain.go但不适用于wasm。如果我从场景中取出net.dial(...)函数,它就会工作。main.go连接的nodejs写的server//server.jsconstnet=require('net');constport=8081;consthost='127.0.0.1';constserver=net.createServer();server.listen

postgresql - golang中改进的FNV-1 hash算法

原生库有FNV-1哈希算法https://golang.org/pkg/hash/fnv/返回uint64值(范围:0到18446744073709551615)。我需要将此值存储在PostgreSQLbigserial中,但它的范围是1到9223372036854775807。可以将哈希大小更改为例如。56?http://www.isthe.com/chongo/tech/comp/fnv/index.html#xor-fold有人可以帮助更改native算法以生成56位哈希吗?https://golang.org/src/hash/fnv/fnv.go更新我自己是用这个文档做的吗h

c++ - 获得最佳组合的算法

我有ID为1、3、4、5、6、7的项目。现在我有如下数据。每行都有一个offerId。ArrayofIds由数组中的ID组合组成。Discount是该offerId的值offerId:ArrayofIds:Discounto1:[1]:45o2:[134]:100o3:[35]:55o4:[5]:40o5:[6]:30o6:[67]:20现在我必须选择所有提供最佳ID组合的offerId,即最大总折扣。例如在上面的例子中:可能的结果可能是:[o2,o4,o5]最大折扣为170(100+40+30)。注意。结果offerId应该是这样的ID不重复。o2,o4,o6的示例id为[1,3,4

XML 关系转换算法

我正在尝试验证带有数字签名的MSWord*.docx文件。为了进行验证,我必须计算引用节点的摘要并检查它是否与签名(sig1.xml)中给出的摘要相同。我找不到有关如何实现关系转换以计算该摘要的信息。签名XML(sig1.xml)部分如下:1vWU/YTF/7t6ZjnE44gAFTbZvvA=....(nextrefnode....)..s2yQEJrQSfC0YoRe1hvm+IGBpJQ=.....MoreReferenceNodes...../_rels/.rels文件自己:所以我需要计算/_rels/.rels的SHA1,但在计算之前我必须应用关系变换和C14N。当我计算没有