殘局定論,逐局驗證
本頁所有局面、着法與合法性判斷,均由我們開源的規則引擎在構建時逐一校驗。該引擎實現亞洲象棋聯合會(WXF)規則,長將與長捉都判負,不判和;長捉的判定還沒有經過官方判例集的校驗。
直接回答
子力少的殘局,勝和不是看法問題,是可以數清楚的。單車對光將,3834個合法局面全勝;對方雙士齊全,125118個局面依然全勝。馬兵對光將,276390個局面全勝。炮兵不行——勝86.8%,其餘和棋,因為炮要炮架,而守方可以不給。
“驗證過”是什麼意思
棋譜上寫“單車例勝光將”“單炮不勝光將”,寫得很肯定,但從來不給過程。本頁的每一條結論都是本站引擎自己算出來的,過程如下:
- 窮舉每一個合法局面。攻方子力的每一個落點、雙方將的每一個九宮點、士和象的每一個可站點,再把不合法的剔掉——比如兩將在一條通暢的豎線上照面。
- 從終局往回倒推。輪到走的一方無着可走,就是這一方負;結論再往外傳:只要有一步能把對方推進負局,這一局就是勝;每一步都把對方送進勝局,這一局就是負;剩下的是和。
- 六十回合規則最後才算,不在搜索裡算。一盤棋會不會走到六十回合,取決於走的路線而不是局面本身,所以搜索只報“最短多少步成殺”,再拿這個數去比。這件事有實際意義:要走61回合才贏的棋,在實戰裡是和棋。
兩點讓這些結論和國際象棋的直覺不一樣。象棋裡無着可走判負,不是和棋,守方因此少了最重要的一項求和資源。而且沒有升變,兵到底還是兵。
定論
以下均為紅先。“最長勝法”是雙方都走最強時的最坏情況,不是平均值,也不是實戰裡的常見步數。
| 子力 | 局面數 | 結論 | 最長勝法 |
|---|---|---|---|
| 單車對光將 | 3,834 | 全勝 | 2回合 |
| 單車對單士 | 33,345 | 全勝 | 5回合 |
| 單車對雙士 | 125,118 | 全勝 | 12回合 |
| 單車對雙象 | 80,328 | 全勝 | 12回合 |
| 單車對單士單象 | 228,060 | 全勝 | 9回合 |
| 單馬對光將 | 4,590 | 全勝 | 7回合 |
| 單馬對單士 | 38,595 | 勝34,964(90.6%);和3,631 | 21回合 |
| 雙馬對光將 | 192,465 | 全勝 | 7回合 |
| 馬兵對光將 | 276,390 | 全勝 | 7回合 |
| 馬炮對光將 | 409,311 | 全勝 | 7回合 |
| 單兵對光將 | 3,294 | 勝2,862;和432(全是底兵) | 10回合 |
| 雙兵對光將 | 98,487 | 勝96,921(98.4%);和1,566 | 13回合 |
| 炮兵對光將 | 293,823 | 勝255,144(86.8%);和38,679 | 10回合 |
| 雙炮對光將 | 217,728 | 勝217,662;僅和66 | 7回合 |
| 單炮對光將 | 4,914 | 全和 | — |
表裡所有勝局都在六十回合之內,而且餘量很大——最長的一條也只要13回合。
雙士救不了光將
單車這一行值得多看一眼。將把雙士都留着,125118個局面依然全負——而士本身就是原因之一:它們占住了將本來可以挪過去的那兩個九宮點。
下面這個局面,黑方雙士都在,紅先一步成殺,而且只有一步。
紅先,一步成殺。
Xiangqi position. Red: chariot a0, general d0. Black: advisor d9, general d8, advisor d7. Red to move.
最出人意料的一條
馬兵對光將,276390個局面全勝。換成炮兵,就不是了——勝86.8%,和38679。
原因在炮本身。炮吃子必須隔着不多不少一個子,而對面只有一個光將時,常常無子可隔:只能拿自己的兵當炮架,於是守方只要把將帶離那一條能成立的線,就殺不掉。馬不需要炮架,所以同樣的子力換成馬就是乾淨的全勝。
更極端的版本是雙炮:勝217662,僅和66——近到你把這個殘局下一百遍都碰不上那個例外,卻仍然不是必勝。單士的價值也比看上去大:單馬對光將4590個局面全勝,而對方多一個士,就只勝90.6%了。
這也是炮類殘局的總體形狀,以及單炮對光將4914個局面全和、單馬對光將4590個局面全勝的原因。炮類殘局詳見此頁 →
還沒有驗證的
本頁沒有給出的,恰恰是最有名的那一條:單車對士象全,棋譜稱例和。那個局面集大約有一千一百万個局面,超出本解算器一次能處理的範圍,所以我們沒有算,也不聲稱。
更大的實用殘局同樣如此——車對馬炮、雙車對士象全。它們在計劃裡。在算出來之前,本頁只寫已經數過的部分,這也正是本頁的意義。
相關問題
單車能贏對方雙士嗎?
能,而且是全勝。我們把125118個合法局面全算了一遍,紅方無一例外取勝,最長12回合。雙士救不了將——它們反而占住了將可以逃過去的九宮點。
單炮能殺光將嗎?
不能。4914個合法局面全部和棋。炮吃子要隔着不多不少一個子,而對面只有一個光將時無子可隔。不需要炮架的單馬則相反,4590個局面全勝。
炮兵對光將是必勝嗎?
不是。293823個局面裡勝255144個,也就是說13.2%是和棋。兵得充當炮架,而守方把將帶離那幾個能成立的點,就殺不掉。
這些結論是怎麼算出來的?
把該子力下每一個合法局面都列出來,再從“輪到走的一方無着可走”這種終局往回倒推——在象棋裡那是負,不是和。六十回合規則最後再拿成殺步數去比,因為一盤棋會不會走到那裡取決於路線。