首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编码并生成N以下唯一数的固定序列

编码并生成N以下唯一数的固定序列
EN

Stack Overflow用户
提问于 2019-05-19 22:07:08
回答 1查看 81关注 0票数 1

可以使用从02^n-1范围内的部分(可以使用全部)数字来创建任意的数字序列。让我们考虑所有数字都是唯一的序列。

例如,如果为n = 4,则某些序列为:

代码语言:javascript
复制
4 2 5 7 11 3
15 1 6
6 5 8 2 3 10 12 13 4

问:有没有可能在不使用内存来存储整个序列的情况下生成这样的序列?

我在考虑某种类型的函数F,它只进行位操作,并使用前一个数给出下一个数。例如在序列7 3 5 9中:F(7)=3F(3)=5F(5)=9

如果我事先知道序列,如何构建这样的函数F

EN

回答 1

Stack Overflow用户

发布于 2019-05-20 01:08:23

是的。加密是明文和密文之间的双向映射。每个明文输入都会产生一个唯一的密文输出,然后可以将其唯一地解密回原始明文。

对于数字,使用诸如DES (64位)或AES (128位)之类的块密码是最容易的。如果需要,也可以使用其他块大小。

对于给定的序列,您将需要存储密码密钥,通常与块大小一样大,以及您在明文输入中到达的位置。简单地加密整数0,1,2,3,...按顺序。输出将是给定块大小内的一系列不重复的数字。要生成相同序列中的更多数字,请从最后使用的数字开始。对于不同的序列,更改密钥并从0重新开始。每个键定义给定大小的可能块的排列。

对于允许重复的序列,使用散列函数而不是密码,散列0,1,2,3,...对于不同的序列,使用XOR块作为键的等价物,并在散列之前将其与输入进行XOR运算。如果要添加到现有序列中,则需要跟踪已到达的输入位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56208581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档