階梯博弈演算法詳解(尼姆博弈進階)
1.什麼是階梯博弈?
階梯的序號如圖所示,地面表示第0號階梯。每次都可以將一個階梯上的石子向其左側移動任意個石子,沒有可以移動的空間時(及所有石子都位於地面時)輸。
2.階梯博弈的演算法
階梯博弈等效為奇數號階梯的尼姆博弈。為什麼呢?
假設我們是先手。我們按照尼姆博弈的原則進行第一次移動。如果對方移動奇數號階梯的石子,我們繼續按照尼姆博弈的原則移動。如果對方移動的是偶數號階梯的石子,及對方將偶數號階梯的石子移動到了奇數號(對奇數號產生了影響)我們就接著將對方移動到奇數號的石子再向下移動一個臺階,移動到偶數號。這就意味著在偶數號的棋子對我們的博弈是沒有影響的。
3.問題
a.我們把石子都從奇數號移動到偶數號,遊戲不是還沒結束呢嗎??
是的。按照尼姆博弈,先手走最後一步,奇數階梯上已經沒有石子了。此時後手只能移動偶數上的石子,我們按照上面的原則,將後手移動的石子,再移動一次。最後一定是我們勝利(偶數號一定是>=2而不是0)
b.為什麼等效於奇數號的尼姆博弈而不是偶數號的?
因為如果等效於偶數號的,當後手移動奇數號的,移動到0了,就不能保證狀態一致了。
相關推薦
階梯博弈演算法詳解(尼姆博弈進階)
1.什麼是階梯博弈? 階梯的序號如圖所示,地面表示第0號階梯。每次都可以將一個階梯上的石子向其左側移動任意個石子,沒有可以移動的空間時(及所有石子都位於地面時)輸。 2.階梯博弈的演算法 階梯博弈等效
Being a Good Boy in Spring Festival(杭電1850)(尼姆博弈)
cor gree 強烈 方案 con tracking output script 主動 Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others) Memory Limi
【USTC 1213】取石子遊戲(尼姆博弈)
std col 遊戲 script pro 取石子 div ++ pre Description 在組合博弈論中,Nim遊戲是一個非常經典的問題,Nim遊戲可描述如下:有n堆石子,每堆石子數分別為a1, a2, …, an (ai≥0)。現有兩人輪流從這n堆中取石子,每
題解報告:hdu 1850 Being a Good Boy in Spring Festival(尼姆博弈)
轉化 主動 輸入 content hdu () scrip tput inpu 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1850 Problem Description 一年在外 父母時刻牽掛春節回家 你能做幾天好孩子嗎
Nim遊戲(尼姆博弈)
這裡是尼姆博弈的模板,前面的博弈問題的部落格裡也有,這裡單列出來。 有N堆石子。A B兩個人輪流拿,A先拿。每次只能從一堆中取若干個,可將一堆全取走,但不可不取,拿到最後1顆石子的人獲勝。假設A B都非常聰明,拿石子的過程中不會出現失誤。給出N及每堆石子的數量,問最後誰能贏得比賽。
深度學習 --- BP演算法詳解(誤差反向傳播演算法)
本節開始深度學習的第一個演算法BP演算法,本打算第一個演算法為單層感知器,但是感覺太簡單了,不懂得找本書看看就會了,這裡簡要的介紹一下單層感知器: 圖中可以看到,單層感知器很簡單,其實本質上他就是線性分類器,和機器學習中的多元線性迴歸的表示式差不多,因此它具有多元線性迴歸的優點和缺點。
深度學習 --- 模擬退火演算法詳解(Simulated Annealing, SA)
上一節我們深入探討了,Hopfield神經網路的性質,介紹了吸引子和其他的一些性質,而且引出了偽吸引子,因為偽吸引子的存在導致Hopfield神經網路正確率下降,因此本節致力於解決偽吸引子的存在。在講解方法之前我們需要再次理解一些什麼是偽吸引子,他到底是如何產生的? 簡單來說說就是網路動態轉
深度學習 --- BP演算法詳解(BP演算法的優化)
上一節我們詳細分析了BP網路的權值調整空間的特點,深入分析了權值空間存在的兩個問題即平坦區和區域性最優值,也詳細探討了出現的原因,本節將根據上一節分析的原因進行改進BP演算法,本節先對BP存在的缺點進行全面的總結,然後給出解決方法和思路,好,下面正式開始本節的內容: BP演算法可以完成非線性
深度學習 --- BP演算法詳解(流程圖、BP主要功能、BP演算法的侷限性)
上一節我們詳細推倒了BP演算法的來龍去脈,請把原理一定要搞懂,不懂的請好好理解BP演算法詳解,我們下面就直接把上一節推匯出的權值調整公式拿過來,然後給出程式流程圖,該流程圖是嚴格按照上一節的權值更新過程寫出的,因此稱為標準的BP演算法,標準的BP演算法中,每輸入一個樣本,都要回傳誤差並調整權值,
(轉載)KMP演算法詳解 (原創)詳解KMP演算法
轉自https://www.cnblogs.com/yjiyjige/p/3263858.html (原創)詳解KMP演算法 作者:孤~影 KMP演算法應該是每一本《資料結構》書都會講的,算是知名度最高的演算法之一了,但很可惜,我大二那年壓根就沒看懂過~~~ 之後也在很多地方也都經常看
HDU 1907:John(尼姆博弈變形)
John Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submi
SIFT演算法詳解(這篇對演算法講解的還是相當清楚的)
尺度不變特徵變換匹配演算法詳解 Scale Invariant Feature Transform(SIFT) Just For Fun 對於初學者,從David G.Lowe的論文到實現,有許多鴻溝,本文幫你跨越。 1、SIFT綜述 尺度不變特徵轉換(
第k短路 演算法詳解(圖解)與模板(A* 演算法)
老規矩,先放模板,有時間放圖解 #include <map> #include <queue> #include <cstdlib> #include <cma
匈牙利演算法詳解(含時間複雜度)
尋找二部圖最大匹配的匈牙利數學家埃德蒙德斯在1965年提出的一個簡化的最大流演算法。該演算法根據二部圖匹配這個問題的特點將最大流演算法進行了簡化,提高了效率。 普通的最大流演算法一般都是基於帶權網路模型的,二部圖匹配問題不需要區分圖中的源點和匯點,也不關心邊的方向,因此不需要複雜的網路圖模型,這就是匈牙利演
快速排序演算法詳解(原理、實現和時間複雜度)
快速排序是對氣泡排序的一種改進,由 C.A.R.Hoare(Charles Antony Richard Hoare,東尼·霍爾)在 1962 年提出。 快速排序的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料比另一部分的所有資料要小,再按這種方法對這兩部分資料分別進行快速排
多重揹包O(N*V)演算法詳解(使用單調佇列)
多重揹包問題: 有N種物品和容量為V的揹包,若第i種物品,容量為v[i],價值為w[i],共有n[i]件。怎樣裝才能使揹包內的物品總價值最大? 網上關於“多重揹包”的資料倒是不少,但是關於怎麼實現O(N*V)演算法的資料,真得好少呀,關於“單調佇列”那部分演算法,又沒說明
AVL樹插入刪除演算法詳解(有圖) -- C++語言實現
一:AVL樹介紹 AVL樹本質上還是一棵二叉搜尋樹,它的特點是: 1.本身首先是一棵二叉搜尋樹。 2.帶有平衡條件:每個結點的左右子樹的高度之差的絕對值(平衡因子)最多為1。在本文中用分別用-1,0,1定義左邊樹高,等高,右邊樹高。平衡因子用m_bf表示。 也就是說,AV
資料對齊-編輯距離演算法詳解(Levenshtein distance)
目錄 一:簡介 二:演算法定義 1:定義 2:a small case 3:演算法的上下界限 三:應用場景 1:資料對齊 2:拼寫糾錯 四:其他的編輯距離演算法 五:演算
AC 自動機演算法詳解(轉)
首先簡要介紹一下AC自動機:Aho-Corasick automation,該演算法在1975年產生於貝爾實驗室,是著名的多模匹配演算法之一。一個常見的例子就是給出n個單詞,再給出一段包含m個字元的文章,讓你找出有多少個單詞在文章裡出現過。要搞懂AC自動機,先得有模式樹(字典樹)Trie和KMP模式匹配演算法
Word2Vec演算法詳解(相關背景介紹)
本節開始將介紹幾種比較前言的NLP演算法,主要是和神經網路進行結合的,和深度學習進行結合的演算法原理和思想,前面的NLP演算法都是傳統的經典NLP演算法思想,都沒有涉及到實戰方面的,實戰方面的我計劃明年開始進行,所以這個系列的都是理論,本人一直很注重理論方面的學習,因為只有搞懂演算法的原理你才有