🔢 数字格式
警告
这些数字格式在大多数地方都适用,除了早期开发的物品数据部分。我们将在下一次物品系统重构时尝试重新设计数字支持,以便更好地处理随机化物品。
常量
提供一个固定的数值。
type: constant
value: 1
提示
在大多数情况下,您可以使用以下简写形式。
count:
type: constant
value: 1
->
count: 1
均匀随机数
在给定范围内提供一个随机数。
type: uniform
min: 1
max: 3
提示
在大多数情况下,您可以使用以下简写形式。
count:
type: uniform
min: 1
max: 3
->
count: 1~3
min 和 max 也都支持嵌套使用 提供数字的标签.
count:
type: uniform
min:
type: uniform
min: 2
max: 7
max: "<papi:skilllevel_farming>*5~<papi:skilllevel_farming>*10"
表达式
https://ezylang.github.io/EvalEx/references/references.html
type: expression
expression: "20 + 70 / 2"
提示
在大多数情况下,您可以使用以下简写形式。
count:
type: expression
expression: "<papi:skilllevel_farming> / 20 + 5"
->
count: "<papi:skilllevel_farming> / 20 + 5"
二项分布
使用二项分布作为随机数生成器
type: binomial
# 必需参数:进行独立重复的伯努利试验的次数
extra: 10
# 必需参数:每次试验的成功概率
probability: 0.2
高斯/正态分布
使用高斯/正态分布作为随机数生成器
type: gaussian
# 必需参数:随机数生成的最小值限制
# 生成的随机数值将不会小于此值
# 用途:确保随机数在合理的应用范围内,避免异常小的数值
min: 10
# 必需参数:随机数生成的最大值限制
# 生成的随机数值将不会大于此值
# 用途:确保随机数在合理的应用范围内,避免异常大的数值
max: 20
# 可选参数:高斯分布的均值(期望值)
# 定义分布的中心位置,即最可能出现的数值
# 默认值:(min + max) / 2.0,即范围的中间点
# 在此示例中:如果不指定,默认值也是 15
mean: 15
# 可选参数:高斯分布的标准差
# 衡量数据的离散程度,值越小数据越集中,值越大数据越分散
# 默认值:(max - min) / 6.0,基于"6σ 原则"(99.7% 的值落在 μ±3σ 范围内)
# 在此示例中:如果不指定,默认值为 (20-10)/6≈1.67
std-dev: 1
# 可选参数:生成有效随机数的最大尝试次数,默认为 128
# 由于高斯分布理论上范围是 (-∞, +∞),但被 min/max 截断
# 当生成的数值超出 [min,max] 范围时,会重新生成
# 此参数防止因极端情况导致的无限循环
# 如果超过尝试次数仍未生成有效值,通常会返回最接近的边界值
max-attempts: 128
偏态分布
使用偏态分布作为随机数生成器。它允许不对称分布,其中数据可以更集中地聚集在最小值或最大值附近
type: skew_normal
# 必需参数:最小预期值
min: 0
# 必需参数:最大预期值
max: 100
# 可选参数:期望算子。默认值:(min + max) / 2.0
mean: 50
# 可选参数:标准差。默认值:(max - min) / 6.0
std-dev: 10
# 可选参数:偏度
# 正值:向右偏态(右侧的尾部更长,分布的主体集中在左侧)
# 负值:向左偏态(左侧的尾部更长,分布的主体集中在右侧)
# 零值:完美对称(在本项目的实现中,其行为等同于正态分布)
# 范围:[-0.995, 0.995]。默认值:0
skewness: 0.5
# 可选参数:最大重试次数。默认值:128
max-attempts: 128
对数正态分布
使用对数正态分布作为随机数生成器。该分布始终为正且右偏,使其成为模拟货币贬值或消耗耐久度等情况的理想选择
type: log_normal
# 必需参数:最小预期值(必须大于 0)
min: 1
# 必需参数:最大预期值
max: 1000
# 方案一:直接提供真实平均值和真实标准差(直观)
# 生成器将自动计算对数的平均值(μ)和标准差(σ)参数。
mean: 50
std-dev: 20
# 方案二:对数参数(高级)
# location(μ):自然对数平均值
# scale(σ):自然对数的标准差
# location: 3.5
# scale: 0.5
# 可选参数:最大重试次数。默认值:128
max-attempts: 128
三角分布
使用三角分布作为随机数生成器。一种计算效率高的正态分布替代方案,具有天然的边界特性
type: triangle
# 必需参数:低限
min: 10
# 必需参数:上限
max: 100
# 可选参数:众数(三角形的顶点)
# 默认值:(min + max) / 2.0(形成一个等腰三角形)
mode: 30
贝塔分布
使用贝塔分布作为随机数生成器。一种在固定范围内定义的极具灵活性的分布,通过调整两个形状参数即可模拟多种其他分布。
type: beta
# 可选参数:最小预期值。默认值:0.0
min: 0
# 可选参数:最大预期值。默认值:1.0
max: 10
# 可选参数:Alpha 形状参数(α)。默认值:2.0
# alpha 值越大,分布密度越向最大值(右端)集中
alpha: 5.0
# 可选参数:Beta 形状参数(β)。默认值:2.0
# beta 值越大,分布密度越向最小值(左端)集中
beta: 2.0
加权列表
基于权重从数值列表中随机选取一个返回值
type: weighted
# 必需参数:以 '数值: 权重' 对的映射表
# 权重总和无需为 100,生成器会自动计算相对概率
weights:
"10": 70 # 70% 的概率返回 10
"50": 25 # 25% 的概率返回 50
"200": 5 # 5% 的概率返回 200
指数分布
使用指数分布作为随机数生成器。常用于模拟随机事件之间的时间间隔
type: exponential
# 可选参数:最小预期值。默认值:0.0
min: 0
# 可选参数:最大预期值。默认值:双精度浮点数最大值(1.7976931348623157 乘以 10 的 308 次方)
max: 60
# 必需参数(选择以下之一):
# lambda(λ):速率参数(单位时间内事件的平均次数)
# mean:平均间隔(均值 = 1/lambda)
mean: 10