📄 msequence.cpp
字号:
mPrimitive[2][48][22]=2; mPrimitive[2][48][23]=2; mPrimitive[2][48][24]=2; mPrimitive[2][48][41]=3; mPrimitive[2][48][42]=2; mPrimitive[2][48][43]=3; mPrimitive[2][48][44]=3; mPrimitive[2][48][46]=3; mPrimitive[2][48][47]=1;
mPrimitive[2][49][22]=2; mPrimitive[2][49][43]=1; mPrimitive[2][49][44]=1; mPrimitive[2][49][45]=1; mPrimitive[2][49][46]=2; mPrimitive[2][49][47]=2;
mPrimitive[2][50][23]=2; mPrimitive[2][50][24]=2; mPrimitive[2][50][25]=2; mPrimitive[2][50][46]=1; mPrimitive[2][50][47]=1; mPrimitive[2][50][48]=3; mPrimitive[2][50][49]=2;
mPrimitive[2][51][24]=2; mPrimitive[2][51][25]=2; mPrimitive[2][51][45]=1; mPrimitive[2][51][48]=1; mPrimitive[2][51][49]=2; mPrimitive[2][51][50]=3;
mPrimitive[2][52][26]=2; mPrimitive[2][52][49]=3;
mPrimitive[2][53][26]=2; mPrimitive[2][53][47]=1; mPrimitive[2][53][49]=2; mPrimitive[2][53][50]=2; mPrimitive[2][53][51]=1; mPrimitive[2][53][52]=1;
mPrimitive[2][54][24]=2; mPrimitive[2][54][25]=2; mPrimitive[2][54][26]=2; mPrimitive[2][54][27]=2; mPrimitive[2][54][48]=1; mPrimitive[2][54][49]=1; mPrimitive[2][54][50]=1; mPrimitive[2][54][51]=3; mPrimitive[2][54][52]=3; mPrimitive[2][54][53]=2;
mPrimitive[2][55][27]=2; mPrimitive[2][55][49]=1; mPrimitive[2][55][51]=2; mPrimitive[2][55][52]=2; mPrimitive[2][55][53]=1; mPrimitive[2][55][54]=1;
mPrimitive[2][56][26]=2; mPrimitive[2][56][27]=2; mPrimitive[2][56][28]=2; mPrimitive[2][56][49]=3; mPrimitive[2][56][52]=1; mPrimitive[2][56][53]=2; mPrimitive[2][56][54]=3; mPrimitive[2][56][55]=2;
mPrimitive[2][57][26]=2; mPrimitive[2][57][27]=2; mPrimitive[2][57][52]=3; mPrimitive[2][57][53]=2; mPrimitive[2][57][54]=3; mPrimitive[2][57][55]=1; mPrimitive[2][57][56]=2;
mPrimitive[2][58][26]=2; mPrimitive[2][58][29]=2; mPrimitive[2][58][52]=1; mPrimitive[2][58][53]=3; mPrimitive[2][58][57]=3;
mPrimitive[2][59][27]=2; mPrimitive[2][59][28]=2; mPrimitive[2][59][29]=2; mPrimitive[2][59][53]=1; mPrimitive[2][59][54]=1; mPrimitive[2][59][55]=3; mPrimitive[2][59][56]=3; mPrimitive[2][59][58]=3;
mPrimitive[2][60][30]=2; mPrimitive[2][60][59]=3;
mPrimitive[2][61][28]=2; mPrimitive[2][61][30]=2; mPrimitive[2][61][56]=3; mPrimitive[2][61][58]=2; mPrimitive[2][61][59]=1; mPrimitive[2][61][60]=1;
mPrimitive[2][62][28]=2; mPrimitive[2][62][31]=2; mPrimitive[2][62][56]=1; mPrimitive[2][62][57]=3; mPrimitive[2][62][58]=2; mPrimitive[2][62][59]=1;
mPrimitive[2][63][31]=2; mPrimitive[2][63][62]=3;
mPrimitive[2][64][30]=2; mPrimitive[2][64][32]=2; mPrimitive[2][64][60]=1; mPrimitive[2][64][61]=3; mPrimitive[2][64][63]=3;
mPrimitive[2][65][31]=2; mPrimitive[2][65][32]=2; mPrimitive[2][65][61]=1; mPrimitive[2][65][62]=3; mPrimitive[2][65][64]=3;
mPrimitive[2][66][29]=2; mPrimitive[2][66][30]=2; mPrimitive[2][66][32]=2; mPrimitive[2][66][33]=2; mPrimitive[2][66][58]=1; mPrimitive[2][66][59]=2; mPrimitive[2][66][60]=1; mPrimitive[2][66][61]=1; mPrimitive[2][66][62]=2; mPrimitive[2][66][63]=1; mPrimitive[2][66][64]=1; mPrimitive[2][66][65]=2;
mPrimitive[2][67][31]=2; mPrimitive[2][67][33]=2; mPrimitive[2][67][62]=3; mPrimitive[2][67][64]=2; mPrimitive[2][67][65]=1; mPrimitive[2][67][66]=1;
mPrimitive[2][68][34]=2; mPrimitive[2][68][61]=3; mPrimitive[2][68][62]=2; mPrimitive[2][68][63]=3; mPrimitive[2][68][64]=2; mPrimitive[2][68][65]=2; mPrimitive[2][68][67]=3;
mPrimitive[2][69][32]=2; mPrimitive[2][69][63]=1; mPrimitive[2][69][64]=3; mPrimitive[2][69][65]=2; mPrimitive[2][69][66]=2; mPrimitive[2][69][67]=1; mPrimitive[2][69][68]=2;
mPrimitive[2][70][35]=2; mPrimitive[2][70][65]=3; mPrimitive[2][70][66]=2; mPrimitive[2][70][67]=1; mPrimitive[2][70][68]=2; mPrimitive[2][70][69]=3;
mPrimitive[2][71][33]=2; mPrimitive[2][71][34]=2; mPrimitive[2][71][35]=2; mPrimitive[2][71][66]=3; mPrimitive[2][71][67]=2; mPrimitive[2][71][68]=1; mPrimitive[2][71][69]=2; mPrimitive[2][71][70]=3;
mPrimitive[2][72][33]=2; mPrimitive[2][72][34]=2; mPrimitive[2][72][35]=2; mPrimitive[2][72][36]=2; mPrimitive[2][72][66]=1; mPrimitive[2][72][67]=2; mPrimitive[2][72][68]=3; mPrimitive[2][72][69]=3; mPrimitive[2][72][70]=1; mPrimitive[2][72][71]=1;
mPrimitive[2][73][35]=2; mPrimitive[2][73][69]=1; mPrimitive[2][73][70]=1; mPrimitive[2][73][71]=3; mPrimitive[2][73][72]=2;
mPrimitive[2][74][35]=2; mPrimitive[2][74][37]=2; mPrimitive[2][74][67]=3; mPrimitive[2][74][69]=2; mPrimitive[2][74][70]=1; mPrimitive[2][74][71]=3; mPrimitive[2][74][72]=2;
mPrimitive[2][75][36]=2; mPrimitive[2][75][37]=2; mPrimitive[2][75][69]=1; mPrimitive[2][75][72]=1; mPrimitive[2][75][73]=2; mPrimitive[2][75][74]=3;
mPrimitive[2][76][36]=2; mPrimitive[2][76][37]=2; mPrimitive[2][76][38]=2; mPrimitive[2][76][71]=3; mPrimitive[2][76][72]=1; mPrimitive[2][76][73]=2; mPrimitive[2][76][74]=3; mPrimitive[2][76][75]=2;
mPrimitive[2][77][36]=2; mPrimitive[2][77][71]=1; mPrimitive[2][77][72]=3; mPrimitive[2][77][73]=2; mPrimitive[2][77][74]=2; mPrimitive[2][77][75]=1; mPrimitive[2][77][76]=2;
mPrimitive[2][78][38]=2; mPrimitive[2][78][39]=2; mPrimitive[2][78][71]=3; mPrimitive[2][78][74]=2; mPrimitive[2][78][76]=1; mPrimitive[2][78][77]=1;
mPrimitive[2][79][38]=2; mPrimitive[2][79][75]=1; mPrimitive[2][79][76]=1; mPrimitive[2][79][77]=3; mPrimitive[2][79][78]=2;
mPrimitive[2][80][39]=2; mPrimitive[2][80][40]=2; mPrimitive[2][80][73]=3; mPrimitive[2][80][74]=2; mPrimitive[2][80][75]=1; mPrimitive[2][80][77]=1; mPrimitive[2][80][78]=3; mPrimitive[2][80][79]=1;
mPrimitive[2][81][77]=1; mPrimitive[2][81][79]=2;
mPrimitive[2][82][37]=2; mPrimitive[2][82][38]=2; mPrimitive[2][82][39]=2; mPrimitive[2][82][41]=2; mPrimitive[2][82][74]=1; mPrimitive[2][82][75]=1; mPrimitive[2][82][76]=3; mPrimitive[2][82][77]=2; mPrimitive[2][82][78]=1; mPrimitive[2][82][79]=2; mPrimitive[2][82][80]=2; mPrimitive[2][82][81]=3;
mPrimitive[2][83][38]=2; mPrimitive[2][83][76]=3; mPrimitive[2][83][79]=1; mPrimitive[2][83][80]=2; mPrimitive[2][83][81]=3; mPrimitive[2][83][82]=2;
mPrimitive[2][84][38]=2; mPrimitive[2][84][42]=2; mPrimitive[2][84][76]=1; mPrimitive[2][84][77]=3; mPrimitive[2][84][78]=2; mPrimitive[2][84][79]=1; mPrimitive[2][84][80]=2; mPrimitive[2][84][81]=1; mPrimitive[2][84][82]=2; mPrimitive[2][84][83]=3;
mPrimitive[2][85][42]=2; mPrimitive[2][85][77]=1; mPrimitive[2][85][80]=2; mPrimitive[2][85][81]=2; mPrimitive[2][85][83]=1; mPrimitive[2][85][84]=1;
mPrimitive[2][86][40]=2; mPrimitive[2][86][42]=2; mPrimitive[2][86][43]=2; mPrimitive[2][86][80]=1; mPrimitive[2][86][81]=3; mPrimitive[2][86][82]=2; mPrimitive[2][86][83]=2; mPrimitive[2][86][84]=1; mPrimitive[2][86][85]=2;
mPrimitive[2][87][40]=2; mPrimitive[2][87][41]=2; mPrimitive[2][87][43]=2; mPrimitive[2][87][80]=3; mPrimitive[2][87][81]=2; mPrimitive[2][87][82]=3; mPrimitive[2][87][83]=2; mPrimitive[2][87][84]=2; mPrimitive[2][87][86]=3;
mPrimitive[2][88][40]=2; mPrimitive[2][88][42]=2; mPrimitive[2][88][44]=2; mPrimitive[2][88][80]=1; mPrimitive[2][88][82]=2; mPrimitive[2][88][82]=3; mPrimitive[2][88][84]=2; mPrimitive[2][88][85]=2; mPrimitive[2][88][87]=3;
mPrimitive[2][89][42]=2; mPrimitive[2][89][43]=2; mPrimitive[2][89][83]=1; mPrimitive[2][89][84]=3; mPrimitive[2][89][85]=2; mPrimitive[2][89][86]=1;
mPrimitive[2][90][44]=2; mPrimitive[2][90][45]=2; mPrimitive[2][90][85]=3; mPrimitive[2][90][86]=2; mPrimitive[2][90][87]=3; mPrimitive[2][90][88]=1; mPrimitive[2][90][89]=2;
mPrimitive[2][91][42]=2; mPrimitive[2][91][43]=2; mPrimitive[2][91][44]=2; mPrimitive[2][91][84]=3; mPrimitive[2][91][85]=3; mPrimitive[2][91][86]=1; mPrimitive[2][91][88]=1; mPrimitive[2][91][89]=1; mPrimitive[2][91][90]=2;
mPrimitive[2][92][43]=2; mPrimitive[2][92][45]=2; mPrimitive[2][92][46]=2; mPrimitive[2][92][86]=1; mPrimitive[2][92][87]=3; mPrimitive[2][92][88]=2; mPrimitive[2][92][89]=2; mPrimitive[2][92][90]=1; mPrimitive[2][92][91]=2;
mPrimitive[2][93][91]=1; mPrimitive[2][93][92]=2;
mPrimitive[2][94][44]=2; mPrimitive[2][94][47]=2; mPrimitive[2][94][88]=1; mPrimitive[2][94][89]=3; mPrimitive[2][94][93]=3;
mPrimitive[2][95][45]=2; mPrimitive[2][95][47]=2; mPrimitive[2][95][89]=1; mPrimitive[2][95][90]=1; mPrimitive[2][95][91]=3; mPrimitive[2][95][92]=2; mPrimitive[2][95][93]=3; mPrimitive[2][95][94]=1;
mPrimitive[2][96][45]=2; mPrimitive[2][96][46]=2; mPrimitive[2][96][47]=2; mPrimitive[2][96][48]=2; mPrimitive[2][96][89]=3; mPrimitive[2][96][90]=1; mPrimitive[2][96][92]=3; mPrimitive[2][96][93]=3; mPrimitive[2][96][94]=3; mPrimitive[2][96][95]=2;
mPrimitive[2][97][91]=1; mPrimitive[2][97][94]=2;
mPrimitive[2][98][47]=2; mPrimitive[2][98][48]=2; mPrimitive[2][98][49]=2; mPrimitive[2][98][91]=3; mPrimitive[2][98][93]=2; mPrimitive[2][98][94]=3; mPrimitive[2][98][95]=1; mPrimitive[2][98][96]=1; mPrimitive[2][98][97]=1;
mPrimitive[2][99][46]=2; mPrimitive[2][99][47]=2; mPrimitive[2][99][92]=3; mPrimitive[2][99][93]=2; mPrimitive[2][99][94]=3; mPrimitive[2][99][95]=1; mPrimitive[2][99][97]=2;
mPrimitive[2][100][46]=2; mPrimitive[2][100][49]=2; mPrimitive[2][100][50]=2; mPrimitive[2][100][92]=1; mPrimitive[2][100][93]=2; mPrimitive[2][100][95]=2; mPrimitive[2][100][96]=2; mPrimitive[2][100][98]=1; mPrimitive[2][100][99]=2;
//Initialization-the coefficients of primitive polynomials(5-31):
for (i=0;i<9;i++)
for (j=0;j<9;j++)
for (k=0;k<9;k++)
mPrimitive1[i][j][k]=0;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 5
mPrimitive1[0][1][0]=2; mPrimitive1[0][1][1]=1;
mPrimitive1[0][2][0]=2; mPrimitive1[0][2][1]=1; mPrimitive1[0][2][2]=1;
mPrimitive1[0][3][0]=2; mPrimitive1[0][3][1]=3; mPrimitive1[0][3][3]=1;
mPrimitive1[0][4][0]=2; mPrimitive1[0][4][1]=2; mPrimitive1[0][4][2]=1; mPrimitive1[0][4][4]=1;
mPrimitive1[0][5][0]=2; mPrimitive1[0][5][1]=4; mPrimitive1[0][5][5]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 7
mPrimitive1[1][1][0]=2; mPrimitive1[1][1][1]=1;
mPrimitive1[1][2][0]=3; mPrimitive1[1][2][1]=1; mPrimitive1[1][2][2]=1;
mPrimitive1[1][3][0]=2; mPrimitive1[1][3][1]=3; mPrimitive1[1][3][3]=1;
mPrimitive1[1][4][0]=5; mPrimitive1[1][4][1]=3; mPrimitive1[1][4][2]=1; mPrimitive1[1][4][4]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 11
mPrimitive1[2][2][0]=2; mPrimitive1[2][2][1]=4; mPrimitive1[2][2][2]=1;
mPrimitive1[2][3][0]=4; mPrimitive1[2][3][1]=1; mPrimitive1[2][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 13
mPrimitive1[3][2][0]=2; mPrimitive1[3][2][1]=1; mPrimitive1[3][2][2]=1;
mPrimitive1[3][3][0]=6; mPrimitive1[3][3][1]=1; mPrimitive1[3][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 17
mPrimitive1[4][2][0]=3; mPrimitive1[4][2][1]=1; mPrimitive1[4][2][2]=1;
mPrimitive1[4][3][0]=3; mPrimitive1[4][3][1]=1; mPrimitive1[4][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 19
mPrimitive1[5][2][0]=2; mPrimitive1[5][2][1]=1; mPrimitive1[5][2][2]=1;
mPrimitive1[5][3][0]=4; mPrimitive1[5][3][1]=1; mPrimitive1[5][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 23
mPrimitive1[6][2][0]=5; mPrimitive1[6][2][1]=2; mPrimitive1[6][2][2]=1;
mPrimitive1[6][3][0]=3; mPrimitive1[6][3][1]=1; mPrimitive1[6][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 29
mPrimitive1[7][2][0]=2; mPrimitive1[7][2][1]=5; mPrimitive1[7][2][2]=1;
mPrimitive1[7][3][0]=11; mPrimitive1[7][3][1]=1; mPrimitive1[7][3][3]=1;
//the coefficents of nonbinary primirive polynomials of degree m<=7 : 31
mPrimitive1[8][2][0]=3; mPrimitive1[8][2][1]=2; mPrimitive1[8][2][2]=1;
mPrimitive1[8][3][0]=14; mPrimitive1[8][3][1]=1; mPrimitive1[8][3][3]=1;
//to make the pseudo-random sequence:
mSeqLength=(int)pow(p,m)-1;
for (i=0;i<m-1;i++)
{
sequence[i]=0;
}
sequence[m-1]=1;
switch (p)
{
case 2:
case 3:
{
for (i=0;i<m;i++)
mPrimitive[p-2][m][i]=(p-mPrimitive[p-2][m][i])%p;
for (i=0;i<mSeqLength-m;i++)
{
sequence[i+m]=0;
for (j=0;j<m;j++)
sequence[i+m]=sequence[i+m]+mPrimitive[p-2][m][j]*sequence[i+j];
sequence[i+m]=sequence[i+m]%p;
}
}
break;
case 4:
{
for (i=0;i<m-1;i++)
ComplexSequence[i]=complex<double> (0.0,0.0);
ComplexSequence[m-1]=complex<double> (1.0,0.0);
for (i=0;i<m;i++)
ComplexPrimitive[i]=map(mPrimitive[p-2][m][i]);
for (i=0;i<mSeqLength-m;i++)
{
ComplexSequence[i+m]=complex<double> (0.0,0.0);
for (j=0;j<m;j++)
{
ComplexSequence[i+m]=ComplexSequence[i+m]+ComplexPrimitive[j]*ComplexSequence[i+j];
ComplexSequence[i+m]=plastic(ComplexSequence[i+m]);
}
sequence[i+m]=InverseMap(ComplexSequence[i+m]);
}
}
break;
default:
{
for (i=0;i<m;i++)
mPrimitive1[convert(p)][m][i]=(p-mPrimitive1[convert(p)][m][i])%p;
for (i=0;i<mSeqLength-m;i++)
{
sequence[i+m]=0;
for (j=0;j<m;j++)
sequence[i+m]=sequence[i+m]+mPrimitive1[convert(p)][m][j]*sequence[i+j];
sequence[i+m]=sequence[i+m]%p;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -