如何计算位向量的排列?

时间:2013-06-20 13:02:56

标签: algorithm permutation

给定位向量V =(101101)和置换函数:F(x)=(a * x + b)mod p。其中a和b是随机数,p是素数。如何计算向量V的置换? F(x)是否将V作为整数值,还是应该将V中的每个位用作函数的x?

2 个答案:

答案 0 :(得分:1)

是的,为了置换位向量,然后取每个位并在其上应用置换函数。

An introduction to permutation functions

答案 1 :(得分:1)

在该定义中,置换函数为向量中的每个条目提供新位置。例如。对于a = 2,b = 0,p = 7,该函数给出{0,1,2,3,4,5,6} - > {0,2,4,6,1,3,5}。

使用此功能,可以置换7个元素的任何向量,将{a,b,c,d,e,f,g}转换为{a,c,e,g,b,d,f}。

仅当向量的大小等于素数p时才有效。因此,对于位向量,将位置n处的每个元素移动到位置a * n + b mod p。

这也适用于非素数p,只要a和b与p共同素数。