ap源码
Ⅰ 什么是ECC
ECC
ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就作出视图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。
通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。
2 ECC(Elliptic Curve Cryptosystems )椭圆曲线密码体制
2002年,美国SUN公司将其开发的椭圆加密技术赠送给开放源代码工程
公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所确定的平面曲线。其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。
椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。
德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制,我国也有一些密码学者做了这方面的工作。许多标准化组织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。对于椭圆曲线密码的研究也是方兴未艾,从ASIACRYPTO’98上专门开辟了ECC的栏目可见一斑。
在椭圆曲线密码体制的标准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它们所开发的椭圆曲线标准的文档有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中国颁布的无线局域网国家标准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全机制,能为用户的WLAN系统提供全面的安全保护。这种安全机制由 WAI和WPI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。WAI采用公开密钥密码体制,利用证书来对WLAN系统中的用户和AP进行认证。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名,这里的签名采用的就是椭圆曲线ECC算法。
加拿大Certicom公司是国际上最着名的ECC密码技术公司,已授权300多家企业使用ECC密码技术,包括Cisco 系统有限公司、摩托罗拉、Palm等企业。Microsoft将Certicom公司的VPN嵌入微软视窗移动2003系统中。
Ⅱ Akima 插值和样条插值的C语言源代码,要有注释。
Akima插值
附带的图片为运行结果
#include"stdio.h"
#include"math.h"
#include"interpolation.h"
voidinterpolation_akima(AKINTEPap){
intnum,k,kk,m,l;
doublepio,*mtr,*x,*y,u[5],p,q;
num=ap->n;k=ap->k;
pio=ap->t;mtr=ap->s;
x=ap->x;y=ap->y;
if(num<1){
return;
}
elseif(num==1){
mtr[0]=mtr[4]=y[0];
return;
}
elseif(num==2){
mtr[0]=y[0];
mtr[1]=(y[1]-y[0])/(x[1]-x[0]);
if(k<0)
mtr[4]=(y[0]*(pio-x[1])-y[1]*(pio-x[0]))/(x[0]-x[1]);
return;
}
if(k<0){
if(pio<=x[1])kk=0;
elseif(pio>=x[num-1])kk=num-2;
else{
kk=1;m=num;
while(((kk-m)!=1)&&((kk-m)!=-1)){
l=(kk+m)/2;
if(pio<x[l-1])m=l;
elsekk=l;
}
kk--;
}
}
elsekk=k;
if(kk>=num-1)kk=num-2;
u[2]=(y[kk+1]-y[kk])/(x[kk+1]-x[kk]);
if(num==3){
if(kk==0){
u[3]=(y[2]-y[1])/(x[2]-x[1]);
u[4]=2.0*u[3]-u[2];
u[1]=2.0*u[2]-u[3];
u[0]=2.0*u[1]-u[2];
}
else{
u[1]=(y[1]-y[0])/(x[1]-x[0]);
u[0]=2.0*u[1]-u[2];
u[3]=2.0*u[2]-u[1];
u[4]=2.0*u[3]-u[2];
}
}
else{
if(kk<=1){
u[3]=(y[kk+2]-y[kk+1])/(x[kk+2]-x[kk+1]);
if(kk==1){
u[1]=(y[1]-y[0])/(x[1]-x[0]);
u[0]=2.0*u[1]-u[2];
if(num==4)u[4]=2.0*u[3]-u[2];
elseu[4]=(y[4]-y[3])/(x[4]-x[3]);
}
else{
u[1]=2.0*u[2]-u[3];
u[0]=2.0*u[1]-u[2];
u[4]=(y[3]-y[2])/(x[3]-x[2]);
}
}
elseif(kk>=(num-3)){
u[1]=(y[kk]-y[kk-1])/(x[kk]-x[kk-1]);
if(kk==(num-3)){
u[3]=(y[num-1]-y[num-2])/(x[num-1]-x[num-2]);
u[4]=2.0*u[3]-u[2];
if(num==4)u[0]=2.0*u[1]-u[2];
elseu[0]=(y[kk-1]-y[kk-2])/(x[kk-1]-x[kk-2]);
}
else{
u[3]=2.0*u[2]-u[1];
u[4]=2.0*u[3]-u[2];
u[0]=(y[kk-1]-y[kk-2])/(x[kk-1]-x[kk-2]);
}
}
else{
u[1]=(y[kk]-y[kk-1])/(x[kk]-x[kk-1]);
u[0]=(y[kk-1]-y[kk-2])/(x[kk-1]-x[kk-2]);
u[3]=(y[kk+2]-y[kk+1])/(x[kk+2]-x[kk+1]);
u[4]=(y[kk+3]-y[kk+2])/(x[kk+3]-x[kk+2]);
}
}
mtr[0]=fabs(u[3]-u[2]);
mtr[1]=fabs(u[0]-u[1]);
if((fabs(mtr[0])<0.0000001)&&(fabs(mtr[1])<0.0000001))
p=(u[1]+u[2])/2.0;
elsep=(mtr[0]*u[1]+mtr[1]*u[2])/(mtr[0]+mtr[1]);
mtr[0]=fabs(u[3]-u[4]);
mtr[1]=fabs(u[2]-u[1]);
if((fabs(mtr[0])<0.0000001)&&(fabs(mtr[1])<0.0000001))
q=(u[2]+u[3])/2.0;
elseq=(mtr[0]*u[2]+mtr[1]*u[3])/(mtr[0]+mtr[1]);
mtr[0]=y[kk];
mtr[1]=p;
mtr[3]=x[kk+1]-x[kk];
mtr[2]=(3.0*u[2]-2.0*p-q)/mtr[3];
mtr[3]=(q+p-2.0*u[2])/(mtr[3]*mtr[3]);
if(k<0){
p=pio-x[kk];
mtr[4]=mtr[0]+mtr[1]*p+mtr[2]*p*p+mtr[3]*p*p*p;
}
return;
}
main()
{
doublex[11]={3.0,5.0,8.0,13.0,17.0,25.0,27.0,29.0,31.0,35.0,39.0};
doubley[11]={7.0,10.0,11.0,17.0,23.0,18.0,13.0,6.0,3.0,1.0,0.0};
AKINTEaa={11,x,y,-1,14.0,{0}};
AKINTEab={11,x,y,-1,28.0,{0}};
printf(" ");
interpolation_akima(&aa);
printf("x=%6.3f,f(x)=%e ",aa.t,aa.s[4]);
printf("mtr0=%e,mtr1=%e,mtr2=%e,mtr3=%e ",aa.s[0],aa.s[1],aa.s[2],aa.s[3]);
printf(" ");
interpolation_akima(&ab);
printf("x=%6.3f,f(x)=%e ",ab.t,ab.s[4]);
printf("mtr0=%e,mtr1=%e,mtr2=%e,mtr3=%e ",ab.s[0],ab.s[1],ab.s[2],ab.s[3]);
printf(" ");
}
三次样条插值的实现
1、程序比较简单的:
#include<iostream>
#include<iomanip>
usingnamespacestd;
constintMAX=50;
floatx[MAX],y[MAX],h[MAX];
floatc[MAX],a[MAX],fxym[MAX];
floatf(intx1,intx2,intx3){
floata=(y[x3]-y[x2])/(x[x3]-x[x2]);
floatb=(y[x2]-y[x1])/(x[x2]-x[x1]);
return(a-b)/(x[x3]-x[x1]);
}//求差分
voidcal_m(intn){//用追赶法求解出弯矩向量M……
floatB[MAX];
B[0]=c[0]/2;
for(inti=1;i<n;i++)
B[i]=c[i]/(2-a[i]*B[i-1]);
fxym[0]=fxym[0]/2;
for(i=1;i<=n;i++)
fxym[i]=(fxym[i]-a[i]*fxym[i-1])/(2-a[i]*B[i-1]);
for(i=n-1;i>=0;i--)
fxym[i]=fxym[i]-B[i]*fxym[i+1];
}
voidprintout(intn);
intmain(){
intn,i;charch;
do{
cout<<"Pleaseputinthenumberofthedots:";
cin>>n;
for(i=0;i<=n;i++){
cout<<"PleaseputinX"<<i<<':';
cin>>x[i];//cout<<endl;
cout<<"PleaseputinY"<<i<<':';
cin>>y[i];//cout<<endl;
}
for(i=0;i<n;i++)//求步长
h[i]=x[i+1]-x[i];
cout<<"Please输入边界条件 1:已知两端的一阶导数 2:两端的二阶导数已知 默认:自然边界条件 ";
intt;
floatf0,f1;
cin>>t;
switch(t){
case1:cout<<"PleaseputinY0'Y"<<n<<"' ";
cin>>f0>>f1;
c[0]=1;a[n]=1;
fxym[0]=6*((y[1]-y[0])/(x[1]-x[0])-f0)/h[0];
fxym[n]=6*(f1-(y[n]-y[n-1])/(x[n]-x[n-1]))/h[n-1];
break;
case2:cout<<"PleaseputinY0"Y"<<n<<"" ";
cin>>f0>>f1;
c[0]=a[n]=0;
fxym[0]=2*f0;fxym[n]=2*f1;
break;
default:cout<<"不可用 ";//待定
};//switch
for(i=1;i<n;i++)
fxym[i]=6*f(i-1,i,i+1);
for(i=1;i<n;i++){
a[i]=h[i-1]/(h[i]+h[i-1]);
c[i]=1-a[i];
}
a[n]=h[n-1]/(h[n-1]+h[n]);
cal_m(n);
cout<<" 输出三次样条插值函数: ";
printout(n);
cout<<"Doyoutohaveanthertry?y/n:";
cin>>ch;
}while(ch=='y'||ch=='Y');
return0;
}
voidprintout(intn){
cout<<setprecision(6);
for(inti=0;i<n;i++){
cout<<i+1<<":["<<x[i]<<","<<x[i+1]<<"] "<<" ";
/*
cout<<fxym[i]/(6*h[i])<<"*("<<x[i+1]<<"-x)^3+"<<<<"*(x-"<<x[i]<<")^3+"
<<(y[i]-fxym[i]*h[i]*h[i]/6)/h[i]<<"*("<<x[i+1]<<"-x)+"
<<(y[i+1]-fxym[i+1]*h[i]*h[i]/6)/h[i]<<"(x-"<<x[i]<<") ";
cout<<endl;*/
floatt=fxym[i]/(6*h[i]);
if(t>0)cout<<t<<"*("<<x[i+1]<<"-x)^3";
elsecout<<-t<<"*(x-"<<x[i+1]<<")^3";
t=fxym[i+1]/(6*h[i]);
if(t>0)cout<<"+"<<t<<"*(x-"<<x[i]<<")^3";
elsecout<<"-"<<-t<<"*(x-"<<x[i]<<")^3";
cout<<" ";
t=(y[i]-fxym[i]*h[i]*h[i]/6)/h[i];
if(t>0)cout<<"+"<<t<<"*("<<x[i+1]<<"-x)";
elsecout<<"-"<<-t<<"*("<<x[i+1]<<"-x)";
t=(y[i+1]-fxym[i+1]*h[i]*h[i]/6)/h[i];
if(t>0)cout<<"+"<<t<<"*(x-"<<x[i]<<")";
elsecout<<"-"<<-t<<"*(x-"<<x[i]<<")";
cout<<endl<<endl;
}
cout<<endl;
}
2、程序比较复杂的:
(程序前面的01.,02.,03.等等为语句编号,实际应用时请一一删除)01./*=======================================================================*/
02.#include<stdio.h>
03.////////////////////////////////////////////////////////////////////////////////
04.#defineMAXNUM50//定义样条数据区间个数最多为50个
05.typedefstructSPLINE//定义样条结构体,用于存储一条样条的所有信息
06.{//初始化数据输入
07.floatx[MAXNUM+1];//存储样条上的点的x坐标,最多51个点
08.floaty[MAXNUM+1];//存储样条上的点的y坐标,最多51个点
09.unsignedintpoint_num;//存储样条上的实际的点的个数
10.floatbegin_k1;//开始点的一阶导数信息
11.floatend_k1;//终止点的一阶导数信息
12.//floatbegin_k2;//开始点的二阶导数信息
13.//floatend_k2;//终止点的二阶导数信息
14.//计算所得的样条函数S(x)
15.floatk1[MAXNUM+1];//所有点的一阶导数信息
16.floatk2[MAXNUM+1];//所有点的二阶导数信息
17.//51个点之间有50个段,func[]存储每段的函数系数
18.floata3[MAXNUM],a1[MAXNUM];
19.floatb3[MAXNUM],b1[MAXNUM];
20.//分段函数的形式为Si(x)=a3[i]*{x(i+1)-x}^3+a1[i]*{x(i+1)-x}+
21.//b3[i]*{x-x(i)}^3+b1[i]*{x-x(i)}
22.//xi为x[i]的值,xi_1为x[i+1]的值
23.}SPLINE,*pSPLINE;
24.typedefintRESULT;//返回函数执行的结果状态,下面为具体的返回选项
25.#ifndefTRUE
26.#defineTRUE1
27.#endif
28.#ifndefFALSE
29.#defineFALSE-1
30.#endif
31.#ifndefNULL
32.#defineNULL0
33.#endif
34.#ifndefERR
35.#defineERR-2
36.#endif
37.//////////////////////////////////////////////////////////////////////////////////
38./*===============================================================================
39.***函数名称:Spline3()
40.***功能说明:完成三次样条差值,其中使用追赶法求解M矩阵
41.***入口参数:(pSPLINE)pLine样条结构体指针pLine中的x[],y[],num,begin_k1,end_k1
42.***出口参数:(pSPLINE)pLine样条结构体指针pLine中的函数参数
43.***返回参数:返回程序执行结果的状态TRUEorFALSE
44.================================================================================*/
45.RESULTSpline3(pSPLINEpLine)
46.{
47.floatH[MAXNUM]={0};//小区间的步长
48.floatFi[MAXNUM]={0};//中间量
49.floatU[MAXNUM+1]={0};//中间量
50.floatA[MAXNUM+1]={0};//中间量
51.floatD[MAXNUM+1]={0};//中间量
52.floatM[MAXNUM+1]={0};//M矩阵
53.floatB[MAXNUM+1]={0};//追赶法中间量
54.floatY[MAXNUM+1]={0};//追赶法中间变量
55.inti=0;
56.////////////////////////////////////////计算中间参数
57.if((pLine->point_num<3)||(pLine->point_num>MAXNUM+1))
58.{
59.returnERR;//输入数据点个数太少或太多
60.}
61.for(i=0;i<=pLine->point_num-2;i++)
62.{//求H[i]
63.H[i]=pLine->x[i+1]-pLine->x[i];
64.Fi[i]=(pLine->y[i+1]-pLine->y[i])/H[i];//求F[x(i),x(i+1)]
65.}
66.for(i=1;i<=pLine->point_num-2;i++)
67.{//求U[i]和A[i]和D[i]
68.U[i]=H[i-1]/(H[i-1]+H[i]);
69.A[i]=H[i]/(H[i-1]+H[i]);
70.D[i]=6*(Fi[i]-Fi[i-1])/(H[i-1]+H[i]);
71.}
72.//若边界条件为1号条件,则
73.U[i]=1;
74.A[0]=1;
75.D[0]=6*(Fi[0]-pLine->begin_k1)/H[0];
76.D[i]=6*(pLine->end_k1-Fi[i-1])/H[i-1];
77.//若边界条件为2号条件,则
78.//U[i]=0;
79.//A[0]=0;
80.//D[0]=2*begin_k2;
81.//D[i]=2*end_k2;
82./////////////////////////////////////////追赶法求解M矩阵
83.B[0]=A[0]/2;
84.for(i=1;i<=pLine->point_num-2;i++)
85.{
86.B[i]=A[i]/(2-U[i]*B[i-1]);
87.}
88.Y[0]=D[0]/2;
89.for(i=1;i<=pLine->point_num-1;i++)
90.{
91.Y[i]=(D[i]-U[i]*Y[i-1])/(2-U[i]*B[i-1]);
92.}
93.M[pLine->point_num-1]=Y[pLine->point_num-1];
94.for(i=pLine->point_num-1;i>0;i--)
95.{
96.M[i-1]=Y[i-1]-B[i-1]*M[i];
97.}
98.//////////////////////////////////////////计算方程组最终结果
99.for(i=0;i<=pLine->point_num-2;i++)
100.{
101.pLine->a3[i]=M[i]/(6*H[i]);
102.pLine->a1[i]=(pLine->y[i]-M[i]*H[i]*H[i]/6)/H[i];
103.pLine->b3[i]=M[i+1]/(6*H[i]);
104.pLine->b1[i]=(pLine->y[i+1]-M[i+1]*H[i]*H[i]/6)/H[i];
105.}
106.returnTRUE;
107.}
108.//////////////////////////////////////////////////////////////////////////////////
109.SPLINEline1;
110.pSPLINEpLine1=&line1;
111.//////////////////////////////////////////////////////////////////////////////////
112.main()
113.{
114.line1.x[0]=27.7;
115.line1.x[1]=28;
116.line1.x[2]=29;
117.line1.x[3]=30;
118.line1.y[0]=4.1;
119.line1.y[1]=4.3;
120.line1.y[2]=4.1;
121.line1.y[3]=3.0;
122.line1.point_num=4;
123.line1.begin_k1=3.0;
124.line1.end_k1=-4.0;
125.Spline3(pLine1);
126.return0;
127.}
128.//////////////////////////////////////////////////////////////////////////////////
Ⅲ 大家好,请问有谁知道携程网是哪个公司开发或者哪里有类似携程网预定酒店、机票的源代码下载啊谢谢啦
携程旅行网创立于1999年,总部设在中国上海,目前在北京、广州、深圳、成都、杭州有五个分公司,并在三十多个城市有分支机构。,现有员工三千余人。
携程旅行网于2003年12月9日在美国纳斯达克成功上市。
作为中国领先的综合性旅行服务公司,携程旅行网向超过一千余万注册会员提供包括酒店预订、机票预订、度假预订、商旅管理、特惠商户以及旅游资讯在内的全方位旅行服务。
目前,携程旅行网拥有国内外五千余家会员酒店可供预订,是中国领先的酒店预订服务中心,每月酒店预订量达到五十余万间夜。
在机票预订方面,携程旅行网是中国领先的机票预订服务平台,覆盖国内外所有航线,并在四十三个大中城市提供免费送机票服务,每月出票量四十余万张。
携程旅行网的度假超市提供近千条度假线路,覆盖海内外众多目的地,并且提供从北京、上海、广州、深圳、杭州、成都六地出发,是中国领先的度假旅行服务网络,每月为万余人次提供度假服务。
携程旅行网的VIP会员还可在全国主要商旅城市的近三千家特惠商户享受低至七折的消费优惠。
携程旅行网除了在自身网站上提供丰富的旅游资讯外,还委托出版了旅游丛书《携程走中国》,并委托发行旅游月刊杂志《携程自由行》。
◆历史发展:
· 1999年6月业务启动
· 1999年10月接受IDG第一轮投资
· 1999年10月份正式开通携程旅行网
· 1999年11月开始使用在线预订系统
· 2000年11月收购北京现代运通订房网络
· 2001年3月成为中国领先的宾馆分销商
· 2002年3月收购北京海岸机票业务
· 2002年5月全国中央机票预订系统启动
· 2002年10月当月交易额突破1亿人民币
· 2003年4月荣获中国旅游知名品牌
· 2003年10月建成中国领先的机票预订网络,覆盖35个城市
· 2003年12月9日在美国NASDAQ成功上市,当日涨幅88.6%。开创3年来NASDAQ开盘当日涨幅最新记录
由上可见,携程网是非常大型的网络公司,想要完全作到与其一样是不可能的,
不过可以在你们自已的网站上加上以下代码,也可以实现基本的功能:
<script language="javaScript">
var eLong_Affiliate_MemberID = 4051378;
var eLong_Hotel_City_Default = '';
var eLong_Hotel_City_Disable = '';
var eLong_Flight_City_Default = '';
</script>
<script language="javascript" src="http://icons.elong.com/affiliate/scripts/1/H0201.js" charset="gb2312"></script>
或
<script language="JavaScript">
var eLong_Affiliate_MemberID = 4051378;
var eLong_Hotel_City_Default = '';
var eLong_Hotel_City_Disable = '';
var eLong_Flight_City_Default = '';
</script>
<script language="javascript" src="http://icons.elong.com/affiliate/scripts/1/h9.js" charset="gb2312"></script>
或
<script language="JavaScript">
var eLong_Affiliate_MemberID = 4051378;
var eLong_Hotel_City_Default = '北京';
var eLong_Hotel_City_Disable = '';
var eLong_Width;
var eLong_Height;
var eLong_Hotel_Price = 'true';
var eLong_Hotel_Star = 'true';
var eLong_Hotel_Date = 'true';
var eLong_Hotel_HotCity = 'false';
var eLong_Hotel_Target = '_blank';
</script>
<script language="javascript" src="http://resource.elong.com/js/ap/Search/Hotel/DisplayHotelStyle4.js" charset="gb2312"></script>
<script TYPE="text/javascript" src="http://resource.elong.com/js/ap/Search/DictionarySearch.js" charset="gb2312"></script>
等,
祝你们成功!