999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C程序設計與數據結構離散型混合研究

2019-07-16 03:17:27鄧定勝
電腦知識與技術 2019年14期

鄧定勝

摘要:作為一個擁有離散結構的數字電子計算機,它的操作對象只有離散和離散化了的數量關系,所以不光是計算機科學,還有與它和它的應用緊密相連的現代科學研究領域都面臨著同一個難題,那就是在建立與離散結構對應的數學模型同時,怎樣離散已經利用連續數量關系而建成的數字模型,并利用計算機來進行處理。事實上離散數學大致可以被認為是抽象化了的計算機問題,數據結構與算法設計中都能夠體現出離散性。計算機里能夠表現離散性的問題有很多,因此計算機科學在研究離散數學時有多種選擇,這些表現大致都能夠被認為是計算機中的二進制。本文主要從其算法、數據結構、離散數學與數字電子、計算機中的離散型問題以及實驗仿真五個方面出發,對計算機的算法設計和數據結構離散進行了一定的研究和分析。希望可以對有關方面的改善和促進起到一定的借鑒作用和指導意義。

關鍵詞:C程序設計;數據結構;離散型;算法

中圖分類號:TP311 ? ? 文獻標識碼:A

文章編號:1009-3044(2019)14-0210-03

Abstract: As a digital computer with discrete structure, its operating object only has discrete and discrete quantitative relationship, so not only computer science, but also modern scientific research fields closely linked with its application are facing the same problem, that is, how to discretize the continuous number while establishing the mathematical model corresponding to the discrete structure The digital model built by the relationship is processed by computer. In fact, discrete mathematics can be roughly regarded as abstract computer problems, which can be reflected in data structure and algorithm design. There are many problems in computer that can express discreteness, so computer science has many choices in the study of discrete mathematics, which can be roughly considered as binary in computer. In this paper, the algorithm design and data structure discretization of computer are studied and analyzed from five aspects: algorithm, data structure, discrete mathematics and digital electronics, discrete problems in computer and experimental simulation. I hope it can play a certain role in reference and guiding significance for the improvement and promotion of relevant parties.

Key words: C Programming; Data Structure; Discrete Type; Algorithms

互聯網行業的發展日新月異,引起了人們的高度重視,尤其是其中最為重要的計算機行業。理論上最應該受到重視的就是數據結構與程序算法,可大多數人本末倒置,對程序結果更為重視。

本文就如何體現數據結構與算法設計的離散性提出了方法,具體地說明了怎樣解決抽象化了的計算機問題,以達到把連續性到離散性的思維方法傳輸給讀者的目的。

作為一種科學知識,計算機算法與結構是計算機科學中必不可少的,它是模擬實驗和進行計算機科學計算的主要工具,能夠促進未來計算機科學的發展。最近幾年,計算機科學發展迅速,獲得了非常多的成就。基礎科學給計算機科學提供了應有的理論支持,把計算機科學應用在現實生活之中,并結合基礎科學構成了其發展的基礎性理論[1]。數學知識是計算機科學的理論基礎,在解決存在于應用過程中的各種各樣的問題時,需要把計算機問題抽象化,從而把它當作數學問題。

1 算法

本節在表述計算機離散性問題時通常利用算法。本節就算法的基本概念給出了概述,同時利用雙算法設計的方式來表現離散性。本節在表述算法時都利用了c語言。

1.1算法的基本概念

算法就是準確又具體地去描述解題方案,是能夠把問題解決的一連串的明確指令,而且算法作為一種策略機制,在描述與解決問題時能夠利用系統的方法。意思就是,可以在短時間內得到一定規范的輸入所對應要求的輸出。

算法應用在流程型的程序中時沒有什么特別高的要求,可是在人機交互、圖形圖像識別、人工智能、虛擬現實、社會工程學、大數據分析、音視頻識別、現實增強、云計算、大型網絡拓撲等領域中應用時,對算法的要求就比較高了。

在日常生活中就能發現一些比較好的算法設計,例如手機中各種各樣的美圖軟件。軟件怎樣把人臉識別出來?怎樣確定眼睛、嘴巴和鼻子在人臉上的位置?怎樣在人臉上進行一定的不失真的美化?

在世界第二次大戰進行時,以人工智能之父、計算機科學之父阿蘭·圖靈為領頭人的小組幫助盟軍把能夠破譯德國密碼系統Enigma的機器設計了出來。當中對機器的設計過程可以被認為是算法的設計過程。事實上可以說是圖靈設計小組做出了一個能夠把德國納粹密碼系統在短時間內解密出來的算法,同時為之相應的設計出了機器。

由此可知,程序的根本就是算法。不管是普通的高等院校還是在世界上都處于前沿的科技企業,在進行關于計算機或者程序的科學性研究時,都必然會涉及算法的研究。算法的設計是所有的系統中最基礎、最關鍵的首要步驟。

1.2算法體現的離散性

在進行算法的設計時,通常能夠體現離散性[2],離散性作為一種不連續的特性在計算機科學中可以經常見到。

1.2.1算法設計常用的方法

算法設計有許多方法與有關文獻。這里介紹了兩種最簡單的方法:遞推法和遞歸法,而且在后面做出了相關舉例。

(1)遞推法

遞推算法在序列計算機中是比較常見的,它的特點是化難為易,化繁為簡。因為計算機是一種機器,它的運行速度非常快,而且不會疲憊,所以在計算序列各項時,有一定的規律可循,一般要想知道序列中指定的項,需要利用計算機前面的一些項來求得。其原理是把龐大又復雜的計算過程分割成多次重復的簡單又容易的過程[3]。

(2)遞歸法

遞歸就是程序將自身的編程技巧加以運用的過程。表現為一個過程或者函數在它的說明和定義中涉及自身的調用,它一般是將一個比較龐大復雜的問題一點點轉化成一個大概等同于原問題的比較小型且簡單的問題,并求解。在將一個有著多次重復計算的解題過程簡化時,需要運用遞歸法,而且僅僅需要很少的程序量就能夠解決,使程序的代碼量降低了很多。遞歸的能力表現在定義對象的無限集合時用的是有限的語句。通常遞歸的三要素是有邊界條件、遞歸前進段以及遞歸返回段。如果邊界條件不滿足,那么遞歸前進,反之,遞歸返回。

1.2.2兩種方法的離散性體現

遞推法中,計算機在進行一個比較復雜的運算時,用的方法比較傻。例如算法1,通過一個求最大值的算法來解釋。

算法1:求最大值

int max(int *array,int size)

{int mval=*array;

int i;

for(i=1;i

if(array[i]>mval)

mval=array[i];

return(mval);

}

由此可見,不管有多少數字,只要還沒有得出最終結果,計算機就會一直按部就班地用已知的最大的數去比較數組中的下一個數。相比來說,人類就不會用這種死板的方式去比較數字的大小,在數字特別多的情況下時,人們就會先把數字的位數最高的挑出來,如果有多個位數最高的數字,再讓它們去比較。人類比較習慣應用連續性的思維模式,所以由人而產生的初等數學都是建立在連續的基礎之上,從而也出現了幾何的概念。可是計算機作為硬邦邦的機器,不具備人類思維靈活的特點,也就很難有這種連續的思維。要想讓計算機模擬人類的連續性思維,必須為之設計出更為復雜多變的算法。人類之所以能夠擁有這種連續性的思維,是因為作為思維控制中心的人類大腦這個驅動器非常的高級,自身就能夠擁有足夠復雜的算法。目前有不少的相關研究和文獻能夠為如何設計出更為復雜的算法、讓計算機的運行更為快速并能模擬出人腦的思維方式提供資料,然而這并不是本文的重點。

有時能夠用遞歸法來讓算法更加的簡單,例如在求兩個自然數的最大公約數時,如算法2,其改用遞歸算法后如算法3。

算法2:求最大公約數

void swap(int *x,int *y)

{int tmp=*x;

*x=*y;

*y=tmp;

}

int ged(int m,int n)

{int r;

do

{if(m

swap(&m,&n);

r=m%n;

m=n;

n=r;

}while(n!=0)

return(m);

}

算法3:遞歸法求最大公約數

int gcd(int a,int b)

{if(a%b)

return(gcd(b,a%b);

return(b);

}

可以把遞歸法理解為“自己調用自己”。一種離散性的表現和先前的例子差不多,這里就不再重復了。這里就程序運行所表現出來的離散性做出表述。計算機是在以“后進先出”為特點的棧中進行運行程序的。在這個遞歸算法的運行過程中,“自己”就可以滿足返回值的需要,就是參數不同而已。一直到返回出一個確定的值,再層層返回,如圖1 所示。

由此可知,在計算完成之前,計算機每用遞歸法計算一次,就伴隨著一次Push內存,在計算完成之時,再開始一次一次有序的Pop出,這體現出了計算的離散性,與人類連續的思維模式是有區別的。

2 數據結構

本節在表述計算機中的離散性問題時主要利用數據結構,就數據結構的基本概念與其離散性的基本理解給出了概括。

2.1數據結構的基本概念

數據結構在計算機科學中有著舉足輕重的地位。因為數據元素之間有著不同的特性關系,通常可以把其基本結構分為四種:樹形結構、集合、線性結構、網狀或圖狀結構,圖2就表示了來自于數據結構的元素之中的離散性特征[4]。

主站蜘蛛池模板: 91免费国产在线观看尤物| 日本免费福利视频| 999国内精品视频免费| a级毛片毛片免费观看久潮| 国产精品观看视频免费完整版| 日本免费一区视频| 小蝌蚪亚洲精品国产| 亚洲国产精品日韩av专区| 久久亚洲中文字幕精品一区| 国产网站一区二区三区| 午夜人性色福利无码视频在线观看| 高潮爽到爆的喷水女主播视频| 国产在线91在线电影| 国产凹凸一区在线观看视频| 久久这里只有精品8| 免费国产黄线在线观看| 国产精品永久不卡免费视频| 国产欧美视频综合二区| 免费人欧美成又黄又爽的视频| 99在线国产| 亚洲中文字幕国产av| 成人精品亚洲| 91久久国产综合精品女同我| 亚洲va欧美ⅴa国产va影院| 日韩在线观看网站| 中文字幕自拍偷拍| 波多野结衣的av一区二区三区| 国产一级妓女av网站| 午夜福利网址| 女人毛片a级大学毛片免费| 亚洲香蕉在线| 久久婷婷色综合老司机| 动漫精品啪啪一区二区三区| 成人国产小视频| 国产高清毛片| 国产精品毛片一区视频播| 亚洲性一区| 婷婷午夜天| 国产网站免费看| 天堂在线视频精品| 国产精品jizz在线观看软件| 国产91九色在线播放| 久久久久久尹人网香蕉| 乱色熟女综合一区二区| 国产在线精彩视频二区| 亚洲中久无码永久在线观看软件 | 亚洲国产一区在线观看| 精品伊人久久久香线蕉| 亚洲首页国产精品丝袜| 亚洲欧美另类日本| 国产人在线成免费视频| av在线无码浏览| 波多野一区| 亚洲国产亚洲综合在线尤物| 国产二级毛片| 首页亚洲国产丝袜长腿综合| 91无码视频在线观看| 韩日午夜在线资源一区二区| 无码精品福利一区二区三区| 成人福利在线视频| 精品撒尿视频一区二区三区| 国产免费高清无需播放器| 22sihu国产精品视频影视资讯| 国产v精品成人免费视频71pao| 伊人中文网| 香蕉综合在线视频91| 福利在线不卡| 国产精品99r8在线观看| 97亚洲色综久久精品| 女人毛片a级大学毛片免费| 精品久久高清| 欧美精品H在线播放| 青青操国产| 国产美女视频黄a视频全免费网站| 美女无遮挡免费网站| 亚洲中字无码AV电影在线观看| 九色在线观看视频| 国产毛片一区| 狠狠色噜噜狠狠狠狠色综合久| 91国内视频在线观看| 在线播放91| 久久精品国产91久久综合麻豆自制|