當前位置:首頁 » 編程語言 » c語言智能搬運
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言智能搬運

發布時間: 2023-03-09 02:11:07

c語言漢諾塔

根據漢諾塔的游戲規則可知,若只有一個盤子,則只要直接搬運就可以了,其它的不需要再做。return語句的作用,就是遇到它時,程序直接返回到調用它的地方,不再執行此函數中return語句以後的代碼。

不過這里這個return語句也可以不寫,只是代碼要稍作更改(代碼的執行還是不變的,即與更改前完全等價):

voidhanNuoTa(intn,charfrom,charto,charhelper)
{
if(n==1)
{
printf("%c--->%c ",from,to);
}
else
{
hanNuoTa(n-1,from,helper,to);
printf("%c--->%c ",from,to);
hanNuoTa(n-1,helper,to,from);
}
}

⑵ C語言能做人工智慧嗎

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:

C語言能做人工智慧嗎?

解析:

理論上講是在於演算法

但在具體的實現上,同一問題用不同的語言解決的時候的演算法設計是有區別的,即使實現了,那在效率也是有差別的

據我所知,LISP是人工智慧程序語言(很少聽說聽C做人工智慧的)

標題:LISP人工智慧程序語言

內容:

LISP的由來

LISP是一種計算機的表處理語言,是函數型語言。它是LIST Processing 的縮寫,是研究人工智慧的有力工具。

LISP最初是作為書寫字元與表的遞歸函數的形式系統出現的,1958年由美國麻省理工學院(MIT)的AI小組提出(要為問答系統設計一種語言),1960年由MIT的John.McCarthy教授(麥卡西教授,舉世聞名的計算機科學家,圖靈獎獲得者,後為美國斯坦福大學教授)整理成統稱為LISP1.0的形式發表,然後開始流行於AI界.以後陸續出現了LISP1.5(1962年),LISP1.6,MACLISP,INTERLISP,COMMONLISP,GCLISP,CCLISP等等變種。商業中一般認Berkeley(加洲大學)的LISP1.5為規范,但以目前的發展看,COMMON LISP將成為一種標准,有統一各種LISP 「方言」的趨勢。在眾多不同版本的流行LISP語言中,使用最廣泛的是INTER LISP(XEROX公司開發),MACLISP(麻省理工學院開發)和COMMON LISP。LISP是繼FORTRAN(FORTRAN是1954年提出,1956年開始使用)之後出現的第二個古老的(1958年提出,1960年開始使用)計算機高級語言,至今使用近四十年仍受重視,並為人工智慧的發展作出了不可磨滅的貢獻.由此可見LISP是一門歷史悠久,用途廣泛,功能極強,生命力極強的人工智慧程序設計語言。

LISP語言一般為解釋型語言(即由解釋程序邊解釋邊執行),但也有了編譯型的LISP語言,並已經有了專用的LISP機。例如,編譯型的LISP語言SCHEME誕生於麻省理工學院,1984年由美國15個大學和公司共同提供了被廣泛接受的SCHEME標准。德克薩斯儀器公司於1985年在IBM PC機上實現了稱為PC SCHEME的語言。PC SCHEME的中文版由南京大學和武漢大學聯合開發,可在640KB以上的PC機上在CCDOS和MSDOS下運行並可訪問其它DOS程序。

LISP語言的主要特點(優點)

(1) LISP具有和圖靈機相同的(也就是理論上最高的)計算能力;

在計算機科學的可計算理論中,人們已經證明遞歸函數和圖靈機具有相同的(也就是理論上最高的)計算能力,通常指的是自然數集上的遞歸函數。這個結論對符號集上的遞歸函數也成立。J.McCarthy在LISP中設計了一套符號處理函數,它們具有符號集上的遞歸函數的計算能力,因此原則上可以解決人工智慧中的任何符號處理問題。

(2)數據類型的唯一性,程序與數據的一致性;

LISP的數據類型和句法結構簡單,甚至簡單到具有唯一性和一致性:其數據和程序的表現形式是一樣的, 都是用S-表達式一種形式.基本的數據結構是表(表是S-表達式的特例)。

(3)數據和程序的 等價性;

LISP的數據和程序不僅類型一致,而且作用也等價;

即:程序可作為數據被處理,數據也可作為程序來執行。

(4)LISP一切功能由函數來實現,程序的運行就是求值;

LISP程序的通常形式是一串函數定義,其後跟著一串帶有參數的函數調用,函數之間的關系只是在調用執行時才體現出來。

(5)LISP語言的控制結構以遞歸為主;

大多數語言使用的控制結構是以循環為主的,有的程序語言允許遞歸,而LISP以遞歸形式為主。遞歸是LISP能力的源泉。當然現在LISP也有循環結構和迭代。

(6)原子可以有任意多個值(特性值);

LISP非常重要的一個特點是每個文字原子可以加許多特性,每個特性有一個特性表及對應的特性值。由於原子的多值性給使用者帶來很多方便,給問題表示帶來好處,使LISP很好用。

(7)LISP具有表的結構形式和規模的靈活性,不必預先設定;

(8)具有收集無用單元的功能。

LISP語言的主要缺點

(1)初學者不容易習慣LISP的句法結構,特別是多層表的括弧配對寫法;

(2)數據類型少(常用的只有表和原子),使其表達能力受限;

(3)規范性差(無標准版本,不同的LISP文本間差別較大);

(4)程序的可讀性不及一般的高級語言;

(5)執行速度慢。

LISP執行速度慢的原因有幾個:(1)一般的 LISP是解釋型, 程序邊解釋邊執行當然比編譯型慢;(2)LISP的控制結構主要是遞歸, 遞歸費時間費空間;(3)內存空間動態變化。LISP不要求用戶在程序 中寫一些用來指示內存分配的說明語句,全部內存必須動態的分配,直到 沒有空間時才開始收集無用單元。

⑶ c語言編程題 搬運磚塊:男人一人搬3塊,女人一人搬2塊,小孩兩人搬1塊,問45人搬45塊磚,有多少搬法

輸出結果為各種方法 自己看程序,區分那個男人,女人,小孩。 #include void main() { int a,b,c; for(a=0;a

⑷ 簡單的搬運工C語言代碼

程序在tc3.0下編譯通過. 回車鍵選關,我只做了兩關, r鍵重新開始 p鍵悔步,只能悔五步啊.不過你可以改#define STEPMAX的值 #define MAX 2 /*游戲中總關數*/#define STARTX 180#define STARTY 80#define ...
程序在tc3.0下編譯通過. 回車鍵

選關,我只做了兩關, r鍵重新開始

p鍵悔步,只能悔五步啊.不過你可以

改#define STEPMAX的值

#define MAX 2 /*游戲中總關數*/
#define STARTX 180
#define STARTY 80
#define BKCOLOR BLACK
#define MANCOLOR RED
#define OBJECTCOLOR YELLOW
#define TIMEINT 2
#define STARNUM 300
#define STEPMAX 5
#include<sing.h>
#include<bios.h>
#include<sio.h>
#include<dos.h>
#include<graphics.h>
#include<conio.h>
#include<time.h>
#include<slib.h>
#include<sio.h>
#define Key_R 0x1372
#define Key_Up 0x4800
#define Key_Enter 0x1c0d
#define Key_Down 0x5000
#define Key_P 0x1970
#define Key_Esc 0x11b
#define Key_Right 0x4d00
#define Key_Left 0x4b00

typedef suct star
{
int x;
int y;
int c;
}Star;
Star s;

typedef suct record
{
char name;
int second;
suct time t;
suct date d;
}Record;
Record r;

typedef suct c
{
int x;
int y;
}Add;

typedef suct a
{
int x;
int y;
}Player;
Player p;

char name; /*進入游戲時記錄玩家的姓名*/
time_t t1,t2; /*游戲結束時的時間*/
int Ide; /*開始進入游戲時,選擇菜單時返的功能號(1,2,3)*/
int MissionNum; /*玩家正在玩的關數*/
int BoxNum; /*目的地的個數*/
int Key; /*玩家按鍵*/
int map; /*地圖.(空=0),(人=1),(箱子=2),(牆=3),(目的地=4),(人 目的地=5),(箱子 目的地=6)*/
int StepNum;
int DirectionKey; /*用來表示方向鍵最後一次按鍵*/
int BoxMove;
int Step;

/*函數定義*/
void InputName();
void Init();
void MainMenu();
void JudgeRecord();
void WriteRecord();
void JudgeIde();
void DrawMenu(int );
void Game();
void InitMission(int );
void NextMission();
void InitPic(int ,int ,int );
int Move(Add );
void DrawWall(int ,int );
void DrawBack(int ,int );
void DrawBox(int ,int );
void DrawObject(int ,int );
void DrawMan(int ,int );
void DrawStar();
int JudgeWin();
void InitMission1();
void InitMission2();
int TimeCome();
void ChangeStar();
void InputName();
void ViewRecords();
void DeleteRecords();
void RegisterStep();
void ReverselyMove();
void MoveBack(Add );

void main()
{
InputName();
Init(); /*驅動顯卡*/
srand(time(&t1));
MainMenu(); /*畫開始菜單(1.start game 2.view records 3.delete records 4.exit game)*/
}

void InputName()
{
char c;
clrscr();
do
{
printf("\n\nPlease input your name:");
scanf("%s",name);
printf("Are you sure the name right(Y/N):");
do
{
c=getch();
}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
}while(c!='Y'&&c!='y');
}
void Init()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
}

void MainMenu()
{
setbkcolor(BKCOLOR);
cleardevice();
/*DrawStar(); /*畫開始菜單的背景畫面*/
DrawStar();
Ide=0,Key=0;
DrawMenu(Ide);
do
{
if(bioskey(1)) /*有鍵按下則處理按鍵*/
{
Key=bioskey(0);
switch(Key)
{
case Key_Down: {Ide ;Ide=Ide%4;DrawMenu(Ide);break;}
case Key_Up: {Ide--;Ide=(Ide 4)%4;DrawMenu(Ide);break;}
}
}
else {if(TimeCome()) ChangeStar();} /*改變背景*/
}while(Key!=Key_Enter);
JudgeIde(); /*根據Ide運行不同的程序*/
}

void JudgeIde()
{
switch(Ide)
{
case 0:Game();break;
case 1:{ViewRecords();bioskey(0);MainMenu();break;}
case 2:{DeleteRecords();ViewRecords();bioskey(0);MainMenu();break;}
case 3:exit(0);
}
}

void Game()
{
int i,j,flag;
Add ad;
MissionNum=0;
NextMission();
do
{
flag=0;
Key=bioskey(0);
switch(Key)
{
case Key_Enter:{NextMission();time(&t1);break;}
case Key_Up:{ad.x=-1;ad.y=0;flag=1;DirectionKey=Key;break;}
case Key_Down:{ad.x=1;ad.y=0;flag=1;DirectionKey=Key;break;}
case Key_Left:{ad.x=0;ad.y=-1;flag=1;DirectionKey=Key;break;}
case Key_Right:{ad.x=0;ad.y=1;flag=1;DirectionKey=Key;break;}
case Key_R:{MissionNum--;NextMission();break;}
case Key_Esc:{MainMenu();break;}
case Key_P:{ReverselyMove();break;}
}
if(flag==1)
{if(Move(ad)) {RegisterStep(); if(JudgeWin()) {JudgeRecord();NextMission();}}}
}while(1);
}

void InitMission(int n)
{
int i,j;
for(i=0;i<10;i )
for(j=0;j<10;j )
map=0;
switch(n)
{
case 1:InitMission1();break; /*第一關*/
case 2:InitMission2();break; /*第二關*/
}
}

void InitPic(int n,int i,int j)
{
switch(n)
{
case 0:DrawBack(i,j);break;
case 1:DrawMan(i,j);break;
case 2:DrawBo

x(i,j);break;
case 3:DrawWall(i,j);break;
case 4:DrawObject(i,j);break;
case 5:DrawMan(i,j);break;
case 6:DrawBox(i,j);break;
}
}

void NextMission()
{
int i,j;
if(MissionNum 1>MAX) MissionNum=1;
else MissionNum ;
InitMission(MissionNum);
setbkcolor(BKCOLOR);
cleardevice();
for(i=0;i<10;i )
for(j=0;j<10;j )
InitPic(map,i,j);
switch(MissionNum)
{
case 1:outtextxy(200,230,"Mission 1");break;
case 2:outtextxy(200,230,"Mission 2");break;
}
time(&t1);
for(i=0;i<STEPMAX;i )
{Step=BoxMove=0;}
StepNum=0;
}

int Move(Add a)
{
int flag;
int i=StepNum%STEPMAX;
switch(map) /*看下一位置為什麼*/
{
case 0:{map-=1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);flag=1;break;}
case 2:{if(map==0||map==4)
{map-=1;map=1;map =2;
InitPic(map,p.x,p.y);
InitPic(map,p.x a.x,p.y a.y);
InitPic(map,p.x 2*a.x,p.y 2*a.y);
p.x=p.x a.x;p.y=p.y a.y;flag=1;BoxMove=1;}
else flag=0;
break;}
case 3:flag=0;break;
case 4:{map-=1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);flag=1;break;}
case 6:{if(map==0||map==4)
{map-=1;map=5;map =2;
InitPic(map,p.x,p.y);
InitPic(map,p.x a.x,p.y a.y);
InitPic(map,p.x 2*a.x,p.y 2*a.y);
p.x=p.x a.x;p.y=p.y a.y;flag=1;BoxMove=1;}
else flag=0;
break;}
}
return flag;
}

void DrawWall(int i,int j)
{
DrawBack(i,j);
setfillstyle(9,1);
bar(STARTX 20*j-9,STARTY 20*i-9,STARTX 20*j 9,STARTY 20*i 9);
}

void DrawMan(int i,int j)
{
DrawBack(i,j);
setcolor(MANCOLOR);
circle(STARTX 20*j,STARTY 20*i,9);
arc(STARTX 20*j-3,STARTY 20*i-2,20,160,3);
arc(STARTX 20*j 4,STARTY 20*i-2,20,160,3);
arc(STARTX 20*j,STARTY 20*i-2,220,320,7);
}

void DrawBack(int i,int j)
{
setfillstyle(1,BKCOLOR);
bar(STARTX 20*j-9,STARTY 20*i-9,STARTX 20*j 9,STARTY 20*i 9);
}

void DrawObject(int i,int j)
{
DrawBack(i,j);
setcolor(OBJECTCOLOR);
line(STARTX 20*j-9,STARTY 20*i,STARTX 20*j 9,STARTY 20*i);
line(STARTX 20*j-9,STARTY 20*i-9,STARTX 20*j 9,STARTY 20*i 9);
line(STARTX 20*j-9,STARTY 20*i 9,STARTX 20*j 9,STARTY 20*i-9);
}

void DrawBox(int i,int j)
{
DrawBack(i,j);
setfillstyle(9,3);
bar(STARTX 20*j-9,STARTY 20*i-9,STARTX 20*j 9,STARTY 20*i 9);
}

void DrawMenu(int j)
{
int n;
char *s={"1.Start Game","2.View Records","3.Delete Records","4.Exit Game"};
settextstyle(0,0,1);
setcolor(GREEN);
for(n=0;n<4;n )
outtextxy(250,170 n*20,s);
setcolor(RED);
outtextxy(250,170 j*20,s);
}

void DrawStar()
{
int w,h,i,dotx,doty,color,maxcolor;
w=getmaxx();
h=getmaxy();
maxcolor=getmaxcolor();
for(i=0;i<STARNUM;i )
{
s.x=1 random(w-1);
s.y=1 random(h-1);
s.c=random(maxcolor);
putpixel(s.x,s.y,s.c);
}
}
void ChangeStar()
{
int i,maxcolor;
maxcolor=getmaxcolor();
for(i=0;i<STARNUM;i )
{
s.c=random(maxcolor);
putpixel(s.x,s.y,s.c);
}
}

int TimeCome()
{

static long tm, old;
tm=biostime(0,tm);
if(tm-old<TIMEINT) return 0;
else
{
old=tm; return 1;
}
}

int JudgeWin()
{
int n=0,i,j;
for(i=0;i<10;i )
for(j=0;j<10;j )
if(map==6) n ;
if(n==BoxNum) return 1;
else return 0;
}

void InitMission1() /*第九關*/
{
int i,j;
for(i=0;i<10;i )
for(j=0;j<10;j )
map=0;
for(i=0;i<=5;i )
map=3;
for(i=5;i<=7;i )
{map=map=3;}
for(i=1;i<=4;i )
{map=map=map=3;}
map=map=map=3;
for(i=2;i<=4;i )
map=2;
map=map=2;
for(i=2;i<=3;i )
{map=map=4;}
map=4;
p.x=3;p.y=5;
map=1;
BoxNum=5;
}

void InitMission2()
{
int i,j;
for(i=0;i<10;i )
for(j=0;j<10;j )
map=0;
for(i=1;i<=5;i )
{map=map=3;}
for(i=2;i<=4;i )
{map=map=map=map=3;}
map=map=map=map=map=map=3;
map=map=map=map=2;
map=map=map=map=4;
p.x=1;p.y=3;
map=1;
BoxNum=4;
}

void ViewRecords()
{
FILE *fp;
int i;
setbkcolor(BKCOLOR);
cleardevice();
if((fp=fopen("record","r"))==NULL)
{
printf("\nerror on open file!");
getch();
exit(1);
}
gotoxy(1,1);
printf("\n\t\t\tRecord Information\n");
printf("Record-holder Achievement(s)\t Time(h:m:s)\t\tDate(y/m/d)");
for(i=0;i<MAX;i )
{fseek(fp,i*sizeof(Record),0);
fread(&r,sizeof(Record),1,fp);
printf("\n%-10s\t%d\t\t d:d:d\t\td/d/d",r.name,r.second,r.t.ti_hour,r.t.ti_min,r.t.ti_sec,r.d.da_year,r.d.da_mon,r.d.da_day);}
fclose(fp);
gotoxy(10,25);
printf("Press any key to return mainmenu...");
}

void DeleteRecords()
{
int i;
FILE *fp;
fp=fopen("record","w");
for(i=0;i<MAX;i )
{
scpy(r.name,"nameless");
r.second=0;
gettime(&r.t);
geate(&r.d);
}
for(i=0;i<MAX;i )
fwrite(&r,sizeof(Record),1,fp);
fclose(fp);
}

void JudgeRecord()
{
int i=MissionNum-1;
time(&t2);
if(r.second==0||difftime(t2,t1)<r.second)
{
gotoxy(10,3);printf("\t\tYou have broken the record");
r.second=difftime(t2,t1);
scpy(r.name,name);
gettime(&r.t);
geate(&r.d);
WriteRecord();
}
else
{gotoxy(10,3);printf("\t\tYou have pass this mission");}
gotoxy(10,4);
printf("\t\tpress any key continue...");
getch();
getch();
}

void WriteRecord()
{
FILE *fp;
int i=MissionNum-1;
fp=fopen("record","rt ");
fseek(fp,i*sizeof(Record),0);
fwrite(&r,sizeof(Record),1,fp);
fclose(fp);
}

void RegisterStep()
{
int i;
StepNum ;
i=(StepNum-1)%STEPMAX;
Step=DirectionKey;
}

void ReverselyMove()
{
int i;
Add ad;
i=(StepNum-1)%STEPMAX;
if(Step==0) return;
else
{
switch(Step)
{
case Key_Up:{ad.x=1;ad.y=0;MoveBack(ad);break;}
case Key_Down:{ad.x=-1;ad.y=0;MoveBack(ad);break;}
case Key_Left:{ad.x=0;ad.y=1;MoveBack(ad);break;}
case Key_Right:{ad.x=0;ad.y=-1;MoveBack(ad);break;}
}
StepNum--;Step=0;BoxMove=0;
}
}

void MoveBack(Add a) /*一定可以移動*/
{
int i=(StepNum-1)%STEPMAX;
if(BoxMove==0)
{
map-=1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);
}
else if(BoxMove==1)
{
map-=2;InitPic(map,p.x-a.x,p.y-a.y);
map =1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);
}
}

點這里下載

p=map=map=4;
p.x=1;p.y=3;
map=1;
BoxNum=4;
}

void ViewRecords()
{
FILE *fp;
int i;
setbkcolor(BKCOLOR);
cleardevice();
if((fp=fopen("record","r"))==NULL)
{
printf("\nerror on open file!");
getch();
exit(1);
}
gotoxy(1,1);
printf("\n\t\t\tRecord Information\n");
printf("Record-holder Achievement(s)\t Time(h:m:s)\t\tDate(y/m/d)");
for(i=0;i<MAX;i )
{fseek(fp,i*sizeof(Record),0);
fread(&r,sizeof(Record),1,fp);
printf("\n%-10s\t%d\t\t d:d:d\t\td/d/d",r.name,r.second,r.t.ti_hour,r.t.ti_min,r.t.ti_sec,r.d.da_year,r.d.da_mon,r.d.da_day);}
fclose(fp);
gotoxy(10,25);
printf("Press any key to return mainmenu...");
}

void DeleteRecords()
{
int i;
FILE *fp;
fp=fopen("record","w");
for(i=0;i<MAX;i )
{
scpy(r.name,"nameless");
r.second=0;
gettime(&r.t);
geate(&r.d);
}
for(i=0;i<MAX;i )
fwrite(&r,sizeof(Record),1,fp);
fclose(fp);
}

void JudgeRecord()
{
int i=MissionNum-1;
time(&t2);
if(r.second==0||difftime(t2,t1)<r.second)
{
gotoxy(10,3);printf("\t\tYou have broken the record");
r.second=difftime(t2,t1);
scpy(r.name,name);
gettime(&r.t);
geate(&r.d);
WriteRecord();
}
else
{gotoxy(10,3);printf("\t\tYou have pass this mission");}
gotoxy(10,4);
printf("\t\tpress any key continue...");
getch();
getch();
}

void WriteRecord()
{
FILE *fp;
int i=MissionNum-1;
fp=fopen("record","rt ");
fseek(fp,i*sizeof(Record),0);
fwrite(&r,sizeof(Record),1,fp);
fclose(fp);
}

void RegisterStep()
{
int i;
StepNum ;
i=(StepNum-1)%STEPMAX;
Step=DirectionKey;
}

void ReverselyMove()
{
int i;
Add ad;
i=(StepNum-1)%STEPMAX;
if(Step==0) return;
else
{
switch(Step)
{
case Key_Up:{ad.x=1;ad.y=0;MoveBack(ad);break;}
case Key_Down:{ad.x=-1;ad.y=0;MoveBack(ad);break;}
case Key_Left:{ad.x=0;ad.y=1;MoveBack(ad);break;}
case Key_Right:{ad.x=0;ad.y=-1;MoveBack(ad);break;}
}
StepNum--;Step=0;BoxMove=0;
}
}

void MoveBack(Add a) /*一定可以移動*/
{
int i=(StepNum-1)%STEPMAX;
if(BoxMove==0)
{
map-=1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);
}
else if(BoxMove==1)
{
map-=2;InitPic(map,p.x-a.x,p.y-a.y);
map =1;InitPic(map,p.x,p.y);
p.x=p.x a.x;p.y=p.y a.y;
map =1;InitPic(map,p.x,p.y);
}
}

⑸ 機器人c語言編程

機器人編程所採用的語言1.VJC 編程語言又稱為機器人C語言,是一種易學易用的編程語言。2.圖形化編程語言(G語言)還有與機器人語言相關的編程語言:通用C語言 通用匯編語言 通用LOGO語言 通用QBASIC語言

⑹ 怎麼用C語言編寫人工智慧程序

如果是沒有學習過的話,有一定的難度,建議先去學習。

人工智慧代表的范圍太大了 C是必不可少的一部分 不能說是有直接關系 可以說是一個必備的組成部分;
人工智慧實際的范圍和實際應用:機器視覺,指紋識別,人臉識別,視網膜識別,虹膜識別,掌紋識別,專家系統,自動規劃,智能搜索,定理證明,博弈,自動程序設計,智能控制,機器人學,語言和圖像理解,遺傳編程等,
其中幾項和C語言、自動化、必不可分。
能力有限,不熟悉人工智慧這塊。