- 博客(26)
- 收藏
- 关注
原创 从红警中来学习工厂方法 vs. 抽象工厂
场景: 确保玩家选择一个阵营后,所有生产出的建筑和单位都属于该阵营。抽象工厂 (Abstract Factory)(阵营基地接口)包含和方法。具体工厂 (Concrete Factory)AlliedBase(盟军基地)SovietBase(苏军基地)产品家族 (Product Family)产品A (兵营)Barracks(抽象产品)(具体产品 - 盟军兵营)(具体产品 - 苏军兵营)产品B (战车工厂)(抽象产品)(具体产品 - 盟军战车工厂)(具体产品 - 苏军战车工厂)
2025-08-14 16:25:44
202
原创 【Gin框架】中间件
在 Web 框架的语境下,中间件 (Middleware)是一种可重用的软件组件或函数,它被设计用来在 HTTP 请求-响应生命周期中的特定点拦截和处理请求或响应。在 Gin 框架中,中间件特指符合(即) 签名的函数。这些函数被组织成一个有序的处理链 (pipeline or chain of responsibility)。当一个 HTTP 请求到达时,它会依次通过这个链条中的每一个中间件,最终到达目标路由处理函数。同样,由路由处理函数生成的响应,在返回给客户端之前,也会反向(概念上,实际是。
2025-06-19 11:47:05
1224
原创 【Gin框架】路由方法树及Radix树
gin框架的路由通过方法树(9种请求方法)进行分类,分类完后由Radix树存储,其中处理请求的时候直接返回的是其对应的跟节点Root。
2024-12-30 17:02:47
525
原创 【Go标准库】fmt.Scan的一个细节
来扫描\n这一行,并抛弃,这样就可以在goland中运行了。但是,我在以下算法网站刷题时候,却并不需要该操作。该算法题为:求区间和。会在标准输入后留下一个换行符\n,使得我在写入数组的时候,数组的第一个值里面总是0。在刷算法题的时候遇到了一个关于Scan的bug。在Goland中,我使用。
2024-08-21 21:13:38
422
原创 【Go标准库】fmt与bufio的标准输入
如果你想按照不同的规则来分割输入(例如,按单词或特定字符分割),提供了Split方法来设置自定义的分隔函数。bufio包预定义了一些分隔函数(如按字节、行、单词分割),也可以定义自己的分隔函数。scanner.Split(bufio.ScanWords) // 设置分隔函数为按单词分割。
2024-07-29 21:45:14
1139
原创 【Go】作用域
在 Go 语言中,作用域(Scope)指的是程序中定义的变量和常量的可见性和生命周期。了解作用域对于编写清晰、可维护的代码非常重要。
2024-07-17 16:42:37
572
原创 【go语言圣经】练习2.3-2.5
表达式 x&(x-1) 用于将x的最低的一个非零的bit位清零。使用这个算法重写PopCount函数,然后比较性能。(PS:每次运算x&(x-1)可以将x二进制形式中排在最后的那一位1给消除,只需要计算消除1的次数即可)用移位算法重写PopCount函数,每次测试最右边的1bit,然后统计总数。重写PopCount函数,用一个循环代替单一的表达式。比较两个版本的性能。在做题前,首先解析一下本章节中的popcount.go文件中的代码。查表算法的性能差异。
2024-07-17 14:49:18
358
原创 【go语言圣经】练习2.2
话则是从标准输入读取参数,然后做类似Celsius和Fahrenheit的单位转换,长度单位可以对。strconv.PraseFloat(str,64)这条语句能够使得字符串转化为64位的浮点数。写一个通用的单位转换程序,用类似cf程序的方式从命令行读取参数,如果缺省的。应英尺和米,重量单位可以对应磅和公斤等。
2024-07-16 17:08:27
276
原创 【go语言圣经】练习2.1
向tempconv包添加类型、常量和函数用来处理Kelvin绝对温度的转换,Kelvin 绝对零度是−273.15°C,Kelvin绝对温度1K和摄氏度1°C的单位间隔是一样的。因此在你输出对应类型的值的时候会自动进行格式化输出。
2024-07-15 18:00:27
358
原创 【go语言圣经】练习1.12
描述:修改Lissajour服务,从URL读取变量,比如你可以访问 http://localhost:8000/?cycles=20 这个URL,这样访问可以将程序里的cycles默认的5修改为20。这里,我先通过handler对函数lissajous做了一层封装,这样可以避免浏览器会自动发起一个额外的请求,通常是请求网站的图标(favicon.ico)。可以在你的lissajous中打印cyclevalue,你会发现发起请求时候,打印出了一个2和一个0。但通过上述handler封装可以避免该问题。
2024-07-05 17:08:32
385
原创 【go语言圣经】练习1.10-1.11
描述:找一个数据量比较大的网站,用本小节中的程序调研网站的缓存策略,对每个URL执行两遍请求,查看两次时间是否有较大的差别,并且每次获取到的响应内容是否一致,修改本节中的程序,将响应结果输出,以便于进行对比。描述:在fatchall中尝试使用长一些的参数列表,比如使用在alexa.com的上百万网站里排名靠前的。我们可以设置请求的超时时间,如果在超时时间内服务器没有响应,那么 http.Get(url) 函数就会返回一个错误。PS:如图可以看到总消耗时间为10.01s与我们设置的10s的延迟是对应的。
2024-07-05 14:29:14
636
原创 【go语言圣经】练习1.7-1.9
描述:函数调用io.Copy(dst, src)会从src中读取内容,并将读到的结果写入到dst中,使用这个函数替代掉例子中的ioutil.ReadAll来拷贝响应结构体到os.Stdout,避免申请一个缓冲区(例子中的b)来存储。记得处理io.Copy返回结果中的错误。描述:修改fetch这个范例,如果输入的url参数没有 http:// 前缀的话,为这个url加上该前缀。描述:修改fetch打印出HTTP协议的状态码,可以从resp.Status变量得到该状态码。
2024-07-04 17:51:27
382
原创 【go语言圣经】练习1.4-1.6
描述: 修改前面的Lissajous程序里的调色板,由黑色改为绿色。我们可以用 color.RGBA{0xRR, 0xGG, 0xBB, 0xff} 来得到 #RRGGBB 这个色值,三个十六进制的字符串分别代表红、绿、蓝像素。描述:修改Lissajous程序,修改其调色板来生成更丰富的颜色,然后修改SetColorIndex。为了生成更加丰富的颜色,我添加了红绿蓝到调色板,并设置了随机数来选取每一次用哪种颜色。描述:修改 dup2 ,出现重复的行时打印文件名称。的第三个参数,看看显示结果吧。
2024-07-04 17:14:21
269
原创 【go语言圣经】练习1.1-1.3
描述: 做实验测量潜在低效的版本和使用了 strings.Join 的版本的运行时间差异。描述:修改 echo 程序,使其能够打印 os.Args[0] ,即被执行命令本身的名字。节讲解了部分 time 包,11.4节展示了如何写标准测试程序,以得到系统性的性能评测。PS:运行了几次,大概是方式一消耗的时间多一点,但是直接测试时间并不精确。新建了一个xxx_test.go文件,必须跟xxx.go文件在同一目录。描述:修改 echo 程序,使其打印每个参数的索引和值,每个一行。
2024-07-03 17:23:19
502
原创 【隐语笔记6】逻辑回归LR与广义线性模型GLM开发实践
逻辑回归(LR)和广义线性模型(GLM)是统计学和机器学习中的重要工具,广泛用于解决预测和分类问题。逻辑回归专用于二分类问题,而广义线性模型则适用于更广泛的数据分布类型。逻辑回归是广义线性模型的一个特例,用于处理二分类问题,其中响应变量 YYY 遵循二项分布,采用 Logit 链接函数。广义线性模型是一个统计框架,用于描述预测变量和响应变量之间的关系。响应变量的分布属于指数分布族。如果响应变量 YYY 遵循泊松分布,适合的链接函数是自然对数:log(μ)=η\log(\mu) = \etalog(μ
2024-06-24 16:03:54
1401
原创 【隐语笔记5】基于隐私保护的机器学习算法介绍
联邦表格数据的封装,DataFrame由多个参与方的数据块构成,支持数据切分和切分,分别对应3组API:HDataFrame、VDataFrame、MixDataFrame。
2024-06-23 11:26:46
589
原创 【隐语笔记3】隐语架构概览
目标:通过可视化产品,能够快速实现隐私计算demo;通过模块化API/SDK降低技术集成的成本。SercetPad:一个隐私计算web框架,能够方便的使用基于保护隐私的数据智能和机器学习的能力。SercetNote:类似于具有隐语特色的丘比特,能够方便的进行交互式建模,节点监控。
2024-06-20 17:47:16
612
原创 【隐语笔记2】隐私计算开源助力数据要素流通
(外循环是构建数据要素市场的核心,可以给Data Owner(DO)和Data User(DU)双方提供收益)内循环:数据持有方在自己的运维管控域内对自己的数据使用和安全拥有全责。2. 数据要素内外循环。4.隐私计算三个原则。
2024-06-16 21:20:14
405
原创 【隐语笔记1】数据可信流通:从运维信任到技术信任
建立数据来源可确认、使用范围可界定、流通过程可追溯、安全风险可防范的数据可信流通体系①身份可确认 ②利益可依赖 ③能力有预期 ④行为有后果。
2024-06-16 14:56:47
489
原创 【MongoDB】远程访问
通过win+R输入services.msc查看MongoDB服务是否已经启动。如果你先前已经启动过MongoDB服务了,你需要先将原先服务删除,再重新–install。解决方案:use admin然后创建一个用户即可。用来设置可远程访问的ip。是为了开启权限控制,
2024-06-14 16:45:15
1470
原创 半同态加密-Paillier
原文:Paillier P. Public-key cryptosystems based on composite degree residuosity classes[C]//International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 1999: 223-238.
2024-03-26 18:26:15
942
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2