随机算法基础:一些离散数学的概念
# 重要知识点梳理 # 五种重要的分布 # 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 =...
more...lec1 介绍(个人总结版)
这一节主要是入门。首先老师举了一个例子,即抽牌的问题,在 52 张牌中,连续抽到两个同样花色的牌的概率。 而在概率之后,就引入了期望的概念。 E(X + Y) = E(X) + E(Y) 然后讨论了期望的线性与否,计算了抽牌的过程的期望 # 算法的最坏时间 如上图我们可以知道,有两种计算的逻辑 由于随机算法会在算法中添加一个随机量 r,然后第一种是分别输入不同的 x,每一个 x 结合随即量 r 取一个平均值,最后将最差的 x 作为最坏期望时间 而第二种算法则是在最坏的情况下,还要将 r 设定为最差的值,即差中之差,将随机算法当作固定的看待。 # 随机算法的分类 这个分类有两类 Monte...
more...背包系统优化
在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{ ItemType...
more...存档系统
# 1. 创建一个基类用于存储数据 GameData.cs1234567891011121314151617181920212223242526272829using System.Collections;using System.Collections.Generic;using UnityEngine;[System.Serializable] // 标记该类为可序列化,这样它可以被保存到文件或传输数据。public class GameData{ public int souls; // 玩家拥有的灵魂数量,用于游戏中的资源或货币系统。 public string...
more...unity无法识别script错误
在开发的过程中,碰到了一个很奇怪的问题 而且是本来能够挂载到对象上的 script 忽然报错显示挂载失败,虽然修改了程序中的一些可能造成报错的代码后挂载成功,但是还是很奇怪 实际上原因是因为 unity 自身加载失败的问题,把 library 文件删了再重新启动一遍项目即可解决。 同时可能存在的其他问题:如果 script 自身有编译错误或者类名和文件名不符也可能会产生这个报错。
more...背包系统优化
在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{ ItemType...
more...技能系统02(Controller part)
# Skill 系统总结 # Skill Skill 类是所有技能类的基础类,提供通用的技能逻辑和方法。 # 主要特点 # 1. 冷却机制 通过 cooldown 和 cooldownTimer 属性管理技能的冷却时间。 每帧更新冷却计时器。 # 实现方式: row1234protected virtual void Update(){ cooldownTimer -= Time.deltaTime;} # 2. 技能使用逻辑 提供 CanUseSkill() 方法检查技能是否可以使用。 如果可以使用技能,则重置冷却时间并调用...
more...