什么是D- A反应,它的原理是什么?
D-A反应 又叫Diels Alder反应即双烯合成反应,很明显,有2种烯烃做反应物,其中一个是单烯烃--提供1个C=C双键,一个是共轭二烯烃--提供C=C-C=C结构反应后,形成六元环状结构,且环中还存在1个C=C这里的R1、R2等等都是其它的原子或基团,可以是H原子,也可以是别的,当然,它们的存在会影响这个反应发生的难以程度,另外若反应物分子是不对称的,还可能出现产物的同分异构现象,即颠倒都可以反应。
什么是D-A反应?
是一种有机反应(具体而言是一种环加成反应)。共轭双烯与取代烯烃(一般称为亲双烯体)反应生成取代环己烯。即使新形成的环之中的一些原子不是碳原子,这个反应也可以继续进行。一些此类反应是可逆的,这样的环分解反应叫做逆狄尔斯-阿尔德反应或逆Diels-Alder反应(retro-Diels-Alder reaction)。Diels-Alder反应是一步完成的。加成物的结构1921年,狄尔斯和其研究生巴克(Back)研究偶氮二羧酸乙酯(半个世纪后因光延反应而在有机合成中大放光芒的试剂)与胺发生的酯变胺的反应,当他们用2-萘胺做反应的时候,根据元素分析,得到的产物是一个加成产物而不是期待的取代产物。狄尔斯敏锐地意识到这个反应与十几年前阿尔布莱希特做过的古怪反应的共同之处。这使他开始以为产物是类似阿尔布莱希特提出的双键加成产物。狄尔斯很自然地仿造阿尔布莱希特的反应,用环戊二烯替代萘胺与偶氮二羧酸乙酯作用,结果又得到第三种加成产物。通过计量加氢实验,狄尔斯发现加成物中只含有一个双键。如果产物的结构是如阿尔布莱希特提出的,那么势必要有两个双键才对。这个现象深深地吸引了狄尔斯,他与另一个研究生阿尔德一起提出了正确的双烯加成物的结构。1928年他们将结果发表。这标志着狄尔斯-阿尔德反应的正式发现。从此狄尔斯、阿尔德两个名字开始在化学史上闪闪发光。
欧几里德的欧几里德算法
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b)证明:a可以表示成a = kb + r,则r = a mod b假设d是a,b的一个公约数,则有d|a, d|b,而r = a - kb,因此d|r因此d是(b,a mod b)的公约数假设d 是(b,a mod b)的公约数,则d | b , d |r ,但是a = kb +r因此d也是(a,b)的公约数因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证。欧几里德算法就是根据这个原理来做的,其算法用C++语言描述为:void swap(int & a, int & b){int c = a;a = b;b = c;}int gcd(int a,int b){if(0 == a ){return b;}if( 0 == b){return a;}if(a > b){swap(a,b);}int c;for(c = a % b ; c > 0 ; c = a % b){a = b;b = c;}return b;}用PASCAL(DELPHI)语言可以描述为:procedure swap(var a,b:integer);varc:integer;beginc:=a;a:=b;b:=c;end;function gcd(a,b:integer):integer;varc:integer;beginif a=0 thenexit(b);if b=0 thenexit(a);if a>b thenswap(a,b);repeatc:=a mod b;a:=b;b:=c;until c=0;gcd:=b;end;
欧几里德算法是什么啊?
欧几里德算法
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:
定理:gcd(a,b) = gcd(b,a mod b)
证明:a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a, d|b,而r = a - kb,因此d|r
因此d是(b,a mod b)的公约数
假设d 是(b,a mod b)的公约数,则
d | b , d |r ,但是a = kb +r
因此d也是(a,b)的公约数
因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证。
欧几里德算法就是根据这个原理来做的,其算法用C++语言描述为:
void swap(int & a, int & b)
{
int c = a;
a = b;
b = c;
}
int gcd(int a,int b)
{
if(0 == a )
{
return b;
}
if( 0 == b)
{
return a;
}
if(a > b)
{
swap(a,b);
}
int c;
for(c = a % b ; c > 0 ; c = a % b)
{
a = b;
b = c;
}
return b;
}
参考资料:internet