-
上下文無關(guān)文法(Context-Free Grammar, CFG)是一個(gè)4元組G=(V, T, S, P),其中,V和T是不相交的有限集,S∈V,P是一組有限的產(chǎn)生式規(guī)則集,形如A→α,其中A∈V,且α∈(V∪T)*。V的元素稱為非終結(jié)符,T的元素稱為終結(jié)符,S是一個(gè)特殊的非終結(jié)符,稱為文法開始符。
設(shè)G=(V, T, S, P)是一個(gè)CFG,則G產(chǎn)生的語(yǔ)言是所有可由G產(chǎn)生的字符串組成的集合,即L(G)={x∈T* | Sx}。一個(gè)語(yǔ)言L是上下文無關(guān)語(yǔ)言(Context-Free Language, CFL),當(dāng)且僅當(dāng)存在一個(gè)CFG G,使得L=L(G)。 *⇒
例如,設(shè)文法G:S→AB
A→aA|a
B→bB|b
則L(G)={a^nb^m | n,m>=1}
其中非終結(jié)符都是大寫字母,開始符都是S,終結(jié)符都是小寫字母。
標(biāo)簽:
Context-Free
Grammar
CFG
上傳時(shí)間:
2013-12-10
上傳用戶:gaojiao1999
-
GPS系統(tǒng)接收數(shù)據(jù)坐標(biāo)轉(zhuǎn)換
GPS接收的數(shù)據(jù)往往是三維坐標(biāo),而在科學(xué)研究中我們通常用二維坐標(biāo)。因此必須
進(jìn)行坐標(biāo)轉(zhuǎn)換,下面我們介紹一種坐標(biāo)轉(zhuǎn)換,即把WGS84坐標(biāo)轉(zhuǎn)換為高斯—克呂
格坐標(biāo)系。數(shù)字地圖投影的方法很多,而我國(guó)采用了高斯—克呂格投影,它是一
種橫軸橢園柱面等角投影,用一個(gè)橢球柱面與地球橢球在某一子午圈L0上相切,
這條子午線通常稱做投影軸子午線。也就是高斯-克呂格投影直角坐標(biāo)系的x 軸,
地球的赤道與橢圓柱面相交, 成一直線,這條直線與軸子午線正交,就是平面直角坐
標(biāo)系的y軸,把橢球柱面展開,就得到以(x,y)為坐標(biāo)的平面直角坐標(biāo)系。為減少
投影變形,按經(jīng)度把橢球分為許多帶,各帶分別投影,經(jīng)常采用的是3度和6度帶。
為使y值不為負(fù)值,通常在y軸上加上500km。
已知WGS84坐標(biāo)(B,L),B為GPS定位輸出成果的緯度,L為GPS定位輸出成果的經(jīng)度。
由WGS84到高斯-克呂格坐標(biāo)(x,y)的轉(zhuǎn)換成高斯投影正算,詳見本軟件
標(biāo)簽:
GPS
接收
數(shù)據(jù)
上傳時(shí)間:
2014-01-26
上傳用戶:小眼睛LSL
-
flash 鍵盤音效取自win2000系統(tǒng)ding.wav,經(jīng)過CoolEdit處理成音階,在Flash中導(dǎo)入在相應(yīng)按鈕上。
沒有難度,就是耐心一點(diǎn),成績(jī)不錯(cuò)哦!
對(duì)應(yīng)表:
低音G-a #G-w A-s #A-e B-d
中音C-f #C-t D-g #D-y E-h F-j #F-i G-k #G-o A-l #A-p B-
高音C-1 D-2 E-3 F-4 G-5 A-6 B-7 C(high)-8
#C-c #D-v #F-b #G-n #A-m
標(biāo)簽:
flash
2000
ding
win
上傳時(shí)間:
2014-02-06
上傳用戶:ljmwh2000
-
【問題描述】
在一個(gè)N*N的點(diǎn)陣中,如N=4,你現(xiàn)在站在(1,1),出口在(4,4)。你可以通過上、下、左、右四種移動(dòng)方法,在迷宮內(nèi)行走,但是同一個(gè)位置不可以訪問兩次,亦不可以越界。表格最上面的一行加黑數(shù)字A[1..4]分別表示迷宮第I列中需要訪問并僅可以訪問的格子數(shù)。右邊一行加下劃線數(shù)字B[1..4]則表示迷宮第I行需要訪問并僅可以訪問的格子數(shù)。如圖中帶括號(hào)紅色數(shù)字就是一條符合條件的路線。
給定N,A[1..N] B[1..N]。輸出一條符合條件的路線,若無解,輸出NO ANSWER。(使用U,D,L,R分別表示上、下、左、右。)
2 2 1 2
(4,4) 1
(2,3) (3,3) (4,3) 3
(1,2) (2,2) 2
(1,1) 1
【輸入格式】
第一行是數(shù)m (n < 6 )。第二行有n個(gè)數(shù),表示a[1]..a[n]。第三行有n個(gè)數(shù),表示b[1]..b[n]。
【輸出格式】
僅有一行。若有解則輸出一條可行路線,否則輸出“NO ANSWER”。
標(biāo)簽:
點(diǎn)陣
上傳時(shí)間:
2014-06-21
上傳用戶:llandlu
-
#include "iostream" using namespace std;
class Matrix
{
private:
double** A; //矩陣A
double *b; //向量b
public:
int size;
Matrix(int );
~Matrix();
friend double* Dooli(Matrix& );
void Input();
void Disp();
};
Matrix::Matrix(int x) {
size=x;
//為向量b分配空間并初始化為0
b=new double [x];
for(int j=0;j<x;j++)
b[j]=0;
//為向量A分配空間并初始化為0
A=new double* [x];
for(int i=0;i<x;i++)
A[i]=new double [x];
for(int m=0;m<x;m++)
for(int n=0;n<x;n++)
A[m][n]=0;
}
Matrix::~Matrix() {
cout<<"正在析構(gòu)中~~~~"<<endl;
delete b;
for(int i=0;i<size;i++)
delete A[i];
delete A;
}
void Matrix::Disp()
{
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
}
void Matrix::Input()
{
cout<<"請(qǐng)輸入A:"<<endl;
for(int i=0;i<size;i++)
for(int j=0;j<size;j++){
cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl;
cin>>A[i][j];
}
cout<<"請(qǐng)輸入b:"<<endl;
for(int j=0;j<size;j++){
cout<<"第"<<j+1<<"個(gè):"<<endl;
cin>>b[j];
}
}
double* Dooli(Matrix& A) {
double *Xn=new double [A.size];
Matrix L(A.size),U(A.size);
//分別求得U,L的第一行與第一列
for(int i=0;i<A.size;i++)
U.A[0][i]=A.A[0][i];
for(int j=1;j<A.size;j++)
L.A[j][0]=A.A[j][0]/U.A[0][0];
//分別求得U,L的第r行,第r列
double temp1=0,temp2=0;
for(int r=1;r<A.size;r++){
//U
for(int i=r;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp1=temp1+L.A[r][k]*U.A[k][i];
U.A[r][i]=A.A[r][i]-temp1;
}
//L
for(int i=r+1;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp2=temp2+L.A[i][k]*U.A[k][r];
L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r];
}
}
cout<<"計(jì)算U得:"<<endl;
U.Disp();
cout<<"計(jì)算L的:"<<endl;
L.Disp();
double *Y=new double [A.size];
Y[0]=A.b[0];
for(int i=1;i<A.size;i++ ){
double temp3=0;
for(int k=0;k<i-1;k++)
temp3=temp3+L.A[i][k]*Y[k];
Y[i]=A.b[i]-temp3;
}
Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1];
for(int i=A.size-1;i>=0;i--){
double temp4=0;
for(int k=i+1;k<A.size;k++)
temp4=temp4+U.A[i][k]*Xn[k];
Xn[i]=(Y[i]-temp4)/U.A[i][i];
}
return Xn;
}
int main()
{
Matrix B(4);
B.Input();
double *X;
X=Dooli(B);
cout<<"~~~~解得:"<<endl;
for(int i=0;i<B.size;i++)
cout<<"X["<<i<<"]:"<<X[i]<<" ";
cout<<endl<<"呵呵呵呵呵";
return 0;
}
標(biāo)簽:
道理特分解法
上傳時(shí)間:
2018-05-20
上傳用戶:Aa123456789
-
特點(diǎn): 精確度0.1%滿刻度 可作各式數(shù)學(xué)演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT類比輸出功能 輸入與輸出絕緣耐壓2仟伏特/1分鐘(input/output/power) 寬范圍交直流兩用電源設(shè)計(jì) 尺寸小,穩(wěn)定性高
標(biāo)簽:
微電腦
數(shù)學(xué)演算
隔離傳送器
上傳時(shí)間:
2014-12-23
上傳用戶:ydd3625
-
特點(diǎn)(FEATURES) 精確度0.1%滿刻度 (Accuracy 0.1%F.S.) 可作各式數(shù)學(xué)演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 類比輸出功能(16 bit DAC isolating analog output function) 輸入/輸出1/輸出2絕緣耐壓2仟伏特/1分鐘(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 寬范圍交直流兩用電源設(shè)計(jì)(Wide input range for auxiliary power) 尺寸小,穩(wěn)定性高(Dimension small and High stability)
標(biāo)簽:
微電腦
數(shù)學(xué)演算
輸出
隔離傳送器
上傳時(shí)間:
2013-11-24
上傳用戶:541657925
-
/*--------- 8051內(nèi)核特殊功能寄存器 -------------*/
sfr ACC = 0xE0; //累加器
sfr B = 0xF0; //B 寄存器
sfr PSW = 0xD0; //程序狀態(tài)字寄存器
sbit CY = PSW^7; //進(jìn)位標(biāo)志位
sbit AC = PSW^6; //輔助進(jìn)位標(biāo)志位
sbit F0 = PSW^5; //用戶標(biāo)志位0
sbit RS1 = PSW^4; //工作寄存器組選擇控制位
sbit RS0 = PSW^3; //工作寄存器組選擇控制位
sbit OV = PSW^2; //溢出標(biāo)志位
sbit F1 = PSW^1; //用戶標(biāo)志位1
sbit P = PSW^0; //奇偶標(biāo)志位
sfr SP = 0x81; //堆棧指針寄存器
sfr DPL = 0x82; //數(shù)據(jù)指針0低字節(jié)
sfr DPH = 0x83; //數(shù)據(jù)指針0高字節(jié)
/*------------ 系統(tǒng)管理特殊功能寄存器 -------------*/
sfr PCON = 0x87; //電源控制寄存器
sfr AUXR = 0x8E; //輔助寄存器
sfr AUXR1 = 0xA2; //輔助寄存器1
sfr WAKE_CLKO = 0x8F; //時(shí)鐘輸出和喚醒控制寄存器
sfr CLK_DIV = 0x97; //時(shí)鐘分頻控制寄存器
sfr BUS_SPEED = 0xA1; //總線速度控制寄存器
/*----------- 中斷控制特殊功能寄存器 --------------*/
sfr IE = 0xA8; //中斷允許寄存器
sbit EA = IE^7; //總中斷允許位
sbit ELVD = IE^6; //低電壓檢測(cè)中斷控制位
8051
標(biāo)簽:
80C51
特殊功能寄存器
地址
上傳時(shí)間:
2013-10-30
上傳用戶:yxgi5
-
TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。
TLC2543的特點(diǎn)
(1)12位分辯率A/D轉(zhuǎn)換器;
(2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間;
(3)11個(gè)模擬輸入通道;
(4)3路內(nèi)置自測(cè)試方式;
(5)采樣率為66kbps;
(6)線性誤差±1LSBmax;
(7)有轉(zhuǎn)換結(jié)束輸出EOC;
(8)具有單、雙極性輸出;
(9)可編程的MSB或LSB前導(dǎo);
(10)可編程輸出數(shù)據(jù)長(zhǎng)度。
TLC2543的引腳排列及說明
TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1
TLC2543電路圖和程序欣賞
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit clock=P1^0; sbit d_in=P1^1;
sbit d_out=P1^2;
sbit _cs=P1^3;
uchar a1,b1,c1,d1;
float sum,sum1;
double sum_final1;
double sum_final;
uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar wei[]={0xf7,0xfb,0xfd,0xfe};
void delay(unsigned char b) //50us
{
unsigned char a;
for(;b>0;b--)
for(a=22;a>0;a--);
}
void display(uchar a,uchar b,uchar c,uchar d)
{
P0=duan[a]|0x80;
P2=wei[0];
delay(5);
P2=0xff;
P0=duan[b];
P2=wei[1];
delay(5);
P2=0xff;
P0=duan[c];
P2=wei[2];
delay(5);
P2=0xff;
P0=duan[d];
P2=wei[3];
delay(5);
P2=0xff;
}
uint read(uchar port)
{
uchar i,al=0,ah=0;
unsigned long ad;
clock=0;
_cs=0;
port<<=4;
for(i=0;i<4;i++)
{
d_in=port&0x80;
clock=1;
clock=0;
port<<=1;
}
d_in=0;
for(i=0;i<8;i++)
{
clock=1;
clock=0;
}
_cs=1;
delay(5);
_cs=0;
for(i=0;i<4;i++)
{
clock=1;
ah<<=1;
if(d_out)ah|=0x01;
clock=0;
}
for(i=0;i<8;i++)
{
clock=1;
al<<=1;
if(d_out) al|=0x01;
clock=0;
}
_cs=1;
ad=(uint)ah;
ad<<=8;
ad|=al;
return(ad);
}
void main()
{
uchar j;
sum=0;sum1=0;
sum_final=0;
sum_final1=0;
while(1)
{
for(j=0;j<128;j++)
{
sum1+=read(1);
display(a1,b1,c1,d1);
}
sum=sum1/128;
sum1=0;
sum_final1=(sum/4095)*5;
sum_final=sum_final1*1000;
a1=(int)sum_final/1000;
b1=(int)sum_final%1000/100;
c1=(int)sum_final%1000%100/10;
d1=(int)sum_final%10;
display(a1,b1,c1,d1);
}
}
標(biāo)簽:
2543
TLC
上傳時(shí)間:
2013-11-19
上傳用戶:shen1230
-
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b,c,d=0;
void delay(c)
{ for for(a=0;a<c;a++)
for(b=0;b<12;b++);
};
uchar tab[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
標(biāo)簽:
AVR
單片機(jī)
數(shù)碼管
上傳時(shí)間:
2013-10-21
上傳用戶:13788529953