// 简单的线性同余生成器
fn random_int(seed: Int) -> Int {
(seed * 1103515245 + 12345) & 0x7fffffff
}
// 自定义洗牌,基于 seed 控制随机性
fn shuffle(arr: Array[Int], seed: Int) -> Array[Int] {
let result = [..arr] // 深拷贝
let mut s = seed
let n = result.length()
let mut i = n - 1
while i >= 0 {
s = random_int(s)
let j = s % (i + 1)
let temp = result[i]
result[i] = result[j]
result[j] = temp
if i == 0 { break }
i = i - 1
}
result
}
fn make_range(start: Int, end: Int) -> Array[Int] {
if start > end {
[]
} else {
[start, ..make_range(start + 1, end)]
}
}
// 初始化置换表
fn init_permutation(seed: Int) -> Array[Int] {
let base = make_range(0, 255)
let shuffled = shuffle(base, seed)
shuffled
}