首页
/
每日頭條
/
遊戲
/
通過遊戲設計了解機器學習算法
通過遊戲設計了解機器學習算法
更新时间:2026-05-27 20:57:03


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)1

來源 | 異步

前段時間大火的國産遊戲——《太吾繪卷》,由于創新的玩法和精良的制作一度廣受好評,然而随着玩家遊戲的深入和時長的積累,發現該遊戲在玩的過程中遊戲外的問題很多很多。


首先是存檔速度慢,然後是密集的計算導緻功耗大量增加,風扇速度高居不下,甚至在高配置設備中也變得越來越卡。

究其原因,還是開發人員對于算法的理解問題。

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)2


該遊戲存檔是用的json,太吾繪卷在每個月存檔時,都要把所有的數據在磁盤上重寫一遍。實際上,大多數遊戲公司正确的做法是隻寫入變化的部分而不會全量寫入,而太吾繪卷的做法是把很多不變的,預設好的東西也全部重新寫入,必然導緻存檔時占用了極大的空間。


同時,存檔中有大量的0,這說明開發者不知道什麼叫“稀疏矩陣”,結合之前的全量寫入,這無疑又加劇了存檔緩慢的問題。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)3

所以算法和數據結構有多重要的呢,它足以讓一款大火的遊戲變得不再具有吸引力,哪怕你其他方面做得再好。帶來了這麼大的影響,恐怕遊戲開發組接下來應該考慮更換程序員的事情了。

著名計算機科學家尼古拉斯·沃斯(Niklaus Wirth)有一句在計算機領域人盡皆知的名言“算法 數據結構=程序”(Algorithm Data Structures=Programs)。


算法這麼重要卻沒有引起國内頂級程序員的重視,不得不說這是一個遺憾。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)4


其實,要想學習算法,方法大于努力,以下三個思路和方法可以指導你更好的學習算法:


一.記住算法思想,記住算法結構。


這個是數據結構與算法學習最基礎的部分。


如果你把算法和數據結構系統的過了一遍,那你應該能夠明确這些基本的概念和一些初步的延申問題,什麼是數組,堆棧,隊列,鍊表,字典樹以及哈希表以及相關的問題,這裡所說的記住,是指在自己的腦海中形成長久的記憶。例如以下實用問題:

常見的堆棧面試問題

· 使用堆棧計算後綴表達式

· 對堆棧中的值進行排序

· 檢查表達式中的括号是否平衡


那麼,記住數據結構又需要記住哪些呢?

第一步:記住數據結構最直觀的東西


第二步:記憶某個數據結構的同時,還要記住數據結構的定義,性質與特點。例如在學習哈夫曼樹的時候。


定義是WPL最小的二叉樹。特點:(1)沒有度為1的結點(2)n個葉子結點的哈夫曼樹共有2n-1個結點(3)哈夫曼樹的任意非葉節點的左右子樹交換後仍是哈夫曼樹。


在知道它的定義後,我們可以自己去設計一個算法。如果自己沒想到,在看到先人的解決辦法後,更要随手存下來,去記住它。


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)5


二、用編程語言實現數據結構的算法


很多時候,理解一個算法後,很容易在紙上去模拟一個算法的實現過程。


但,具體實現,則是另一回事。一定得先自己思考,然後再去看書中給的編程語言實現。這一過程已經不屬于“數據結構與算法”的内容了。而是你綜合素質的體現,如何真正理解問題和用編程技巧實現,很考驗自己。


這一過程,很難靠記憶。需要在不斷敲代碼的過程中去體會一些直覺上的東西。如何用遞歸解決問題,如何使用循環,如何使用"哨兵”等等等等。當然,敲完後需要去思考總結,看看能不能總結出一些”小套路“并記住。


總之,實踐出真知

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)6


三、記住特定情況特定的算法搭配


每介紹一種數據結構,都可以聯系一個實際問題來作為“引子”,回答了“這種數據結構為什麼會出現”。

比如上述案例中提到的稀疏矩陣,通俗地說,如果邊的數量接近于與頂點的數量呈線性關系,那麼這個圖就是稀疏圖,例如,具有n個頂點和O(n log n)條件的圖一般被認為是稀疏圖。


這些東西,我們也須理解記憶。每一數據結構都有其特性,去解決某一類問題,我們需要去記憶,去感悟。


威著作,助力學習


通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)7


本書是作者Tim Roughgarden(斯坦福大學的教授,主要教授的課程有計算機科學、管理科學與工程。著有圖書《算法詳解(第1卷):算法基礎》)結合在斯坦福大學教授算法課程的實際經驗編寫的系列教程中的第二本。


主要介紹圖搜索及其應用,最短路徑算法以及一些數據結構(如堆、搜索樹、散列表和Bloom過濾器)的應用和實現。


本書是作者Tim Roughgarden(斯坦福大學的教授,主要教授的課程有計算機科學、管理科學與工程。著有圖書《算法詳解(第1卷):算法基礎》)

結合在斯坦福大學教授算法課程的實際經驗編寫的系列教程中的第二本。

主要介紹圖搜索及其應用,最短路徑算法以及一些數據結構(如堆、搜索樹、散列表和Bloom過濾器)的應用和實現。

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)8

通過遊戲設計了解機器學習算法(一個算法毀了一款好遊戲)9


查看目錄

第1章 圖的基礎知識

1.1 基本術語

1.2 圖的一些應用

1.3 圖形的度量

1.3.1 小測驗1.1鄰接矩陣

1.4.3 和小測驗1.3零代價的基本算法


2.1.3 高層思路

2.2.2 BFS正确性和運行時間

2.2.5 的答案

2.3 計算連通分量

2.3.1 (無向圖連通分量)算法

2.3.4 UCC小測驗2.2的僞碼

2.4.3 什麼時候存在拓撲順序

2.5.3 的拓撲排序

2.5.5 小測驗2.3為什麼要使用深度優先的搜索

2.6.3 一個例子

2.6.6 和小測驗2.6蝴蝶結

2.7.3 一些前提條件

3.1.3 的答案

3.2 Dijkstra算法

3.2.1 一種虛假的簡化

3.3.2 Dijkstra選擇正确的數據結構

4.1.2 其他操作

4.3 堆的應用

4.3.1 應用:中位值維護

4.4 Dijkstra算法的提速

4.4.1 維持不變性

4.4.4 數組形式的堆

4.5.3 操作

4.5.4 操作

4.6 本章要點

4.7 章末習題

挑戰題

編程題

第5章 搜索樹

5.1 有序數組

5.1.1 搜索樹的屬性

5.3.2 (高度)時間内實現Search

5.3.4 和Max

5.3.5 時間内實現OutputSorted操作

5.3.8 強化的搜索樹支持Select的答案

*5.4 平衡搜索樹

5.4.1 的答案

*6.4 更多的實現細節

6.4.1 負載和性能

6.4.2 管理散列表的負載

6.4.3 選擇散列函數

6.4.4 選擇沖突解決策略

6.4.5 小測驗6.6的答案

6.5 布隆過濾器的基礎知識

6.5.1 布隆過濾器支持的操作

6.5.2 布隆過濾器的應用

6.5.3 布隆過濾器的實現

*6.6 布隆過濾器的啟發式分析

6.6.1 啟發式假設

6.6.2 部分位被設置為1

6.6.3 假陽性率

6.6.4 結束語

6.6.5 小測驗6.7的答案

6.7 本章要點

6.8 章末習題

編程題

附錄A 快速回顧漸進性表示法


部分習題答案

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
王者榮耀花木蘭帶飛教學
王者榮耀花木蘭帶飛教學
大家好,我是小塔。大家都知道花木蘭這個英雄非常強,還因為在比賽場上表現的太好被削弱了很多次。也因此有人吐槽這個版本的花木蘭根本沒法玩,簡直就是個紅色超級兵。雖然削的次數很多,但依舊可以用來上分,具體操作大家來看看吧!首先,現在的花木蘭和最開...
2026-05-27
搞笑年會互動遊戲活躍氣氛
搞笑年會互動遊戲活躍氣氛
年會遊戲網絡上搜索下很多哈,這裡幫大家整理幾個新穎時髦且互動性很強的年會創意遊戲:1、彈幕上牆最多人用年會上設置一定的規則,比如新年祝福,大家紛紛留言上牆,主持人随機讀取若幹條最有趣的,這種互動方式最輕松,氛圍也很好。2、快樂大本營玩啥就玩...
2026-05-27
火影忍者ol手遊詳細攻略
火影忍者ol手遊詳細攻略
《火影忍者OL》手遊一經發布就倍受廣大玩家矚目,一個有着龐大數量的粉絲群體的IP其價值自然不言而喻。不同于以往的火影IP手遊,遊戲将畫面到玩法再到遊戲拓展都有着全新的進化。讓我們一起進入遊戲之中,體驗一下這部萬衆期待的指尖佳作。忍者世界的真...
2026-05-27
遊戲中大佬現實中廢物的日漫
遊戲中大佬現實中廢物的日漫
遊戲改編漫畫,利用最近孫主席嘲諷”動漫“的這個梗的來說,可以簡稱遊漫。之前看見有朋友安利了一些遊戲改編的美漫,那我就盤點一下我知道的一些遊戲改編的港漫與大家分享。畢竟當年在自己最中二的時候也是對港漫愛過的,希望讓喜歡港漫和遊戲的你找到一點樂...
2026-05-27
王者榮耀貂蟬單挑铠出什麼裝
王者榮耀貂蟬單挑铠出什麼裝
夢奇的單挑能力是很強的,能打能扛。并且肉到懷疑人生,但是并不是就沒人别的英雄打不過夢奇。但夢奇之所以強勢是因為它的一技能,可以産生一個護盾,吸收一定量的傷害,所以說别人打不動它。但是呂布就不同了,在附魔的狀态下,普通攻擊是百分百的真實傷害的...
2026-05-27
Copyright 2023-2026 - www.tftnews.com All Rights Reserved