演算法熟記-排序系列-快速排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。快速排序是一個遞迴得方法。    當n==1的時候,停止排序。    當n>1的時候,首先選擇數組中得一個元素作為基準,然後,把小於這個基準得元素放到這個基準的左邊,把大於這個基準得元素放到這個元素得右邊。    具體實現下面進行簡單得說明,假設array[0]作為基準:    首先,儲存基準得值,int tmp=array[0];    然後,兩個指標,int left=0; int right = n-1;  

演算法熟記-排序系列-基數排序

1. 簡述1.1 一般方法    計數排序的排序對象一般是整數。    假設待排序數組為 int array[], 數組長度為n。    第一步:開闢臨時數組,int tmp[],數組長度為n。int count,數組長度為10。    第二步:遍曆數組,得到最大數值的位元d,即後面需要d次排序。    第三步:根據個位進行排序,根據十位進行排序,···,根據d位進行排序。               對於根據i位進行排序,其中1<=i<=d              

極小極大搜尋方法、負值最大演算法和Alpha-Beta搜尋方法

1. 極小極大搜尋方法    一般應用在博弈搜尋中,比如:圍棋,五子棋,象棋等。結果有三種可能:勝利、失敗和平局。暴力搜尋,如果想通過暴力搜尋,把最終的結果得到的話,搜尋樹的深度太大了,機器不能滿足,一般都是規定一個搜尋的深度,在這個深度範圍內進行深度優先搜尋。   

閱讀筆記-機器學習-第3章-決策樹學習

1. 問題舉例    繼續使用第2章中的例子,即Aldo有時會去進行水上運動,天氣情況對於Aldo選擇是否去水上運動有很大的作用,可以想象,如果天氣好,很可能Aldo就會去,如果天氣惡劣,Aldo就不會去。現在已知若干天的天氣情況,和Aldo是否去參與了水上運動的記錄,根據新的一天的天氣情況來預測Aldo是否會去進行水上運動。  2. 決策樹的一般形式        通常決策樹代表執行個體屬性值約束的合取得析取式。從樹根到樹葉的每一條路徑對應一組屬性測試的合取,樹本身對應這些合取的析取。   

演算法熟記-排序系列-堆排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。    主要是利用堆的性質。對於升序排序,使用最大堆。    首先,建堆,使用遞迴後根序遍曆得方法,通過交換元素,保證根項目比孩子項目大。    第1趟,堆頂元素array[0]與array[n-1]交換,保證array[n-1]的數值正確,根據array[0]新的數值更新堆。    第2趟,堆頂元素array[0]與array[n-2]交換,保證array[n-2]的數值正確,根據array[0]新的數值更新堆。   

閱讀筆記-遊戲開發中的人工智慧-第8章-描述式AI及描述引擎

1. 簡述    所謂的描述式AI,基本上與一般應用程式中的設定檔很相像,把AI角色的一些重要屬性和邏輯規則使用檔案儲存體,這樣只要修改檔案中的內容,而不必重新編譯軟體就可以對遊戲進行調試。對於小型的遊戲,實現描述式AI還是可行的。但是對於大型遊戲,就要靠物理引擎來完成了。2. 注意幾點    這一章,確實沒有什麼好記錄的,基本上就是說角色的屬性可以記錄,角色的行為規則可以記錄,如果自己實現描述式AI,還有注意讀取檔案的時候,考慮到檔案中的資料是非法形式時,這樣處理,對資料左右空格的處理。

閱讀筆記-遊戲開發中的人工智慧-第3章-移動模式

1. 標準演算法    移動模式,實際上就是控制角色移動的方式。比如:可以建立圓形、方形、蛇形、曲線以及其他類型的模式。    標準移動模式演算法使用控制指令,指示電腦控制的角色,在每一輪遊戲迴圈中如何移動。    下以一個蛇形的移動模式為例,進行說明:    下面就是一組控制指令 :                     (turn_right, turn_left, step_forward, step_backward)                     (0, 0, 2, 0) 

函數實現-memcpy-strcpy-memmove-memset

1. 函數原型(c++ reference)    void * memcpy ( void * destination, const void * source, size_t num );  不能解決某些覆蓋問題。    char * strcpy ( char * destination, const char * source ); 不能解決某些覆蓋問題,根據'\0'表示字串複製終止。    void * memmove ( void * destination, const void

演算法熟記-排序系列-歸併排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。歸併排序是一個遞迴得方法。    當n==1時,停止遞迴。    當n>1時,開闢一個與array同樣大小得數組,int tmp[]                  將array[0]-array[n/2]得數組遞迴排序,將array[n/2+1]-array[n-1]的數組遞迴排序                  將兩部分數組,分別用兩個指標,將小得元素一個一個放入到tmp數組中。              

演算法熟記-Floyd-Warshall

1. 簡述    解決任意兩點間的最短路徑的一種演算法。2. 複雜度    T=O(V^3) ,S=O(V^2),使用鄰接矩陣儲存。3. 虛擬碼    需要注意的是i,j,k三個變數的順序。// dist(i,j) 為從節點i到節點j的最短距離For i←1 to n do   For j←1 to n do      dist(i,j) = weight(i,j)  For k←1 to n do // k為“媒介節點”   For i←1 to n do      For j←1 to n 

閱讀筆記-遊戲開發中的人工智慧-第1章-遊戲人工智慧簡介

1. 定性AI與非定性AI    定性行為或其表現是特定的,而且是可預測的,沒有不確定性。    非定性行為有某種程度的不確定性,有點不可預測。比如:讓非玩家角色學習到適應玩家的作戰戰術。這樣的學習能力可以利用神經網路、貝葉斯技術或遺傳演算法而得到。2. 幾個實用非定性AI方法的主流遊戲    "Creatures"、"Black & White"、"Battlecruiser3000AD"、"Fields of Battle"以及"Heavy Gear"。

演算法熟記-排序系列-希爾排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。    該方法實質上是一種分組插入方法。假設數組長度n=10,我們設定幾個分組的個數為1,3,5。    首先,分5組,即(array[0],array[5]),                          (array[1],array[6]),                         

演算法熟記-排序系列-冒泡排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。    第1趟在array[0]-array[n-1]範圍內,從後向前依次比較,把較小交換到前面,最終最小的元素會站在array[0]裡面。    第2趟在array[1]-array[n-1]範圍內,··· ,最終第二小的元素會站在array[1]裡面。    ...    第n-1趟,在array[n-2]-array[n-1]範圍內,··· , 最終第n-1小的元素會站在array[n-2]裡面。   

閱讀筆記-遊戲開發中的人工智慧-第9章-有限狀態機器

1. 簡述    記得,在上物件導向程式設計的課中,就學過有限狀態機器,後來上編譯原理的時候,接著有限狀態機器,直到研一的形式語言自動機中,還是有限狀態機器。貌似有一個很列害的ERP中的核心解決方案也是狀態機器。不過給我印象最深的還是本科做的百項工程時,使用有限狀態機器實現無線模組的自動組網與通訊,狀態機器說簡單吧,確實挺簡單,尤其是實際用的時候,但是想用好吧,也不輕鬆,狀態機器的實現是很簡單,但是狀態機器得設計是要花一些心思的。   

演算法熟記-並查集

1. 簡述    並查集是一種樹型的資料結構,用於處理一些不相交集合(Disjoint Sets)的合并及查詢問題。常常在使用中以森林來表示。    需要實現的操作有:合并兩個集合,判斷兩個元素是否屬於一個集合。    這裡介紹的主要是普通的並查集,很多情況下使用的並查集是需要擴充的,根據使用方式的不同,有很多差別,這裡僅僅是最基本的演算法。2. 複雜度     T=O(n*α(n)) ,

閱讀筆記-遊戲開發中的人工智慧-第6章-基本路徑尋找及航點應用

1. 基本的路徑尋找    從最基本得層次來講,路徑尋找只是讓某個遊戲角色,從其最初位置移向所需到達的目的地的過程而已。本質上,這一點和第二章中的基本追逐演算法的原理相同。具體如:簡單追逐追逐方法(最簡單的使座標逐漸相同)和視線追逐方法(使用Breseman方法)。但是,如果遊戲環境中有障礙物,那麼就需要考慮其他事情了。如所示,兩種方法產生的路徑都可能被障礙物阻截。    1.1 隨機移動避開障礙物   

演算法熟記-排序系列-計數排序

1. 簡述    計數排序的排序對象一般是整數。    假設待排序數組為 int array[], 數組長度為n。    第一步,遍曆數組,得到數組的最大值max和最小值min。 (n)    第二步,開闢一個新數組,int count[],數組長度為max-min+1,其中每個元素初始化為0。    第三步,遍曆array數組,在count數組內統計array中每個元素出現的個數。(n)    第四步,根據count數組,填充array數組。(n+k)2. 複雜度   

演算法熟記-排序系列-插入排序

1. 簡述    假設待排序數組為 int array[], 數組長度為n。    第1趟,認為array[0]-array[0]已經排序,把array[1]插入到合適的位置。    第2趟,認為array[0]-array[1]已經排序,把array[2]插入到合適的位置。    ···    第n-1趟,認為array[0]-array[n-2]已經排序,把array[n-1]插入到合適的位置。2. 複雜度   

閱讀筆記-遊戲開發中的人工智慧-第4章-群聚

1. 基本群聚    這一節介紹的演算法,來自於Craig Reynolds在1987年發表的論文《Flocks,Herds and Schools:A Distributed Behavioral Model》。在論文中,他提出演算法原型模擬整群的鳥、魚或其他生物。   

總頁數: 61357 1 .... 12233 12234 12235 12236 12237 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.