- 博客(556)
- 收藏
- 关注
原创 transformer
如果没有位置编码,transformer会把所有的token,一起放到模型里面去并行计算,这样的话,词语的前后顺序携带的信息就没办法体现出来,“我打你”和“你打我”用的字是一样的,但是意思完全不一样,意思完全反过来,所以要保证输入的一组词向量在并行计算的同时,还能体现出他们的先后顺序,这个先后顺序在矩阵乘法的过程中是体现不出来的,所以关于词向量先后顺序,就需要额外操作,对词与词组合后的语义进行理解,靠的是注意力机制,也就是橙色的部分,就是解决许多词组合在一起之后,整体体现的那个词义,
2025-08-09 22:32:35
141
原创 区块链 和 一致性哈希的结合(二)
现在来验证一下可行性,就是说如果我的区块链存储的是 服务器列表,那么每一个节点运行的时候就会拉取最新的服务器列表,然后本地构建完一致性哈希环以后才进行后续的数据查找操作(算出数据的哈希后判断是哪一个区,这个区对应到哪一个服务器)如果当前需要进行10000个数据的查询任务,当前我肯定是先查询最新的服务器列表,那么如何保证这个期间服务器列表的状态的即使更新呢?背景交代完了,现在要测试一下速度问题,我们每次进行数据查找的时候都要进行查询区块链?
2025-08-06 17:02:01
84
原创 区块链 和 一致性哈希的结合
它是通过确定性算法计算出来的:partitions 的内容是根据成员列表、虚拟节点哈希环和有界负载等参数,通过 distributePartitions() 方法计算得出的。如果这个映射也需要从区块链上获取,那么每次键的定位都会变成一个慢速的区块链查询,这会彻底破坏系统的性能。我们每次增加服务器都会修改sortedset以及ring(虚拟节点和服务器的映射),但是如果我们能够得到服务器列表,那么是可以在本地构建sortedset和ring。下面就可以去部署网络,部署链码。接着我们运行我们的客户端代码。
2025-08-04 23:16:36
269
原创 最小栈 常数时间查找
就是说要另外维护一个栈,当一个元素进来的时候,判断和这个最小栈的顶部元素的大小关系,如果是大于,那么这个新进来的元素对最小值就不会有影响,反之,如果是小于等于,就要入栈。前言:这个题目的设计还是很巧妙的,如果在栈的基础上维护一个最小栈。
2025-08-04 10:36:38
129
原创 最小覆盖子串 优化版
前言:写这个题目的时候,想到了类似滑动窗口的思路,但是每次check的复杂度太高了,可以优化。主要就是增加一个变量来记录还缺几个字母没有达到要求。
2025-07-31 14:26:01
214
原创 buraksezer/consistent 库笔记
库提供了一个健壮且高效的一致性哈希实现,其独特的有界负载功能使其在处理动态负载和避免热点方面表现出色。通过合理配置虚拟节点数量、负载因子和选择高性能哈希函数,您可以在分布式系统中构建出更具弹性、更均衡的组件。
2025-07-28 16:43:49
693
原创 fabric搭建基础的测试网络
我们将使用 Fabric CLI 来手动测试,并建议使用 Go SDK 或 Node.js SDK 编写脚本进行批量测试。可以去organizations/peerOrganizations/org1.example.com/下创建一个env.sh,内容就是上面的代码。然后环境配置完了,就可以运行脚本进行测试,我们脚本的本质就是调用命令进行查询或者提交提案。我们将创建一个简单的 Go 链码,实现 Put (写入) 和 Get (读取) 方法。创建 basic-kv.go 文件,并将以下内容粘贴进去。
2025-07-24 19:48:04
307
原创 Hyperledger Fabric
背书是指一个或多个背书节点 (Endorsing Peers)对一个交易提案进行模拟执行,并根据预设的背书策略 (Endorsement Policy)对其结果进行签名确认的过程。背书节点通过模拟执行链码,验证交易的逻辑是否正确,以及是否符合链码中定义的业务规则。在模拟执行过程中,背书节点会记录链码读取了哪些数据(读集)以及打算修改哪些数据(写集)。这些读写集是交易后续验证的关键。背书节点用自己的私钥对读写集和交易结果进行数字签名。这个签名证明了该节点已执行并批准了该交易。
2025-07-17 10:31:10
855
原创 移动零 leecode
另外一个是双指针,但是有一点不好处理就是前面可能会出现好几个0或者好几个非0的,这种怎么特判。前言:之前写过类似的题目,但是没有认真总结,今天来看看怎么写。可以从栈和双指针的角度来考虑。怎么去考虑这个问题呢?
2025-07-13 10:26:52
204
原创 找不到 xxx 的DNS地址,现在正在诊断问题macbook
今天打开一个网页,平时能打开的,但是今天显示找不到服务器,怀疑是dns污染,网上尝试了好几个命令都不行,试了下面的命令才ok
2025-06-30 00:16:05
132
原创 kaggle如何提交notebook到竞赛
这里进入后点击output,点击submission.csv,然后就可以点击submit to compatition就可以正式提交了,注意,正式提交的时候还会再次运行一次。kaggle提交可以直接提交文件,但是如果是一些正式的比赛,只会让你提交notebook,然后它会运行你的代码来跑隐藏的测试集。我们写好代码以后直接点击save version,然后系统会先运行一次你的代码,确保没有报错,会出现下面的界面。接着我们到code那里创建notebook。下图中展示了一些注意事项。下面来讲一下如何提交。
2025-06-24 10:49:05
179
原创 跳跃游戏 dp还是线段树优化
这个题目还是比较经典的,题目给的数据量如果是动态规划的思路来写的话刚刚好能过。如果数据量更大呢,题目保证了一定可以到达n-1,所以我们就可以采取贪心的思路。如果数据量变大咋办,感觉可以用线段树来优化一下。
2025-06-07 17:13:04
302
原创 分糖果 两次遍历处理左右
这个题目本来打算两次遍历来写,但是细节处理上出了问题,我想的是距离两个1的距离最大值,但是其实并不是这样的,只有值递增的时候才能递增。
2025-06-02 09:35:24
222
原创 系统赛数据库的一些记录
当你的程序需要读取或写入一个磁盘文件时,它首先会向操作系统请求打开这个文件。如果操作系统成功打开了该文件,它不会直接把整个文件都交给你的程序,而是会创建一个特殊的数据结构来代表这个打开的文件,并返回一个唯一的标识符给你的程序,这个标识符就是文件句柄。文件句柄 (File Handle) 简单来说,就像一个指向打开文件的“门票”或者说是一个“代号”。
2025-05-28 23:56:08
283
原创 c++lambda表达式
摘要:C++11引入的Lambda表达式是一种匿名函数对象,允许内联定义函数而无需命名。其基本语法为[捕获列表](参数)->返回类型{函数体},支持值捕获、引用捕获及混合捕获。Lambda广泛应用于算法参数(如排序、过滤)、回调函数等场景,并支持递归(需std::function)、泛型(C++14的auto参数)和移动语义(初始化捕获)。注意事项包括生命周期管理、性能权衡及类型限制。Lambda显著提升了代码简洁性与灵活性,是现代C++开发的重要工具。
2025-05-28 10:17:15
458
原创 socc 19 echash论文部分解读
在论文中,“节点 (nodes)” 和 “服务器 (servers)” 是可以互换使用的。因此,当 ECHash “将所有 M 个节点划分到 n 个隔离的区域 (n isolated hash rings)” 时 ,它指的是所有的 M 台物理服务器被分配到这 n 个哈希环中。论文还澄清说:“一个哈希环至少包含一个用于存储对象的节点”
2025-05-23 23:51:23
818
原创 socc 19 echash 部分代码讲解 三 chunk,stripe,hashnode
元素内容关系chunk存储 key-value 的基本单元多个 chunk 组成一个 stripestripe纠删码单位(N 个 chunk)包括 K 个数据块和 N-K 个校验块,分布在不同 ring 上hash_nodekey -> chunk+offset 的索引key 写入 chunk 后,用 hash_node 保存位置信息一个 key 写入过程就是:➤ 写入 chunk(buffer) → 达到阈值形成 stripe → 纠删码编码 → 分布存储 → 更新 hash_node。
2025-05-18 10:44:05
527
原创 socc19 echash部分代码讲解 二 hashtable
使用 Jenkins 哈希函数;支持插入、查找、删除;value 被编码为位置、长度等信息;在 ECHash 框架中作为元数据索引使用;用于追踪某个键在哪个 chunk 中、在哪个偏移、长度多少等关键信息。
2025-05-18 10:42:25
346
原创 socc19 echash部分代码解释
/ RS(N,K): K个数据块,N=K+冗余块数(即总块数)#define N5// 总块数(数据 + 冗余)5// 哈希环数量(即存储节点组数)#define K3// 数据块数量(剩下的N-K是冗余块)4ll<<10// 每个 chunk 的大小,4KB0.95// 当 chunk 达到该比例后可封存0.75// 小于该比例的 chunk 将被删除10000// 初始 chunk 列表大小1000// 初始 stripe 列表大小1000003。
2025-05-15 09:39:00
751
原创 libmemcached库api接口讲解五
是一个用于主动断开当前所有 Memcached 服务器连接并重置连接状态的函数。是一个低层级的手动连接控制工具清空所有当前连接并重置状态。你只有在需要重连、取消当前操作、刷新连接配置时才需要它,正常用 set/get 根本不用管它。
2025-05-14 20:01:37
521
原创 libmemcached库api接口讲解四
_by_key是 libmemcached 提供的一类函数,用于通过一个“主键” (group_key来决定哈希路由位置(即数据该存到哪台 Memcached 服务器),而不只是根据实际操作的key决定。应用场景是否使用_by_key普通缓存键值❌ 用普通set/get逻辑上属于同一“用户”、“session”、“商品”等的数据要存在一起✅ 强烈推荐使用_by_key分布式系统中缓存命名空间隔离✅ 可作为逻辑 namespace如果你想让。
2025-05-14 19:47:16
1002
原创 libMemcached 库下载记录
表明在memflush.cc文件中存在指针与布尔值比较的类型不匹配问题,大致原因就是我现在的g++版本太高了,所以得修改 上面的false为null。,这样我们刚刚下载的ibmemcached-1.0.18就可以删除了。前言:简单记录一下libMemcached下载使用的一些问题。后面再次执行make的时候,就只出现一些编译的警告了。然后我们需要先启动我们的memcached服务器。执行make指令的时候,出现了报错。后面我们开始写一个简单的测试代码。如果没下载的可能还得下载一下。我们得创建一个新的用户。
2025-05-13 19:46:25
1164
原创 矩阵快速幂优化dp 从朴素dp到快速幂
前言:这是一场周赛的第四题,第二题也是类似的题目,但是这题不可以暴力,所以我们得用快速幂来优化,因为这题符合我们说的有递推公式,且递推的数量特别大,符合快速幂的使用条件。注意在矩阵运算的时候取模。
2025-05-13 10:27:12
298
原创 巧妙暴力枚举 找出三位偶数
前言:一开始看的时候还以为是枚举digits里面的数,但是其实这样是不符合的,digits里面的数字其实是可以重排的,所以我们得换种思路,直接枚举三位数,然后判断是否符合。
2025-05-12 08:05:37
158
原创 kmp算法总结
我们可以先看看别的博主是怎么讲kmp的,核心思想很简单,就是需要我们预备弄一个nxt数组,这样当我们匹配的不符合的时候能跳过一些无谓的匹配。只要记住一点,我们被匹配的字符串只需要遍历一次,我们回退的是我们的匹配字符串。前言:之前一直都没有时间来学习kmp算法,现在有空来看看。那么我们有了这个nxt数组要怎么快速遍历呢?我们怎么暴力得到我们的nxt数组呢?怎么快速求出我们的nxt数组呢?
2025-05-07 15:15:05
173
原创 字符串哈希专题
字符串哈希是一种将一个字符串映射为一个整数的方法,常用于快速比较字符串是否相等。如果两个字符串的哈希值相等,它们很可能是相等的(有哈希冲突的风险,但通常可以通过双哈希避免)。
2025-05-05 19:20:29
1072
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人