资源简介

利用有限域下矩阵的模乘运算的周期性,计算一般化Android置乱的周期 经典的Android置乱(即仿射矩阵为[1,1;1,2]的情况)也包含在内 可应用于2D数据的一般Android置乱周期的计算,例如图像置乱 参考文献:黎罗罗. Arnold型置乱变换周期的分析. 中山大学学报(自然科学版),2005

资源截图

代码片段和文件信息

function p=arnoldperiod(NM)
%ARNOLDPERIOD get period of generalized Arnold Cat map
% p=period(MN)
%
% INPUT:
%   N - size of square data matrix
%   M - affine matrix of generalized Arnold map 
%       typically:
%         1 1
%         1 2
%       generally:
%         1 p
%         q 1+p*q
% OUTPUT:
%   p - period
%
% Reference:
%   黎罗罗. Arnold型置乱变换周期的分析. 中山大学学报(自然科学版)2005
% Remark:
%   Only support N=2^i*3^j*5^k right now a more generalized size could be 
%   extended using method proposed in above paper.

if ~exist(‘M‘‘var‘)
    M=[11;12];
end

if gcd(det(M)N)==1
    % N should be 2^i*3^j*5^k
    % calculate period character code: l2 l3 l5
    pm=[235];
    for n=1:length(pm)
        cd=[110];
        A=M;
        while ~(A(11)==1&&A(12)==0&&A(21)==0&&A(22)==1)
            A=mod(M*Apm(n));
            cd(1)=cd(1)+1;
        end
        A=M;
        while ~(A(11)==1&&A(12)==0&&A(21)==0&&A(22)==1)
            A=mod(M*Apm(n)^2);
            cd(2)=cd(2)+1;
        end
        % exist s>=2 so that belta(1) = belta(2) = ... = belta(s)
        %   belta(s+j)=belta(2)*p^j
        % or exist s>=2 so that belta(1)*p = belta(2) = ... = belta(s)
        %   belta(s+j)=belta(2)*p^j
        % here s = l_p(3)
      

评论

共有 条评论