2.游戏战中陪伴助手微服务架构设计与应用
推荐系统接入——系统架构 推荐系统: 向量化 方案探索——资源点推荐 针对具体场景开发 - 专利:《一种在游戏中离线挖掘、实时推荐资源点的方案》 - 大数据挖掘资源出现位置 - 左:配置文件 - 右:大数据挖掘 - 不足: - 太 bug 了,限制使用 方案探索——聚类统计 模仿大多数玩家的选择 - 实现方法: - 为玩家生成 [0, 1] 特征向量 - 聚类统计,存入 Faiss Faiss 匹配召回 - 问题: - 特征过多(600多维),无法分析 - 聚类结果趋同 方案探索——关键帧 / 路径推荐 模仿某一个玩家的选择 - 专利:《一种在实时游戏对局中,模仿历史胜利玩家打法,并对当前玩家进行打法推荐的方案》 - 发明点:序列截断、偏移算法、帧前进、…… - 思考: - 学习/模仿历史已吃鸡玩家的走位 - 历史玩家的状态,也可作为策略 - 通过特征向量匹配历史玩家 - 运营可闭环策略设计,开发无需介入 方案详述——完整架构 先对整个架构有一个大概的认识 - 消息队列消费:解耦 MQ - Token 清洗:事件翻译和 token 计算 - 推荐系统:策略召回和推荐 - 数据分析:离线策略挖掘和模型训练 - 管理平台:开发、运营、运维辅助 实现方案——Token 清洗 Token 清洗服务完整流程 - 挑战:150+类 token,如何高内聚,降低0 码力 | 47 页 | 11.10 MB | 1 年前32.1.3 如何用Go模拟CPU
SP与栈空间、ZeroPage • SP跟常见的栈指针一样,压栈SP则减掉对应字长 • 栈最大0xFF,咦……stackoverflow? • ZeroPage因为电路原因,寻址速度比一般指令快 • 中断与向量 • IRQ = 可忽略的中断 = 水平触发 = 读取0xFFFC里的绝对地址 • NMI = 不可忽略的中断 = 上沿触发 = 读取0xFFFE里的绝对地址 • Reset = 重置 = 读取0xFFFA0 码力 | 42 页 | 7.10 MB | 1 年前3Go 2 Generics? A (P)review
「对于与大多数人而言,(在 1988 年)使用 C++ 最大的问题就是缺乏一个扩充的标准库。要编写这种库,遇到的最主要 问题就是,C++ 没有提供一种充分一般的机制,以便与定 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后,0 码力 | 41 页 | 770.62 KB | 1 年前3Go 入门指南(The way to Go)
i++ { fp(&[3]int{i, i * i, i * i * i}) } } 输出结果: &[0 0 0] &[1 1 1] &[2 4 8] 几何点(或者数学向量)是一个使用数组的经典例子。为了简化代码通常使用一个别名: type Vector3D [3]float32 var vec Vector3D 7.1.3 多维数组 数组通常是一维的,但是可以用来组装成多维数组,例如: a[:len(a)-1] 10. 将元素 x 追加到切片 a: a = append(a, x) 因此,您可以使用切片和 append 操作来表示任意可变长度的序列。 从数学的角度来看,切片相当于向量,如果需要的话可以定义一个向量作为切片的别名来进行操作。 如果您需要更加完整的方案,可以学习一下 Eleanor McHugh 编写的几个包:slices、chain 和 lists。 7.6.8 切片和垃圾回收 point.go: 使用坐标 X、Y 定义一个二维 Point 结构体。同样地,对一个三维点使用它的极坐标定义一个 Polar 结构 体。实现一个 Abs() 方法来计算一个 Point 表示的向量的长度,实现一个 Scale 方法,它将点的坐标乘 以一个尺度因子(提示:使用 math 包里的 Sqrt 函数)(function Scale that multiplies the coordinates0 码力 | 380 页 | 2.97 MB | 1 年前3Go 入门指南(The way to Go)
fp(&[3]int{i, i * i, i * i * i}) 9. } 10. } 输出结果: 1. &[0 0 0] 2. &[1 1 1] 3. &[2 4 8] 几何点(或者数学向量)是一个使用数组的经典例子。为了简化代码通常使用一个别名: 1. type Vector3D [3]float32 2. var vec Vector3D 数组通常是一维的,但是可以用来组装成多维数组,例如: 10. 将元素 x 追加到切片 a: a = append(a, x) 因此,您可以使用切片和 append 操作来表示任意可变长度的序列。 从数学的角度来看,切片相当于向量,如果需要的话可以定义一个向量作为切片的别名来进行操作。 如果您需要更加完整的方案,可以学习一下 Eleanor McHugh 编写的几个包:slices、chain 和 lists。 切片的底层指向一个数组, point.go: 使用坐标 X、Y 定义一个二维 Point 结构体。同样地,对一个三维点使用它的极坐标定义一个 Polar 结构体。实 现一个 Abs() 方法来计算一个 Point 表示的向量的长度,实现一个 Scale 方法,它将点的坐标乘以一个尺 度因子(提示:使用 math 包里的 Sqrt 函数)(function Scale that multiplies the0 码力 | 466 页 | 4.44 MB | 1 年前3Hello 算法 1.0.0b1 Golang版
二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常 查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。 深度学习。神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式构建 的。数组是神经网络编程中最常使用的数据结构。 4. 数组与链表 hello‑algo.com 50 4.2. 链表 � 引言0 码力 | 190 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b2 Golang版
二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常 查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。 深度学习。神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式构建 的。数组是神经网络编程中最常使用的数据结构。 4. 数组与链表 hello‑algo.com 50 4.2. 链表 � 引言0 码力 | 202 页 | 15.73 MB | 1 年前3Hello 算法 1.0.0b4 Golang版
系时,可以使用数组作为查找 表。例如,我们有一个字符到其 ASCII 码的映射,可以将字符的 ASCII 码值作为索引,对应的元素存 放在数组中的对应位置。 ‧ 机器学习:神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式 构建的。数组是神经网络编程中最常使用的数据结构。 ‧ 数据结构实现:数组可以用于实现栈、队列、哈希表、堆、图等数据结构。例如,邻接矩阵是图的常见0 码力 | 347 页 | 27.40 MB | 1 年前3Hello 算法 1.1.0 Go版
查找表:当需要快速查找一个元素或其对应关系时,可以使用数组作为查找表。假如我们想实现字符到 ASCII 码的映射,则可以将字符的 ASCII 码值作为索引,对应的元素存放在数组中的对应位置。 ‧ 机器学习:神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式 构建的。数组是神经网络编程中最常使用的数据结构。 ‧ 数据结构实现:数组可以用于实现栈、队列、哈希表、堆、图等数据结构。例如,图的邻接矩阵表示实0 码力 | 383 页 | 18.48 MB | 1 年前3Hello 算法 1.0.0 Golang版
查找表:当需要快速查找一个元素或其对应关系时,可以使用数组作为查找表。假如我们想实现字符到 ASCII 码的映射,则可以将字符的 ASCII 码值作为索引,对应的元素存放在数组中的对应位置。 ‧ 机器学习:神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式 构建的。数组是神经网络编程中最常使用的数据结构。 ‧ 数据结构实现:数组可以用于实现栈、队列、哈希表、堆、图等数据结构。例如,图的邻接矩阵表示实0 码力 | 382 页 | 17.60 MB | 1 年前3
共 13 条
- 1
- 2