報數字 (博弈)

2021-09-29 18:51:07 字數 755 閱讀 9200

題目:

解題思路:

給出兩個數n,m 。誰先數到 n 誰贏。簡單的博弈。

題目給出兩個例子: 23 2 and 4 3。

發現其中一些規律,要想獲勝只要保證最後範圍內能達到 n。那麼我們所能確定的週期是m + 1(第一人不管數幾,最後都可以保證達到m + 1)所以週期為 m + 1.

所以:n % ( m +1 ) == 0 就後出手 second

n % (m+1)!= 0 則 first

eg:如果等於0, 那麼最後到 n 迴圈節為 (m + 1) 。第一人所能數的為 1—m,所以無論如何你都可以加到 m + 1。所以最終是k*(m + 1 )所以後手贏。

如果不等於0, 那先手先數 n % (m+1),後面的與等於0時規律相同。

**:

#include

#include

#include

#include

#include

using

namespace std;

intmain()

}

報數字(約瑟夫環)

description 佳佳和幼兒園裡的小朋友經常一起玩乙個遊戲 n個小朋友坐成一圈,從第乙個小朋友開始報數,從1開始依次報,每個報到m的小朋友要起來表演節目,然後那個小朋友從圈裡出去,接下來的小朋友繼續從1開始。直到只剩下最後乙個小朋友。佳佳一點也不喜歡自己表演,所以他想知道的是,他坐在哪個位置,...

報數字遊戲 C語言

中國古代民間有這樣乙個遊戲 兩個人從1開始輪流報數,每人每可報乙個數或兩個連續的數,誰先報到30,誰為勝方。現在小張和小王一起玩這個遊戲,小張先報,已知兩邊的決策都無懈可擊,你知道誰是必勝者嗎?現在由系統給出乙個新的目標數,請你給出對應的必勝者姓名。輸入為乙個int型別的正整數,對應遊戲的目標數 若...

選數字(多人博弈)

100個人,每個人選擇乙個 1 100範圍內的乙個數字,誰的數字最接近平均數的 2 3,誰將獲得獎金。如果是你,你會選幾?前提是每個人都想贏得獎金。分析步驟 1.每個人都不會選67 100之間的數字,因為最大數字為100,如果全班人都選100,那麼平均值的2 3為 67,這樣選擇大於67的人的選擇處...