博弈論算法

一、減法游戲

  • 初始有一個數 n。

  • 兩個玩家輪流操作,每次可以減去?1?到?9?之間的任意整數。

  • 將數減到?0?的玩家獲勝。

可以發現規律:

減法游戲只需要判斷當前數取模是否為0,即可快速判斷勝負。

例題:

Leetcode 292. Nim 游戲

二、取球博弈

兩個人玩取球的游戲。一共有 N個球,每人輪流取球,每次可取集合 n1,n2,n3中的任何一個數目。如果無法繼續取球,則游戲結束。此時,持有奇數個球的一方獲勝。
如果兩人都是奇數,則為平局。假設雙方都采用最聰明的取法第一個取球的人一定能贏嗎?試編程解決這個問題。

該題是一個典型的博弈論問題,涉及取球游戲奇偶性判斷。這里使用動態規劃來解決此問題,我們需要遞推出來N之前的所有dp值。因為要考慮雙方手里的球的奇偶性,因為有三種狀態,平手狀態需要考慮對方是否也處于必敗態。

N = [int(x) for x in input().split()]
X = [int(x) for x in input().split()]
min_value = min(N)dp = [[[-1 for _ in range(2)] for _ in range(2) ]for _ in range(1000)]
for i in range(1000):if i < min_value:dp[i][0][0] = 0dp[i][0][1] = -1dp[i][1][0] = 1dp[i][1][1] = 0for id, c in enumerate(N):temp = i - cif temp >= 0:dp[i][0][0] = max(dp[i][0][0], -dp[temp][0][c % 2])dp[i][0][1] = max(dp[i][0][1], -dp[temp][1][c % 2])dp[i][1][0] = max(dp[i][1][0], -dp[temp][0][(c + 1) % 2])dp[i][1][1] = max(dp[i][1][1], -dp[temp][1][(c + 1) % 2])
for i in range(len(X)):if dp[X[i]][0][0] == 1:print("+",end=" ")elif dp[X[i]][0][0] == 0:print("0",end=" ")else:print("-",end=" ")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72803.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72803.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72803.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Excel·VBA江西省預算一體化工資表一鍵處理

每月制作工資表導出為Excel后都需要調整格式&#xff0c;刪除0數據的列、對工資表項目進行排序、打印設置等等&#xff0c;有些單位還分有“行政”、“事業”2個工資表就需要操作2次。顯然&#xff0c;這種重復操作的問題&#xff0c;可以使用VBA代碼解決 目錄 代碼使用說明1&a…

深度學習驅動的跨行業智能化革命:技術突破與實踐創新

第一章 深度學習的技術范式演進與核心架構 1.1 從傳統機器學習到深度神經網絡的跨越 深度學習的核心在于通過多層次非線性變換自動提取數據特征,其發展歷程可劃分為三個階段:符號主義時代的規則驅動(1950s-1980s)、連接主義時代的淺層網絡(1990s-2000s)以及深度學習時代…

嵌入式學習筆記-卡爾曼濾波,PID,MicroPython

文章目錄 卡爾曼濾波卡爾曼濾波的核心思想卡爾曼濾波的數學模型1. 狀態轉移模型&#xff08;預測系統狀態&#xff09;2. 觀測模型&#xff08;預測測量值&#xff09; 卡爾曼濾波的五個關鍵步驟1. 預測狀態2. 預測誤差協方差3. 計算卡爾曼增益4. 更新狀態5. 更新誤差協方差 卡…

一周熱點-文本生成中的擴散模型- Mercury Coder

一、背景知識 在人工智能領域&#xff0c;文本生成模型一直是研究的熱點。傳統的大型語言模型多采用自回歸架構&#xff0c;從左到右逐個預測下一個標記。這種模型雖然在生成連貫文本方面表現出色&#xff0c;但在速度上存在一定的局限性&#xff0c;因為它需要按順序生成每個標…

Qt調試功能使用方法

QT編程環境 QT在Windows操作系統下的三種編程環境搭建。 方案編程環境編譯器調試器1Qt CreatorMinGW GCCGDB2Qt CreatorMicrosoft Visual C CompilerDebugging Tools for Widows3Microsoft Visual Studio VS自帶VS自帶 方案提及的QT安裝程序及壓縮包均能在官網Index of /off…

vulnhub靶場之【digitalworld.local系列】的mercy靶機

前言 靶機&#xff1a;digitalworld.local-mercy&#xff0c;IP地址為192.168.10.11 攻擊&#xff1a;kali&#xff0c;IP地址為192.168.10.6 kali采用VMware虛擬機&#xff0c;靶機選擇使用VMware打開文件&#xff0c;都選擇橋接網絡 這里官方給的有兩種方式&#xff0c;一…

Fiddler抓取App接口-Andriod/IOS配置方法

Andriod配置方法&#xff1a; 1&#xff09;確保手機和Fiddler所在主機在同一個局域網中 2&#xff09;獲取Fiddler所在主機的ip地址&#xff0c;通過cmd命令進入命令編輯器&#xff0c;輸入ipconfig -all&#xff0c;找到IPv4地址&#xff0c;記下該地址 3&#xff09;對手機…

步進電機軟件細分算法解析與實踐指南

1. 步進電機細分技術概述 步進電機是一種將電脈沖信號轉換為角位移的執行機構&#xff0c;其基本運動單位為步距角。傳統步進電機的步距角通常為 1.8&#xff08;對應 200 步 / 轉&#xff09;&#xff0c;但在高精度定位場景下&#xff0c;這種分辨率已無法滿足需求。細分技術…

C語言_數據結構總結2:動態分配方式的順序表

0——靜態分配內存的順序表和動態分配內存的順序表的相同之處和不同之處 相同之處 基本操作邏輯相同&#xff1a;無論是靜態分配還是動態分配的順序表&#xff0c;其核心的操作邏輯是一致的。例如插入操作都需要將插入位置之后的元素依次后移&#xff0c;刪除操作都需要將刪除…

Vue 與 Element UI 深度探秘:從 Array.isArray 到動態綁定的技術之旅!?

以下是一篇深入的技術博客&#xff0c;基于我們對 compare-form.vue 和 <w-form-select.vue> 的所有討論&#xff0c;涵蓋 Array.isArray、option-label/option-value、:list 動態綁定、: 語法以及 Vue 2/3 兼容性等問題。博客風格輕松有趣&#xff0c;加入 SVG 圖解和實…

計算機視覺|3D卷積網絡VoxelNet:點云檢測的革新力量

一、引言 在科技快速發展的背景下&#xff0c;3D 目標檢測技術在自動駕駛和機器人領域中具有重要作用。 在自動駕駛領域&#xff0c;車輛需實時、準確感知周圍環境中的目標物體&#xff0c;如行人、車輛、交通標志和障礙物等。只有精確檢測這些目標的位置、姿態和類別&#x…

前端打包優化相關 Webpack

前端打包優化相關 Webpack 打包時間的優化&#xff08;基于 Vue CLI 4 Webpack 5&#xff09; 1. Webpack 配置減少打包時間 1.1 對 JS 配置&#xff1a;排除 node_modules 和 src 中的打包內容 在開發環境下&#xff0c;修改 Webpack 的 JS 規則&#xff0c;排除 /node_m…

leetcode69.x 的平方根

題目&#xff1a; 給你一個非負整數 x &#xff0c;計算并返回 x 的 算術平方根 。 由于返回類型是整數&#xff0c;結果只保留 整數部分 &#xff0c;小數部分將被 舍去 。 注意&#xff1a;不允許使用任何內置指數函數和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。…

Docker 部署 MongoDB 并持久化數據

Docker 部署 MongoDB 并持久化數據 在現代開發中&#xff0c;MongoDB 作為 NoSQL 數據庫廣泛應用&#xff0c;而 Docker 則提供了高效的容器化方案。本教程將介紹如何使用 Docker 快速部署 MongoDB&#xff0c;并實現數據持久化&#xff0c;確保數據不會因容器重啟或刪除而丟失…

信奧賽CSP-J復賽集訓(模擬算法專題)(3):P1089 [NOIP 2004 提高組] 津津的儲蓄計劃

信奧賽CSP-J復賽集訓&#xff08;模擬算法專題&#xff09;&#xff08;3&#xff09;&#xff1a;P1089 [NOIP 2004 提高組] 津津的儲蓄計劃 題目描述 津津的零花錢一直都是自己管理。每個月的月初媽媽給津津 300 300 300 元錢&#xff0c;津津會預算這個月的花銷&#xff0…

日新F1、瑞研F600P 干線光纖熔接(熔接損耗最大0.03DB)

Ⅰ. 設備特性對比與實測驗證 1. 日新F1&#xff08;兩馬達&#xff09;極限參數 切割角度&#xff1a;必須≤0.3&#xff08;雙邊累計誤差&#xff1c;0.6&#xff09; ? 實測案例&#xff1a;切割0.35時&#xff0c;損耗波動達0.05-0.08dB&#xff08;超干線標準&#xff09…

【量化科普】Sharpe Ratio,夏普比率

【量化科普】Sharpe Ratio&#xff0c;夏普比率 &#x1f680;量化軟件開通 &#x1f680;量化實戰教程 在量化投資領域&#xff0c;夏普比率&#xff08;Sharpe Ratio&#xff09;是一個非常重要的風險調整后收益指標。它由諾貝爾經濟學獎得主威廉F夏普&#xff08;William…

數據結構--【順序表與鏈表】筆記

順序表 template <class T> class arrList :public List<T> //表示 arrList 類以公有繼承的方式繼承自 List<T> 類 //公有繼承意味著 List<T> 類的公共成員在 arrList 類中仍然是公共成員&#xff0c;受保護成員在 arrList 類中仍然是受保護成員。 { …

idea中隱藏目錄

可能的解決步驟&#xff1a; 排除目錄的方法是否在2021版本中有變化&#xff1f;應該沒有&#xff0c;還是通過右鍵標記為排除。 用戶可能想完全隱藏目錄&#xff0c;比如在項目視圖中不顯示&#xff0c;這可能需要調整項目視圖的設置&#xff0c;比如取消勾選“顯示排除的文件…

AWS 如何導入內部SSL 證書

SSL 證書的很重要的功能就是 HTTP- > HTTPS, 下面就說明一下怎么導入ssl 證書,然后綁定證書到ALB. 以下示例說明如何使用 AWS Management Console 導入證書。 從以下位置打開 ACM 控制臺:https://console.aws.amazon.com/acm/home。如果您是首次使用 ACM,請查找 AWS Cer…