亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 其他策略——殘局庫.htm

?? 象棋程序設計全資料集(介紹編寫象棋程序的方法思路)
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
  1</FONT><FONT color=#0000ff>】</FONT>,這個局面是殺棋,所以把它設為<FONT 
  face="Times New Roman">LOSS</FONT>。在我們要討論的這個局面中,根本不能檢查到什么。在主循環的第一次遍歷中,會為“白王在<FONT 
  face="Times New Roman">g3</FONT>,黑王在<FONT 
  face="Times New Roman">g1</FONT>,白車在<FONT 
  face="Times New Roman">a2</FONT>”<FONT color=#0000ff>【</FONT><FONT 
  face="Times New Roman" color=#0000ff>8/8/8/8/8/6K1/R7/6k1 w - - 0 
  1</FONT><FONT color=#0000ff>】</FONT>產生所有著法,發現走了<FONT 
  face="Times New Roman">Rb2-b1</FONT>后就是<FONT 
  face="Times New Roman">LOSS</FONT>局面,根據規則這個局面就設為<FONT 
  face="Times New Roman">WIN</FONT>。下一步,為黑王在<FONT 
  face="Times New Roman">h1</FONT>的局面<FONT color=#0000ff>【</FONT><FONT 
  face="Times New Roman" color=#0000ff>8/8/8/8/8/6K1/R7/7k b - - 0 1</FONT><FONT 
  color=#0000ff>】</FONT>找后續局面,發現所有的后續局面都是<FONT 
  face="Times New Roman">WIN</FONT>局面<FONT 
  face="Times New Roman">(</FONT>這個局面的后續局面只有一個<FONT 
  face="Times New Roman">)</FONT>。最后把這個局面設成<FONT 
  face="Times New Roman">LOSS</FONT>,就得到了正確的結果。 
  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>索引函數</STRONG></FONT> 
  <DT>  
  <DT>  索引函數對這個算法非常重要,你無法存儲整個局面并對他們設定結果,因為結果只需要<FONT 
  face="Times New Roman">2</FONT>位,而整個局面需要用大量存儲器來描述。如果你存儲整個局面,你就會浪費大量的存儲器。用了索引函數以后,你就能夠簡單地用一個數字來代表局面了,你不需要把結果和索引數字都記下來,而只需要以索引數字為數組的指標,只在數組中存儲結果。那么如何才能找到符合上述性質的索引函數呢?看上去這是個很嚇人的工作,實際上用簡單的方法來構造索引函數是可行的。對于棋子各不相同的殘局<FONT 
  face="Times New Roman">(</FONT>例如白王、白車和黑王<FONT 
  face="Times New Roman">)</FONT>,就非常簡單,把格子標號為<FONT 
  face="Times New Roman">0</FONT>到<FONT 
  face="Times New Roman">63</FONT>,就可以寫下這樣的公式: 
  <DT>  
  <DD><FONT size=3>index = wK_index + 64 * wR_index + 64 * 64 * bK_index;</FONT> 

  <DT>  
  <DT>  這個函數完成了局面到數字的轉換,并且它是可逆的<FONT face="Times New Roman">(wK_index = index % 
  64, wR_index = (index / 64) % 64</FONT>,等等<FONT 
  face="Times New Roman">)</FONT>,但是它會產生一些不合理局面<FONT 
  face="Times New Roman">(</FONT>例如幾個子在同一個格子上,或兩個王緊挨著<FONT 
  face="Times New Roman">)</FONT>。這個函數也沒有利用棋盤的對稱性。這些細節問題是完全可以解決的,但是在這里我不想多說了。那么如果棋盤上有多于一個的相同棋子,例如王雙車對王,怎么辦呢?我們照樣寫: 

  <DT>  
  <DD><FONT size=3>index = wK_index + 64 * wR1_index + 64 * 64 * wR2_index + 64 
  * 64 * 64 * bK_index; </FONT>
  <DT>  
  <DT>  這樣當然很管用,但是非常愚笨,因為<FONT face="Times New Roman">1</FONT>號車在<FONT 
  face="Times New Roman"><EM>x</EM></FONT>格而<FONT 
  face="Times New Roman">2</FONT>號車在<FONT 
  face="Times New Roman"><EM>y</EM></FONT>格,情況跟<FONT 
  face="Times New Roman">2</FONT>號車在<FONT 
  face="Times New Roman"><EM>x</EM></FONT>格而<FONT 
  face="Times New Roman">1</FONT>號車在<FONT 
  face="Times New Roman"><EM>y</EM></FONT>格是一樣的。這樣我們的索引就比必要的數多了一倍!為了解決這個問題,我們用組合公式來表示<FONT 
  face="Times New Roman">2</FONT>個相同的子在<FONT 
  face="Times New Roman">64</FONT>個位置上的情況:在數學課上你肯定學過用<FONT 
  face="Times New Roman"><EM>N</EM> = 64 × 63 / 2</FONT>來做。因此我們可以寫成: 
  <DD>  
  <DD><FONT size=3>index = wK_index + 64 * combinedindex + 64 * N * bK_index; 
  </FONT>
  <DD>  
  <DT>  剩下來的問題就是由車的具體位置來計算“組合的車的索引”了,它是<FONT 
  face="Times New Roman">0</FONT>到<FONT face="Times New Roman">64 × 63 / 2 
  </FONT><FONT face=Symbol>-</FONT><FONT face="Times New Roman"> 
  1</FONT>之間的數。用<FONT face="Times New Roman"><EM>r</EM><SUB>1</SUB></FONT>和<FONT 
  face="Times New Roman"><EM>r</EM><SUB>2</SUB></FONT>表示兩個車的位置,并且<FONT 
  face="Times New Roman"><EM>r</EM><SUB>1</SUB> &lt; 
  <EM>r</EM><SUB>2</SUB>(</FONT>這樣就等同于除以<FONT 
  face="Times New Roman">2</FONT>了<FONT face="Times New Roman">!)</FONT>。我們有: 
  <DD>  
  <DD><FONT size=3>combinedindex = bicoef(r1, 1) + bicoef(r2, 2);</FONT> 
  <DT>  
  <DT>  這里<FONT face="Times New Roman">bicoef(<EM>x</EM>, 
  <EM>y</EM>)</FONT>代表<FONT face="Times New Roman"><EM>x</EM></FONT>和<FONT 
  face="Times New Roman"><EM>y</EM>(<EM>x</EM> &gt; 
  <EM>y</EM>)</FONT>的二項式系數,即<FONT face="Times New Roman"><EM>x</EM>! × 
  <EM>y</EM>! / (<EM>x</EM> </FONT><FONT face=Symbol>-</FONT><FONT 
  face="Times New Roman"> 
  <EM>y</EM>)!</FONT>,任意數量的棋子都可以由這個組合索引公式產生。它的逆公式有點復雜,如果是<FONT 
  face="Times New Roman"><EM>k</EM></FONT>個子在<FONT 
  face="Times New Roman"><EM>n</EM></FONT>個格子上的組合索引,我們就必須用順序搜索的辦法來分析它的組成:因為組合索引的最后一項總是最大的,所以我們要依次計算<FONT 
  face="Times New Roman"><EM>i</EM> = <EM>n</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 1, <EM>n</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 2, ...</FONT>的<FONT 
  face="Times New Roman">bicoef(<EM>i</EM>, 
  <EM>k</EM>)</FONT>,直到比組合索引數小為止。一旦找到了<FONT 
  face="Times New Roman"><EM>i</EM></FONT>,我們就知道它在第<FONT 
  face="Times New Roman"><EM>i</EM></FONT>格上,然后在組合索引上減去<FONT 
  face="Times New Roman">bicoef(<EM>i</EM>, <EM>k</EM>)</FONT>。然后我們依次計算<FONT 
  face="Times New Roman"><EM>j</EM> = <EM>i</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 1, <EM>i</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 2, ...</FONT>的<FONT 
  face="Times New Roman">bicoef(<EM>j</EM>, <EM>k</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 
  1)</FONT>,因為我們已經在建立索引函數的時候知道<FONT face="Times New Roman"><EM>j</EM> &lt; 
  <EM>i</EM></FONT>了。 
  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>壓縮</STRONG></FONT> 
  <DT>  
  <DT>  當你開始生成殘局庫時,你一定會馬上意識到你要建立的殘局庫是非常龐大的。例如,<FONT 
  face="Times New Roman">8</FONT>子的西洋跳棋殘局庫如果沒有壓縮,就需要大約<FONT 
  face="Times New Roman">40GB</FONT>的磁盤空間。如果你需要在<FONT 
  face="Times New Roman">1GB</FONT>的<FONT 
  face="Times New Roman">RAM</FONT>的計算機上使用這個殘局庫,你就必須對它進行壓縮。壓縮這類殘局庫的標準方法是“行程編碼”<FONT 
  face="Times New Roman">(RLE</FONT>,<FONT face="Times New Roman">Run-Length 
  Encoding)</FONT>:當你在查找后退式分析所產生的數組時,它看上去會是這樣的: 
  <DD>  
  <DD><FONT size=3>....WWWBWWLLDBDBDDDWLBLLLWWBDDD...</FONT> 
  <DT>  
  <DT>  這里<FONT 
  face="Times New Roman">WLDB</FONT>代表勝負和壞,壞的意思是局面不合理,使用有間隙的索引,或者不走棋的一方被將軍了,這種情況就會發生。要對此進行壓縮,我們首先注意到對壞的標志可以任意處理,因為它們沒有用,因此我們將它們設定為最方便壓縮的值: 

  <DD>  
  <DD><FONT size=3>....WWWWWWLLDDDDDDDWLLLLLWWDDDD...</FONT> 
  <DT>  
  <DT>  行程編碼存儲的就是一對對數值和長度,上面的例子就轉換為: 
  <DD>  
  <DD><FONT size=3>(W,6) (L,2) (D,7) (W,1) (L,5) (W,2) (D,4)</FONT> 
  <DT>  
  <DT>  如果行程非常長<FONT face="Times New Roman">(</FONT>我沒有耐心來造一個行程非常長的例子<FONT 
  face="Times New Roman">)</FONT>,那么這種壓縮的效果就非常好。<FONT 
  face="Times New Roman">8</FONT>子的西洋跳棋殘局庫可以壓縮到大約<FONT 
  face="Times New Roman">4GB</FONT>,壓縮因子是<FONT face="Times New Roman">10</FONT>。 

  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>在搜索中讀取數據庫</STRONG></FONT> 
  <DT>  
  <DT>  壓縮完殘局庫以后,你必須寫一個飛躍式<FONT 
  face="Times New Roman">(on-the-fly)</FONT>的解壓縮程序,根據局面找到結果。或許這還不夠,如果殘局庫大到超過你的<FONT 
  face="Times New Roman">RAM</FONT>,你就必須為自己的殘局庫寫一個存儲器管理程序。你不會指望<FONT 
  face="Times New Roman">Windows(</FONT>或其他操作系統<FONT 
  face="Times New Roman">)</FONT>來幫你管理殘局庫,因為你自己寫的程序是高效的。管理殘局庫的通常做法是把壓縮的殘局庫分成一個個幾千字節的塊<FONT 
  face="Times New Roman">(Chunks)</FONT>,如果你需要知道某個局面的結果,就一次讀取整個塊。從磁盤讀取<FONT 
  face="Times New Roman">1</FONT>字節或<FONT 
  face="Times New Roman">1</FONT>千字節是沒有差別的,速度只取決于磁盤的尋找時間,而跟傳輸速度無關。一次讀取整個塊,就把很多相似的局面裝入存儲器,這些局面可能是你以后要用到的。一般來說,你會用“最近最少用到”<FONT 
  face="Times New Roman">(Least-Recently-Used)</FONT>的策略,來決定在裝入一個塊的時候哪個塊應該被覆蓋掉。即便你用了塊,由于磁盤比起存儲器來說實在太慢,你無法對所有局面都去查找殘局庫。通常你只會在第<FONT 
  face="Times New Roman"><EM>x</EM></FONT>層以外去讀取磁盤上的殘局庫局面,而在<FONT 
  face="Times New Roman"><EM>x</EM></FONT>層以內你只會在存儲器中查找這些局面。 
  <DT>  
  <DT>  原文:<A href="http://www.fierz.ch/strategy3.htm" target=_blank><FONT 
  face="Times New Roman">http://www.fierz.ch/strategy3.htm</FONT></A> 
  <DT>  譯者:黃晨 <FONT face="Times New Roman">(</FONT><A 
  href="mailto:webmaster@elephantbase.net"><FONT 
  face="Times New Roman">webmaster@elephantbase.net</FONT></A><FONT 
  face="Times New Roman">)</FONT> 
  <DT>  類型:全譯加譯注 </DT></DL>
<DIR>
<LI>上一篇 <A 
href="http://www.elephantbase.net/computer/other_ponder.htm">其他策略——后臺思考</A> 
<LI>下一篇 <A 
href="http://www.elephantbase.net/computer/other_book.htm">其他策略——開局庫</A> 
<LI>返 回 <A href="http://www.elephantbase.net/computer.htm">象棋百科全書——電腦象棋</A> 
</LI></DIR>
<DIV align=center>
<CENTER>
<TABLE border=0>
  <TBODY>
  <TR>
    <TD>
      <P align=center><A href="http://www.elephantbase.net/" target=_blank><IMG 
      height=31 src="其他策略——殘局庫_files/elephantbase.gif" width=88 
    border=0></A></P></TD></TR>
  <TR>
    <TD><A href="http://www.elephantbase.net/" target=_blank><FONT face=Arial 
      size=2><STRONG>www.elephantbase.net</STRONG></FONT></A></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产 日韩 欧美大片| 精品久久久久香蕉网| 日韩片之四级片| 国产一区二区美女诱惑| 91免费视频网| 欧美激情一区二区在线| 日韩av中文在线观看| 91久久精品一区二区| 欧美激情一区二区三区不卡| 国精产品一区一区三区mba视频 | 国产日韩亚洲欧美综合| av不卡在线播放| 国内精品在线播放| 丝袜脚交一区二区| 亚洲制服丝袜在线| 亚洲欧洲色图综合| 国产日韩在线不卡| 精品久久久久久无| 欧美日韩视频在线观看一区二区三区 | 波多野结衣亚洲一区| 青青草精品视频| 亚洲国产日韩av| 日韩伦理av电影| 国产精品污www在线观看| 欧美mv日韩mv| 9191精品国产综合久久久久久| 97久久精品人人爽人人爽蜜臀| 精品一区二区三区不卡 | 精品一区免费av| 天堂影院一区二区| 亚洲成人综合在线| 亚洲视频1区2区| 中文字幕一区二区三区不卡在线| 精品国产制服丝袜高跟| 欧美本精品男人aⅴ天堂| 欧美一区二区精品| 欧美日韩一区二区三区不卡| 91国偷自产一区二区三区成为亚洲经典| 国产传媒久久文化传媒| 国产mv日韩mv欧美| 高清shemale亚洲人妖| 国产主播一区二区三区| 狠狠久久亚洲欧美| 国产一区美女在线| 国产精品亚洲专一区二区三区| 日韩免费性生活视频播放| 91视频一区二区三区| 国产精品99久久不卡二区| 一区二区三区日韩欧美| 久久精品夜夜夜夜久久| 欧美日本在线观看| 97se狠狠狠综合亚洲狠狠| 精品一区二区在线播放| 亚洲成年人网站在线观看| 亚洲一区二区四区蜜桃| 91精品国产综合久久精品图片| 91免费看`日韩一区二区| 99精品久久只有精品| 91美女蜜桃在线| 欧美亚日韩国产aⅴ精品中极品| 在线免费不卡电影| 91精品国产综合久久精品图片 | 色94色欧美sute亚洲线路一久| 97国产一区二区| 91精品福利视频| 欧美精品乱人伦久久久久久| 91精品国模一区二区三区| 日韩免费视频一区二区| 国产欧美一区二区三区沐欲| 亚洲三级在线看| 午夜精品久久久久久久| 激情综合色播激情啊| www.欧美日韩| 欧美亚洲日本国产| 日韩女优av电影| 国产精品久久久久久久午夜片| 亚洲黄色在线视频| 视频在线在亚洲| 国产精品一二三区在线| 日本精品视频一区二区| 欧美一区二区三区的| 中文字幕第一区二区| 亚洲成人av中文| 国产99久久久国产精品潘金 | 99久久精品情趣| 911国产精品| 国产免费成人在线视频| 亚洲成av人片www| 国产精品性做久久久久久| 91福利小视频| 久久久精品蜜桃| 欧美精品v国产精品v日韩精品| 欧美一卡二卡三卡| 亚洲国产综合人成综合网站| 韩国v欧美v日本v亚洲v| 91久久精品一区二区二区| 精品久久人人做人人爽| 亚洲蜜臀av乱码久久精品蜜桃| 五月天视频一区| 99久久精品99国产精品| 久久亚洲综合色一区二区三区| 亚洲欧美在线高清| 国产美女一区二区三区| 亚洲精品国产视频| 国产精品一区二区在线播放| 欧美日韩一本到| 国产精品久久毛片a| 美脚の诱脚舐め脚责91| 日本精品视频一区二区| 欧美国产97人人爽人人喊| 青娱乐精品视频在线| 91视频xxxx| 国产女人aaa级久久久级| 奇米色一区二区三区四区| 91视频你懂的| 欧美极品少妇xxxxⅹ高跟鞋| 奇米亚洲午夜久久精品| 欧美午夜一区二区三区| 日韩美女视频一区| 国产高清成人在线| 欧美电影免费观看完整版| 天天av天天翘天天综合网色鬼国产 | 欧美午夜在线一二页| 亚洲色图一区二区三区| 国产成人综合在线| 精品精品国产高清一毛片一天堂| 日日噜噜夜夜狠狠视频欧美人| 色婷婷综合久久久久中文一区二区| 国产精品色噜噜| 国产黄色成人av| 久久综合色婷婷| 久草中文综合在线| 精品日韩一区二区三区 | 韩国女主播一区| 精品少妇一区二区三区在线播放 | 亚洲综合色丁香婷婷六月图片| eeuss鲁一区二区三区| 国产精品久久久久四虎| 成人一级视频在线观看| 成人国产一区二区三区精品| 中文字幕在线不卡国产视频| 欧美国产激情二区三区| 欧美日韩一区二区三区免费看| 免费高清成人在线| 国产精品传媒在线| 日韩一级黄色片| 99精品在线免费| 国产精品77777| 日韩精品午夜视频| 亚洲欧美日韩人成在线播放| 欧美高清dvd| 日韩欧美中文一区| 国产精品视频麻豆| 日本高清无吗v一区| 亚洲综合在线第一页| 欧美日韩精品是欧美日韩精品| 日精品一区二区三区| 欧美电影免费观看高清完整版在线 | 日韩美女精品在线| 欧美又粗又大又爽| 日韩精品一级中文字幕精品视频免费观看 | 久久亚洲综合色一区二区三区| 国内精品第一页| 国产精品欧美久久久久无广告| 97久久精品人人做人人爽| 一区二区三区在线免费| 欧美三级一区二区| 久久aⅴ国产欧美74aaa| 2022国产精品视频| 成人av在线看| 亚洲欧美一区二区三区极速播放| 欧美日韩电影在线播放| 九九精品一区二区| 国产精品传媒入口麻豆| 欧美无人高清视频在线观看| 日韩和的一区二区| 久久精品视频在线免费观看 | 国产91在线看| 亚洲黄色在线视频| 日韩女优电影在线观看| av动漫一区二区| 石原莉奈一区二区三区在线观看| 久久久久久久久岛国免费| 一本久道久久综合中文字幕| 久久黄色级2电影| 亚洲美女淫视频| 亚洲精品在线一区二区| 在线免费一区三区| 国产精品一二一区| 亚洲精品视频观看| 亚洲欧美偷拍三级| 国产高清精品在线| 国产农村妇女精品| 综合久久综合久久| 青青草97国产精品免费观看| 国产又粗又猛又爽又黄91精品| 成人精品免费网站| 欧美日韩久久一区| 国产精品久久久久9999吃药| 亚洲综合免费观看高清完整版在线|