You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求基于0至90!-1种子的无重复高对比度自定义伪随机加密函数

自定义伪随机排列函数实现方案

核心需求拆解

你需要的本质是一个确定性双射函数:输入0~90!-1的种子,输出同范围的唯一值(保证无重复),且低输入对应高输出,最终用于生成90个元素的唯一排列,同时完全不依赖第三方伪随机数生成器(避免版本变更影响解密)。

解决方案实现

1. 基础双射变换(满足低种子→高输出)

最简单的满足“低输入对应高输出”的双射是对种子取补,因为90!-1是最大种子值,补变换后:

  • 输入0 → 输出90!-1
  • 输入1 → 输出90!-2
  • ...
  • 输入90!-1 → 输出0
    这个变换完全确定性,且绝对无重复。

2. 结合阶乘进制生成排列(替代random模块)

你的现有代码是阶乘进制解码生成排列的思路,但存在循环范围错误(应从90开始递减到1,而非81)。以下是修正后的完整代码,结合补变换实现需求:

import math

def generate_permutation(seed):
    max_seed = math.factorial(90) - 1
    # 补变换:低种子转成高数值,满足需求
    transformed_seed = max_seed - seed
    
    a = list(range(90))  # 初始列表:0到89
    permutation = []
    p = transformed_seed
    
    # 从90个元素开始,逐步选取元素生成排列
    for i in range(90, 0, -1):
        idx = p % i
        permutation.append(a[idx])
        a.pop(idx)
        p = p // i
    
    return permutation

# 反向函数:从排列还原原始种子(用于解密)
def permutation_to_seed(permutation):
    max_seed = math.factorial(90) - 1
    a = list(range(90))
    seed = 0
    
    for num in permutation:
        idx = a.index(num)
        seed = seed * len(a) + idx
        a.pop(idx)
    
    # 反向补变换还原原始种子
    original_seed = max_seed - seed
    return original_seed

3. 单独生成变换后的种子(若需独立数值输出)

如果你的需求是先得到变换后的0~90!-1数值,再用该数值生成排列,可单独提取变换函数:

import math

def seed_transform(seed):
    max_seed = math.factorial(90) - 1
    # 补变换实现低→高映射,双射无重复
    return max_seed - seed

# 用变换后的种子生成排列的函数
def permutation_from_transformed_seed(transformed_seed):
    a = list(range(90))
    permutation = []
    p = transformed_seed
    
    for i in range(90, 0, -1):
        idx = p % i
        permutation.append(a[idx])
        a.pop(idx)
        p = p // i
    
    return permutation

关键说明

  • 确定性与稳定性:阶乘进制的编码/解码完全是数学运算,不依赖任何第三方PRNG,无论Python版本如何更新,逻辑都不会变化,完全保证解密的可靠性。
  • 无重复保证:补变换是双射,阶乘进制与排列是一一对应的,因此所有种子输入都会得到唯一的排列,遍历所有种子时不会出现重复结果。
  • 可扩展伪随机性:如果需要更复杂的伪随机效果,可在补变换后加入可逆线性变换(比如(transformed_seed * k) % max_seed,其中k需与max_seed互质),既保证双射,又能增加输出的“随机性”。

内容的提问来源于stack exchange,提问作者Kuaaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:06:42