国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

四·C語(yǔ)言之·函數(shù)全方位理解

legendaryedu / 4372人閱讀

摘要:我們?cè)陂_發(fā)的過程中每個(gè)程序員都可能用的到,為了支持可移植性和提高程序的效率,所以語(yǔ)言的基礎(chǔ)庫(kù)中提供了一系列類似的庫(kù)函數(shù),方便程序員進(jìn)行軟件開發(fā)。形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。因此形式參數(shù)只在函數(shù)中有效。

?寫在前面

  • ?博客主頁(yè):kikoking的江湖背景
  • ?歡迎關(guān)注?點(diǎn)贊?收藏??留言?
  • ?本文由 kikokingzz 原創(chuàng),CSDN首發(fā)!
  • ?首發(fā)時(shí)間:?2021年11月21日?
  • ?最新更新時(shí)間:?2021年11月21日?
  • ??堅(jiān)持和努力一定能換來詩(shī)與遠(yuǎn)方!
  • ?作者水平很有限,如果發(fā)現(xiàn)錯(cuò)誤,請(qǐng)留言轟炸哦!萬分感謝感謝感謝!

?:本篇內(nèi)容包含了C語(yǔ)言函數(shù)的全方位理解,同時(shí)配備了對(duì)應(yīng)的例題理解,后續(xù)還會(huì)更新專門的習(xí)題,刷題板塊!

L:大仙,終于來到函數(shù)板塊了嘛!

?:yep!小子,這章內(nèi)容很多,仔細(xì)看哦!


目錄

?寫在前面

?1.函數(shù)是什么??

?2.1?庫(kù)函數(shù)

?2.1.1為什么會(huì)有庫(kù)函數(shù)?

?2.1.2如何學(xué)會(huì)使用庫(kù)函數(shù)?

?自學(xué)案例1-strcpy函數(shù)自學(xué)

?自學(xué)案例2-memset自學(xué)

?自學(xué)案例3-strlen

?2.2自定義函數(shù)

?2.2.1自定義函數(shù)的組成

?2.2.2典型案例

?1.寫一個(gè)函數(shù)可以找出兩個(gè)整數(shù)中的最大值

?2.寫一個(gè)函數(shù)可以交換兩個(gè)整形變量的內(nèi)容

?3. 函數(shù)的參數(shù)

?3.1 實(shí)際參數(shù)(實(shí)參)

?3.2 形式參數(shù)(形參)

?4. 函數(shù)的調(diào)用

?4.1 傳值調(diào)用

?4.2 傳址調(diào)用

?函數(shù)調(diào)用案例

?1.判斷一個(gè)函數(shù)是不是素?cái)?shù)

?2.寫一個(gè)函數(shù)判斷是不是閏年

?3.寫一個(gè)函數(shù),實(shí)現(xiàn)一個(gè)整形有序數(shù)組的二分查找。

?4.寫一個(gè)函數(shù),每調(diào)用一次這個(gè)函數(shù),就會(huì)將num的值增加1

?函數(shù)返回類型

?5. 函數(shù)的嵌套調(diào)用和鏈?zhǔn)皆L問

?5.1 嵌套調(diào)用

?5.2鏈?zhǔn)皆L問

?3.習(xí)題

??6. 函數(shù)的聲明和定義

?6.1函數(shù)定義

?6.2函數(shù)聲明

?公司寫代碼,會(huì)不會(huì)把所有代碼都寫在test.c中呢?

?7. 函數(shù)遞歸

?7.1 什么是遞歸?

?練習(xí)1.接收一個(gè)整型值(無符號(hào)),按照順序打印它的每一位

??7.2 遞歸的兩個(gè)必要條件

?練習(xí)2.編寫函數(shù)不允許創(chuàng)建臨時(shí)變量,求字符串的長(zhǎng)度

?練習(xí)3.?求n的階乘(不考慮溢出)

?練習(xí)4.求第n個(gè)斐波那契數(shù)(不考慮溢出)


?1.函數(shù)是什么??


  1. 在計(jì)算機(jī)科學(xué)中,子程序(英語(yǔ):Subroutine, procedure, function, routine, method, subprogram, callable unit),是一個(gè)大型程序中的某部分代碼, 由一個(gè)或多個(gè)語(yǔ)句塊組成。它負(fù)責(zé)完成某項(xiàng)特定任務(wù),而且相較于其他代碼,具備相對(duì)的獨(dú)立性
  2. 一般會(huì)有輸入?yún)?shù)并有返回值,提供對(duì)過程的封裝和細(xì)節(jié)的隱藏。這些代碼通常被集成為軟件庫(kù)

???我是分割線???

?2.1?庫(kù)函數(shù)


?2.1.1為什么會(huì)有庫(kù)函數(shù)?

  1. ?我們知道在我們學(xué)習(xí)C語(yǔ)言編程的時(shí)候,總是在一個(gè)代碼編寫完成之后迫不及待的想知道結(jié)果,想把這個(gè)結(jié)果打印到我們的屏幕上看看。這個(gè)時(shí)候我們會(huì)頻繁的使用一個(gè)功能:將信息按照一定的格 式打印到屏幕上(printf)。
  2. 在編程的過程中我們會(huì)頻繁的做一些字符串的拷貝工作(strcpy)。

·像上面我們描述的基礎(chǔ)功能,它們不是業(yè)務(wù)性的代碼。我們在開發(fā)的過程中每個(gè)程序員都可能用的到,為了支持可移植性和提高程序的效率,所以C語(yǔ)言的基礎(chǔ)庫(kù)中提供了一系列類似的庫(kù)函數(shù),方便程序員進(jìn)行軟件開發(fā)。


?2.1.2如何學(xué)會(huì)使用庫(kù)函數(shù)?

  • 需要學(xué)會(huì)查詢工具的使用:
  • MSDN(Microsoft Developer Network)
  • www.cplusplus.com
  • http://en.cppreference.com(英文版)
  • http://zh.cppreference.com(中文版)

?自學(xué)案例1-strcpy函數(shù)自學(xué)

·在MSDN中搜索strcpy

·了解函數(shù)的定義方法、返回值、參數(shù)

#include#includeint main(){    //strlen--string length --字符串長(zhǎng)度有關(guān)的    //strcpy--string copy--字符串拷貝    char arr1[] = "bit";//原數(shù)據(jù)    char arr2[] = "#########";//目的地字符串    //             bit/0  打印時(shí)/0是結(jié)束標(biāo)志    strcpy(arr2, arr1);    printf("%s/n", arr2);    return 0;}


?自學(xué)案例2-memset自學(xué)

·在MSDN中搜索memset

·了解函數(shù)的定義方法、返回值、參數(shù)

#includeint main(){    char arr[]="hello world";    memset(arr,"*",5);    //arr-這個(gè)數(shù)組空間的地址    //這里放的"*",因?yàn)榇孢M(jìn)去的是ASCII值,也是整型值(int型)    printf("%s/n",arr);//%s打印字符串    //***** world    return 0;}


?自學(xué)案例3-strlen

?·在www.cplusplus.com中搜索memset

·了解函數(shù)的定義方法、返回值、參數(shù)

#include#includeint main(){	char arr[] = "abc";	size_t len = strlen(arr);	printf("%u/n", len);	//%d-有符號(hào)	//%u-無符號(hào)	return 0;}

???我是分割線????

?2.2自定義函數(shù)


L:庫(kù)函數(shù)好好用啊,那是不是咱們只要熟練掌握庫(kù)函數(shù)就好啦?

?:如果庫(kù)函數(shù)能干所有的事情,那還要程序員干什么?所以更加重要的是自定義函數(shù)!


?2.2.1自定義函數(shù)的組成

·自定義函數(shù)和庫(kù)函數(shù)一樣,有函數(shù)名,返回值類型和函數(shù)參數(shù)。但是不一樣的是這些都是我們自己來設(shè)計(jì)。這給程序員一個(gè)很大的發(fā)揮空間。
?

·函數(shù)的組成︰

?


?2.2.2典型案例

?1.寫一個(gè)函數(shù)可以找出兩個(gè)整數(shù)中的最大值

#includeint getmax(int x, int y){    if (x > y)        return x;    else        return y;}int main(){    int a = 10;    int b = 20;    //函數(shù)的使用    int max = getmax(a, b);    int max1 = getmax(100, 300+1);    printf("%d/n", max1);    return 0;}


?2.寫一個(gè)函數(shù)可以交換兩個(gè)整形變量的內(nèi)容

?錯(cuò)誤示范:

#includevoid Swag(int x, int y)//void表示沒有返回值{    int z = x;        x = y;        y = z;}int main(){    int a = 10;    int b = 20;    int tmp;    printf("a=%d b=%d/n", a, b);    Swag(a, b);    printf("a=%d b=%d/n", a, b);    return 0;}

L:為什么這里明明Swag函數(shù)里面兩個(gè)值交換了,而最后的結(jié)果沒有交換呢

?:小子,仔細(xì)看上圖案例,Swag函數(shù)中的 形參x,y 的地址與 實(shí)參a、b 的地址不同,我們僅僅只是交換了Swag函數(shù)內(nèi)的兩值,對(duì)于a,b其實(shí)并未改變

?:也就是說:當(dāng)函數(shù)調(diào)用時(shí)候,實(shí)參傳給形參,形參其實(shí)是實(shí)參的一份臨時(shí)拷貝;所以對(duì)形參的修改,不會(huì)影響實(shí)參

L:那么如何修改呢

?:我們只要通過指針將實(shí)參a、b 地址傳遞給 形參x,y ,再通過解引用操作就可以成功啦

?正解(傳址):

#includevoid Swag(int* pa, int* pb)//void表示沒有返回值{    int tmp = 0;    tmp = *pa;//用解引用操作    *pa = *pb;    *pb = tmp;}int main(){    int a = 10;    int b = 20;    int tmp;    printf("a=%d b=%d/n", a, b);    Swag(&a, &b);    printf("a=%d b=%d/n", a, b);    return 0;}

???我是分割線???

?3. 函數(shù)的參數(shù)


?3.1 實(shí)際參數(shù)(實(shí)參)

  1. 真實(shí)傳給函數(shù)的參數(shù),叫實(shí)參
  2. 實(shí)參可以是:常量、變量、表達(dá)式、函數(shù)等。
  3. 無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值,以便把這些值傳送給形參。


?3.2 形式參數(shù)(形參)

  1. 形式參數(shù)是指函數(shù)名后括號(hào)中的變量,因?yàn)?strong>形式參數(shù)只有在函數(shù)被調(diào)用的過程中才實(shí)例化(分配內(nèi)存單元),所以叫形式參數(shù)。
  2. 形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。因此形式參數(shù)只在函數(shù)中有效。
  3. 當(dāng)實(shí)參傳給形參的時(shí)候,形參其實(shí)是對(duì)實(shí)參的一份臨時(shí)拷貝,對(duì)形參的修改是不會(huì)改變實(shí)參的(例如交換數(shù)字案例中的錯(cuò)解)

  1. 上面 Swap1 Swap2 函數(shù)中的參數(shù) x、y、px、py 都是形式參數(shù)
  2. main函數(shù)中傳給 Swap1 num1 、num2 和傳給Swap2 函數(shù)的 &num1 、&num2 實(shí)際參數(shù)。

·這里可以看到 Swap1 函數(shù)在調(diào)用的時(shí)候, x 、?y 擁有自己的空間(傳值調(diào)用),同時(shí)擁有了和實(shí)參一模一樣的內(nèi)容。 所以我們可以簡(jiǎn)單的認(rèn)為:形參實(shí)例化之后其實(shí)相當(dāng)于實(shí)參的一份臨時(shí)拷貝

???我是分割線???

?4. 函數(shù)的調(diào)用


?4.1 傳值調(diào)用

  • 函數(shù)的形參和實(shí)參分別占有不同內(nèi)存塊(內(nèi)存地址不同),對(duì)形參的修改不會(huì)影響實(shí)參。
void Swag(int x, int y)//void表示沒有返回值{    int z = x;        x = y;        y = z;}

?4.2 傳址調(diào)用

  • 傳址調(diào)用是把函數(shù)外部創(chuàng)建變量的內(nèi)存地址傳遞給函數(shù)參數(shù)的一種調(diào)用函數(shù)的方式
  • 這種傳參方式可以讓函數(shù)和函數(shù)外邊的變量建立起真正的聯(lián)系,也就是函數(shù)內(nèi)部可以直接操作函數(shù)外部的變量
void Swag(int* pa, int* pb)//void表示沒有返回值{    int tmp = 0;    tmp = *pa;//用解引用操作    *pa = *pb;    *pb = tmp;}

?函數(shù)調(diào)用案例


?1.判斷一個(gè)函數(shù)是不是素?cái)?shù)

#include#includeint is_prime(int n)//是素?cái)?shù)返回1.不是素?cái)?shù)返回0{    for (int j = 2; j <= sqrt(n); j++)//寫出優(yōu)化的方式sqrt(n)    {        if (n % j == 0)//被j整除            return 0;    }    return 1;}int main(){//打印100-200之間的素?cái)?shù)    int i = 0;    for (i = 100; i <= 200; i++)//產(chǎn)生100-200的數(shù)    {        //判斷i是否為素?cái)?shù)        if (is_prime(i) == 1)            printf("%d/n", i);    }}


?2.寫一個(gè)函數(shù)判斷是不是閏年

#define _CRT_SECURE_NO_WARNINGS 1#include//是閏年返回1,不是閏年返回0int is_leap_year(int x){	if(((x % 4 == 0) && (x % 100 != 0))||(x % 400 == 0))	    return 1;	else		return 0;}int main(){	int count = 0;	int y = 0;	for (y = 1000; y <= 2000; y++)	{		//判斷y是不是閏年		if (is_leap_year(y))		{			count++;			printf("%d/n", y);		}	}	printf("%d個(gè)閏年/n", count);	return 0;}


?3.寫一個(gè)函數(shù),實(shí)現(xiàn)一個(gè)整形有序數(shù)組的二分查找。

重點(diǎn):數(shù)組傳遞到形參時(shí),傳遞的是首元素地址

#define _CRT_SECURE_NO_WARNINGS 1#includeint binary_search(int arr[], int k,int num){	//用折半查找	//int num = sizeof(arr) / sizeof(arr[0]);	//       指針大小== 4   /     4 =1	int left = 0;	int right = num - 1;	do 	{		int mid = (left + right) / 2;		if (arr[mid] < k)		{			left = mid + 1;		}					else if (arr[mid] > k)		{			right = mid - 1;		}		else			return mid;//找到了	}while(left<=right);	return -1;}//如果找到了就返回下標(biāo)//找不到就返回-1int main(){	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };	int k = 7;	int num = sizeof(arr) / sizeof(arr[0]);	//數(shù)組arr傳給binary_search函數(shù)的時(shí)候,其實(shí)傳的是arr首元素的地址	int ret =binary_search(arr,k,num);	if (-1 == ret)		printf("找不到/n");	else		printf("找到了,下標(biāo)是%d", ret);	return 0;}

?4.寫一個(gè)函數(shù),每調(diào)用一次這個(gè)函數(shù),就會(huì)將num的值增加1

·法1.需要改變實(shí)參——傳址

#define _CRT_SECURE_NO_WARNINGS 1#includevoid add(int* p){	++*p;}int main(){	int num = 0;	add(&num);	printf("%d", num);	add(&num);	printf("%d", num);	add(&num);	printf("%d", num);	return 0;}

·法2.不使用傳參,采取頻繁賦值

#define _CRT_SECURE_NO_WARNINGS 1#includeint add(int m){	return m + 1;}int main(){	int num = 0;	num=add(num);//頻繁賦值	printf("%d", num);	num = add(num);	printf("%d", num);	num = add(num);	printf("%d", num);	return 0;}

???我是分割線???

?函數(shù)返回類型


  1. void-無返回(可以使用return;來結(jié)束void函數(shù))
  2. char int float-返回值為其對(duì)應(yīng)類型
#define _CRT_SECURE_NO_WARNINGS 1#includevoid test1(){	int n = 5;	printf("hehe/n");	if (n == 5)		return;//void里用return;來返回	//可以提前使函數(shù)終止	printf("haha/n");}int test2(){	return 1;}int main(){	test1();	return 0;}

???我是分割線????

?5. 函數(shù)的嵌套調(diào)用和鏈?zhǔn)皆L問


?5.1 嵌套調(diào)用

·函數(shù)可以嵌套調(diào)用;不可以嵌套定義
//函數(shù)不能嵌套定義void test1(){	void test2()	{	}}//但是可以嵌套調(diào)用void test1(){	test2();}

?5.2鏈?zhǔn)皆L問

·把一個(gè)函數(shù)的返回值作為另外一個(gè)函數(shù)的參數(shù)

int main(){	int len = strlen("abc");	printf("%d/n", len);	printf("%d/n", strlen("abc"));	//把strlen函數(shù)的返回值作為printf函數(shù)的參數(shù)	return 0;}


?3.習(xí)題

·考察鏈?zhǔn)皆L問——把一個(gè)函數(shù)的返回值作為另外一個(gè)函數(shù)的參數(shù)

int main(){	printf("%d", printf("%d", printf("%d", 43)));	//結(jié)果是啥?	//注:printf函數(shù)的返回值是打印在屏幕上字符的個(gè)數(shù)	return 0;}

?前情提要:了解printf函數(shù)的返回值

??6. 函數(shù)的聲明和定義


?6.1函數(shù)定義

·函數(shù)的定義是指函數(shù)的具體實(shí)現(xiàn),交待函數(shù)的功能實(shí)現(xiàn)

·解決辦法:(添加一個(gè)函數(shù)聲明)

ADD(int x, int y);//函數(shù)聲明int main(){	int a = 10;	int b = 20;	int ret = ADD(a, b);	printf("%d", ret);	return 0;}int ADD(int x, int y){	int z = x + y;	return z;}

?6.2函數(shù)聲明

1.告訴編譯器有一個(gè)函數(shù)叫什么,參數(shù)是什么,返回類型是什么。但是具體是不是存在,函數(shù)聲明決定不了。

2.函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。要滿足先聲明后使用

3.函數(shù)的聲明一般要放在頭文件中(.h文件中)的。


·本質(zhì)上的應(yīng)用:剝離出來

//add.h 放函數(shù)聲明#includeint ADD(int x, int y);
//add.c 放函數(shù)定義#include"add.h"int ADD(int x, int y){	int z = x + y;	return z;}
//test.c  主函數(shù)#include"add.h"int main(){	int a = 10;	int b = 20;	int ret = ADD(a, b);	printf("%d", ret);	return 0;}

上述中把 add.c 和 add.h 合在一起合稱加法模塊


?公司寫代碼,會(huì)不會(huì)把所有代碼都寫在test.c中呢?

1.分函數(shù)模塊來寫!效率大大提高

2.可以使用靜態(tài)庫(kù),出售函數(shù)

#define _CRT_SECURE_NO_WARNINGS 1#include"add.h"#include#pragma comment(lib,"add.lib")//使用靜態(tài)庫(kù)int main(){	int a = 10;	int b = 20;	printf("%d", ADD(10, 20));	return 0;}

???我是分割線????

?7. 函數(shù)遞歸


?7.1 什么是遞歸?

·程序調(diào)用自身的編程技巧稱為遞歸( recursion)

·函數(shù)遞歸:函數(shù)自己調(diào)用自己

·遞歸做為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用。 一個(gè)過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型復(fù)雜的問題層層轉(zhuǎn)化為一個(gè)與原問題相似的規(guī)模較小的問題來求解

·遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計(jì)算,大大地減少了程序的代碼量。

遞歸的主要思考方式在于:把大事化小


?練習(xí)1.接收一個(gè)整型值(無符號(hào)),按照順序打印它的每一位

·例如: 輸入:1234? ;輸出 1 2 3 4

#define _CRT_SECURE_NO_WARNINGS 1#includePrint(unsigned int n){	if (n > 9)	{		Print(n / 10);//Print(123) 1 2 3	}	printf("%d/t", n % 10);//}int main(){	unsigned int num = 0;	scanf("%d", &num);//順序打印每一位 	Print(num);}

?作圖理解:


??7.2 遞歸的兩個(gè)必要條件

1.存在限制條件,當(dāng)滿足這個(gè)限制條件的時(shí)候,遞歸便不再繼續(xù)

2.每次遞歸調(diào)用之后越來越接近這個(gè)限制條件


?Tip1.每一次函數(shù)調(diào)用都會(huì)在內(nèi)存的棧區(qū)申請(qǐng)一塊內(nèi)存空間

·系統(tǒng)分配給程序的棧空間是有限的,但是如果出現(xiàn)了死循環(huán),或者(死遞歸),這樣有可能導(dǎo)致一 直開辟棧空間,最終產(chǎn)生棧空間耗盡的情況這樣的現(xiàn)象我們稱為棧溢出

??Tip2.stackoverflow-程序員版的知乎


?練習(xí)2.編寫函數(shù)不允許創(chuàng)建臨時(shí)變量,求字符串的長(zhǎng)度

·解法1.使用臨時(shí)變量(不滿足本題要求)

int my_strlen(char* s)//s相當(dāng)于指向字符串中的 a{	int count = 0;//臨時(shí)變量	while (*s != "/0")	{		count++;		s++;//char* 的指針是一個(gè)字節(jié)		//地址序列+1就可以跳到下一個(gè)字符        //如果是一個(gè)int型的指針 跳到下一個(gè)字符要+4	}	return count;}int main(){	//求字符串長(zhǎng)度	char arr[] = "abc";	int len = my_strlen(arr); 	//arr里放著 a b c /0	//arr是數(shù)組名 數(shù)組名是數(shù)組首元素的地址	printf("%d", len);	return 0;}

·解法2.使用函數(shù)遞歸

思路:my_strelen("abc");1+my_strelen("bc");1+1+my_strelen("c");1+1+1+my_strelen("/0");1+1+1+0=3
int my_strlen(char* s)//s相當(dāng)于指向字符串中的 a{	int count = 0;	while (*s != "/0")	{		count++;		s++;//char* 的指針是一個(gè)字節(jié)		//地址序列加1就可以變到下一個(gè)字符	}	return count;}int my_strlen(char* s)//s里面放的是a的地址{	if (*s == "/0")		return 0;	else		return 1 + my_strlen(s + 1);//s+1就是b的地址

筆記理解:


?練習(xí)3.?求n的階乘(不考慮溢出)

·解法1.循環(huán)解法

int main(){	int n = 0;	int ret = 1;	scanf("%d", &n);	for (int i = 1; i <= n; ++i)	{		ret *= i;	}	printf("%d", ret);	return 0;}

·解法2.遞歸法

int fac(int n){	if (n <= 1)		return 1;	else		return n * fac(n - 1);}int main(){	int n = 0;	scanf("%d", &n);	int ret = fac(n);	printf("%d", ret);	return 0;}

?練習(xí)4.求第n個(gè)斐波那契數(shù)(不考慮溢出)

·解法1.遞歸

int count = 0;int fib(int x){	if (x == 3)//看看計(jì)算3這步需要多少次		count++;	if (x <= 2)		return 1;	else		return fib(x - 1) + fib(x - 2);}int main(){	int n = 0;	scanf("%d", &n);	int ret = fib(n);	printf("第%d個(gè)斐波那契數(shù)是%d/n", n,ret);	return 0;}

?·解法2.循環(huán)方法(從前往后)

int fib(int x){	int a = 1;	int b = 1;	int c = 1;	while (x>2)	{		c = a + b;		a = b;		b = c;		x--;	}	return c;}int main(){	int n = 0;	scanf("%d", &n);	int ret = fib(n);	printf("第%d個(gè)斐波那契數(shù)是%d/n", n,ret);	return 0;}


??Tip3.補(bǔ)碼數(shù)的正溢出

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/124092.html

相關(guān)文章

  • 深度學(xué)習(xí):你該知道八大開源框架

    摘要:作為當(dāng)下最熱門的話題,等巨頭都圍繞深度學(xué)習(xí)重點(diǎn)投資了一系列新興項(xiàng)目,他們也一直在支持一些開源深度學(xué)習(xí)框架。八來自一個(gè)日本的深度學(xué)習(xí)創(chuàng)業(yè)公司,今年月發(fā)布的一個(gè)框架。 深度學(xué)習(xí)(Deep Learning)是機(jī)器學(xué)習(xí)中一種基于對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法,深度學(xué)習(xí)的好處是用 非 監(jiān)督式或半監(jiān)督式 的特征學(xué)習(xí)、分層特征提取高效算法來替代手工獲取特征(feature)。作為當(dāng)下最熱門的話題,Google...

    Rindia 評(píng)論0 收藏0
  • 深度學(xué)習(xí)大神新作,神經(jīng)網(wǎng)絡(luò)的自然語(yǔ)言翻譯應(yīng)用

    摘要:神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理方面,未來有巨大的應(yīng)用潛力。講座學(xué)者之一與深度學(xué)習(xí)大神蒙特利爾大學(xué)學(xué)者在大會(huì)上發(fā)表了論文,進(jìn)一步展現(xiàn)神經(jīng)機(jī)器翻譯的研究結(jié)果。那些指令的語(yǔ)義就是習(xí)得的進(jìn)入嵌入中,來較大化翻譯質(zhì)量,或者模型的對(duì)數(shù)似然函數(shù)。 在 8月7日在德國(guó)柏林召開的2016 計(jì)算語(yǔ)言學(xué)(ACL)大會(huì)上,學(xué)者Thang Luong、Kyunghyun Cho 和 Christopher D. Mannin...

    helloworldcoding 評(píng)論0 收藏0
  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)一維卷積、二維卷積、三維卷積詳解

    摘要:一維卷積常用于序列模型,自然語(yǔ)言處理領(lǐng)域。三維卷積這里采用代數(shù)的方式對(duì)三維卷積進(jìn)行介紹,具體思想與一維卷積二維卷積相同。 由于計(jì)算機(jī)視覺的大紅大紫,二維卷積的用處范圍最廣。因此本文首先介紹二維卷積,之后再介紹一維卷積與三維卷積的具體流程,并描述其各自的具體應(yīng)用。1、二維卷積?? ? 圖中的輸入的數(shù)據(jù)維度為 14 × 14 ,過濾器大小為 5 × 5,二者做卷積,輸出的數(shù)據(jù)維度為 10 × 1...

    renweihub 評(píng)論0 收藏0
  • 方位解讀this

    摘要:的構(gòu)造函數(shù)等同于下。創(chuàng)建一個(gè)新的對(duì)象將構(gòu)造函數(shù)的指向這個(gè)新對(duì)象指向構(gòu)造函數(shù)的代碼,為這個(gè)對(duì)象添加屬性,方法等返回新對(duì)象。 原文鏈接 - http://www.jianshu.com/p/d647aa6d1ae6 首先,了解下執(zhí)行上下文的生命周期。 showImg(https://segmentfault.com/img/bVJs0x?w=1000&h=290); 在執(zhí)行上下文的創(chuàng)建階段...

    yexiaobai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<