• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签: 连分数  shor算法  

资源简介

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

评论

共有 条评论

相关资源