资源简介
shor量子算法中含有一个连分数的处理算法,此为改节算法的源代码,可以为进行shor算法的仿真实现提供现成资源。
代码片段和文件信息
#include
#include
#include
Euclid(int aint b)
{
int c;
while((a%b)!=0){
c=a%b;
a=b;
b=c;
}
return(b);
}
test(int aint b)
{
if(a/Euclid(ab)==1)
return 0;
else
return 1;
}
first_calculation(int aint b)
{
int ci=0temp;
while(test(ab)){
temp=a;
c=b/a;
a=b%a;
b=temp;
temp=Euclid(ab);
a=a/temp;
b=b/temp;
i++;
}
return i;
}
void second_calculation(int aint bint iint *p)
{
int jtemp;
for(j=0;j temp=a;
*(p+j)=b/a;
a=b%a;
b=temp;
}
}
void sub_calculation(int aint b[2])
{
int temp[2]tem;
temp[0]=a*b[1]+b[0];
temp[1]=b[1];
tem=Euclid(temp[0]temp[1]);
b[1]=temp[0]/tem;
b[0]=temp[1]/tem;
}
void third_calculation(int a[4]int bint *c)
{
int ijm;
int temp[2];
for(i=b-2;i>=0;i--){
temp[0]=1;
temp[1]=a[i+1];
for(j=i;j>=0;j--)
sub_calculation(a[j]temp);
for(m=0;m<2;m++)
*(c+((i+1)*3+m))=temp[m];
*(c+(i+1)*3+2)=0;
}
*c=1;
*(c+1)=a[0];
*(c+2)=0;
}
number_fun(int a)
{
int i=0;
while(a/2!=0){
i++;
a=a/2;
}
return pow(22*i+1);
}
void filter(int a[2]int bint *cint d)
{
int i;
float tem[3];
for(i=0;i<2;i++)
a[i]=a[i]*2;
int temp;
for(i=0;i temp=Euclid(*(c+i*3+1)a[1]);
*(c+i*3+2)=(*(c+i*3
- 上一篇:C++统计票数的实现源码
- 下一篇:递归和非递归解决迷宫问题
评论
共有 条评论