# 📘 哈希函数的定义与作用 # ✅ 什么是哈希函数? 哈希函数是一个 将输入值映射到固定大小的输出空间 的函数。 输入:任意数据(整数、字符串、对象等) 输出:通常是一个固定范围的整数(例如 0 到 m−1m - 1m−1) 记作: h : \mathcal{U} \rightarrow \ 其中 U 是输入的全集 # 🧰 用途 / 作用 哈希函数被用于实现: 应用 说明 哈希表 高效的数据结构,实现 dict / map 快速查找 期望时间复杂度 O...

# 重要知识点梳理 # 五种重要的分布 # 1. 二项分布(Binomial Distribution) 定义 适用于独立重复伯努利试验(每次试验只有成功或失败两种情况)。 统计成功次数。 参数 X∼Bin(n,p)$$其中: - n是试验次数。 - p是单次试验成功的概率。 P(X=k)=(nk)pk(1−p)n−k,k=0,1,2,…,nP(X = k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k =...

这一节主要是入门。首先老师举了一个例子,即抽牌的问题,在 52 张牌中,连续抽到两个同样花色的牌的概率。 而在概率之后,就引入了期望的概念。 E(X + Y) = E(X) + E(Y) 然后讨论了期望的线性与否,计算了抽牌的过程的期望 # 算法的最坏时间 如上图我们可以知道,有两种计算的逻辑 由于随机算法会在算法中添加一个随机量 r,然后第一种是分别输入不同的 x,每一个 x 结合随即量 r 取一个平均值,最后将最差的 x 作为最坏期望时间 而第二种算法则是在最坏的情况下,还要将 r 设定为最差的值,即差中之差,将随机算法当作固定的看待。 # 随机算法的分类 这个分类有两类 Monte...

# 一、 为什么关心集中性(Concentration) 通常我们只能知道一个随机过程的期望值(比如算法的平均运行时间),但这远远不够。 我们希望了解:“实际结果通常不会离期望太远”,这就是集中性的概念。 举个例子: 一个算法的期望运行时间是 5 秒,但它可能大多数时候运行 1 秒,偶尔运行 1 分钟。那这 “平均值” 就不能准确反映真实体验。 所以我们需要知道:“它会不会很容易偏离期望?偏离的概率有多大?” # 二、几种重要的集中不等式(Concentration Inequalities) # ✅ 1. Markov 不等式 # ✅...

在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{    ItemType...

# 1. 创建一个基类用于存储数据 GameData.cs1234567891011121314151617181920212223242526272829using System.Collections;using System.Collections.Generic;using UnityEngine;[System.Serializable] // 标记该类为可序列化,这样它可以被保存到文件或传输数据。public class GameData{ public int souls; // 玩家拥有的灵魂数量,用于游戏中的资源或货币系统。 public string...

在开发的过程中,碰到了一个很奇怪的问题 而且是本来能够挂载到对象上的 script 忽然报错显示挂载失败,虽然修改了程序中的一些可能造成报错的代码后挂载成功,但是还是很奇怪 实际上原因是因为 unity 自身加载失败的问题,把 library 文件删了再重新启动一遍项目即可解决。 同时可能存在的其他问题:如果 script 自身有编译错误或者类名和文件名不符也可能会产生这个报错。

在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{    ItemType...

# 背包系统总结 前言:这一部分并不复杂,所以我将通过功能模块的区分来记录而不是细分每一个文件的功能与彼此之间的逻辑来记录 # 1. 存储模块 ItemData.cs1234567891011121314public enum ItemType{    Material,    Equipment}[CreateAssetMenu(fileName = "New Item Data", menuName = "Data/Item")]public class ItemData :...

# Skill 系统总结 # Skill Skill 类是所有技能类的基础类,提供通用的技能逻辑和方法。 # 主要特点 # 1. 冷却机制 通过 cooldown 和 cooldownTimer 属性管理技能的冷却时间。 每帧更新冷却计时器。 # 实现方式: row1234protected virtual void Update(){ cooldownTimer -= Time.deltaTime;} # 2. 技能使用逻辑 提供 CanUseSkill() 方法检查技能是否可以使用。 如果可以使用技能,则重置冷却时间并调用...