// octaves: 八度数,决定叠加层数
// persistence: 振幅衰减因子
// lacunarity: 频率增长因子
pub fn fbm2d(
  p : Array[Float],
  octaves : Int,
  persistence : Float,
  lacunarity : Float,
  perm_table : Array[Int],
  grads : Array[Array[Float]],
  base_scale : Float // 初始频率
) -> Float {
  let mut total = 0.0
  let mut amplitude = 1.0
  let mut scale = base_scale
  let mut max_amplitude = 0.0

  for _ in 0.. Float {
  let mut total = 0.0
  let mut amplitude = 1.0
  let mut scale = base_scale
  let mut max_amplitude = 0.0

  for _ in 0.. Float {
  let mut total = 0.0
  let mut amplitude = 1.0
  let mut scale = base_scale
  let mut max_amplitude = 0.0

  for _ in 0..