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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? group__hash.html

?? 黑白棋終局解算程序
?? HTML
?? 第 1 頁 / 共 2 頁
字號(hào):
<p>Initialise the hashtable. <p>Allocate the hash table entries and initialise the hash masks and codes. <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>hash_table</em>&nbsp;</td><td>hash table to setup. </td></tr>    <tr><td valign=top><em>n_bits</em>&nbsp;</td><td>requested size for the hash table in number of bits. </td></tr>  </table></dl><p><div class="fragment"><pre>00618 {00619     <span class="keywordtype">int</span> i,j;00620     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> hash_mask[2], size = 1u &lt;&lt; n_bits;00621 00622     <span class="keywordflow">if</span> (hash_table-&gt;<a class="code" href="structHashTable.html#o0">hash_entry</a> != NULL) free(hash_table-&gt;<a class="code" href="structHashTable.html#o0">hash_entry</a>);00623     hash_table-&gt;<a class="code" href="structHashTable.html#o0">hash_entry</a> = malloc(size * <span class="keyword">sizeof</span> (<a class="code" href="structHashEntry.html">HashEntry</a>));00624     <span class="keywordflow">if</span> (hash_table-&gt;<a class="code" href="structHashTable.html#o0">hash_entry</a> == NULL) {00625         fprintf(stderr, <span class="stringliteral">"hash_init: cannot allocate the hash table\n"</span>);00626         exit(EXIT_FAILURE);00627     }00628     hash_mask[0] = hash_table-&gt;<a class="code" href="structHashTable.html#o1">hash_mask</a> = size - 1;00629     hash_mask[1] = 0xffffffff;00630 00631     <span class="keywordflow">for</span> (j = 0; j &lt; 2; j++) {00632         hash_code_swap_player[j] = (<a class="code" href="group__hash.html#ga0">hash_random</a>() &amp; hash_mask[j]);00633         <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="group__mac.html#ga22">BOARD_SIZE</a>; i++) {00634             hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a130">BLACK</a>][j] = (<a class="code" href="group__hash.html#ga0">hash_random</a>() &amp; hash_mask[j]);00635             hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a131">WHITE</a>][j] = (<a class="code" href="group__hash.html#ga0">hash_random</a>() &amp; hash_mask[j]);00636             hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a132">EMPTY</a>][j] = 0;00637             hash_code_flip_disc[i][j] = hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a130">BLACK</a>][j] ^00638                 hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a131">WHITE</a>][j];00639             hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a130">BLACK</a>][j] ^= hash_code_swap_player[j];00640             hash_code_set_disc[i][<a class="code" href="group__mac.html#gga58a131">WHITE</a>][j] ^= hash_code_swap_player[j];00641         }00642     }00643 }</pre></div>    </td>  </tr></table><a class="anchor" name="ga0" doxytag="solver.c::hash_random" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> unsigned long hash_random </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">void&nbsp;</td>          <td class="mdname1" valign="top" nowrap>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Pseudo-random number generator. <p>A good random generator (similar to rand48 or Java's one) to set the hash codes. <dl compact><dt><b>Returns:</b></dt><dd>a 32 bits random unsigned long integer. </dd></dl><p><div class="fragment"><pre>00591 {00592     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> x[3] = {0xe66du, 0xdeecu, 0x5u};00593     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> MASK = 0x0000ffffu;00594     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> A[3] = {0xe66du, 0xdeecu, 0x5u};00595     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> B = 0xBu;00596     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> product[3];00597 00598     product[0] = A[0] * x[0] + B;00599     product[1] = A[1] * x[0] + (product[0] &gt;&gt; 16);00600     product[2] = A[1] * x[1] + A[0] * x[2] + A[2] * x[0] + (product[1] &gt;&gt; 16);00601     product[1] = A[0] * x[1] + (product[1] &amp; MASK);00602     product[2] += (product[1] &gt;&gt; 16);00603     x[0] = (product[0] &amp; MASK);00604     x[1] = (product[1] &amp; MASK);00605     x[2] = (product[2] &amp; MASK);00606 00607     <span class="keywordflow">return</span> x[1] + (x[2] &lt;&lt; 16);00608 }</pre></div>    </td>  </tr></table><a class="anchor" name="ga4" doxytag="solver.c::hash_update" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void hash_update </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="structHashTable.html">HashTable</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>hash_table</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>const <a class="el" href="structBoard.html">Board</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>board</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>alpha</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>beta</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>score</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>move</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Update an hashtable entry. <p>Find an hash table entry according to the evaluated board hash codes. Then update the entry if it already exists otherwise create a new one. Collisions are managed in such a way that better existing entries are always preserved and the new evaluated data is always added. Lower and upper score bounds are then updated/set from the alpha, beta and score values according to the following alphabeta property (where alpha &lt; beta): -if (score &gt;= beta) score is a lower bound of the real score -if (score &lt;= alpha) score is an upper bound of the real score -if (alpha &lt; score &amp;&amp; score &lt; beta) score equals the real score So: -if (score &lt; beta) update the upper bound of the hash entry -if (score &gt; alpha) update the lower bound of the hash entry The best move is also stored. <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>hash_table</em>&nbsp;</td><td>hash table to update. </td></tr>    <tr><td valign=top><em>board</em>&nbsp;</td><td>evaluated board. </td></tr>    <tr><td valign=top><em>alpha</em>&nbsp;</td><td>alpha bound when calling the alphabeta function. </td></tr>    <tr><td valign=top><em>beta</em>&nbsp;</td><td>beta bound when calling the alphabeta function. </td></tr>    <tr><td valign=top><em>score</em>&nbsp;</td><td>best score found. </td></tr>    <tr><td valign=top><em>move</em>&nbsp;</td><td>best move found. </td></tr>  </table></dl><p><div class="fragment"><pre>00701 {00702     <a class="code" href="structHashEntry.html">HashEntry</a> *hash_entry;00703     <a class="code" href="structHash.html">Hash</a> *deepest, *newest;00704 00705     <span class="keywordflow">if</span> (!<a class="code" href="group__mac.html#ga51">HASH_TABLE_OK</a>(hash_table)) <span class="keywordflow">return</span>;00706 00707     hash_entry = hash_table-&gt;<a class="code" href="structHashTable.html#o0">hash_entry</a> + board-&gt;<a class="code" href="structBoard.html#o5">hash_code</a>[0];00708     deepest = &amp;(hash_entry-&gt;<a class="code" href="structHashEntry.html#o0">deepest</a>);00709     newest = &amp;(hash_entry-&gt;<a class="code" href="structHashEntry.html#o1">newest</a>);00710     <span class="comment">/* try to update deepest entry */</span>00711     <span class="keywordflow">if</span> (board-&gt;<a class="code" href="structBoard.html#o5">hash_code</a>[1] == deepest-&gt;<a class="code" href="structHash.html#o0">lock</a>) {00712         <span class="keywordflow">if</span> (score &lt; beta &amp;&amp; score &lt; deepest-&gt;<a class="code" href="structHash.html#o2">upper</a>) 00713             deepest-&gt;<a class="code" href="structHash.html#o2">upper</a> = (<span class="keywordtype">char</span>) score;00714         <span class="keywordflow">if</span> (score &gt; alpha &amp;&amp; score &gt; deepest-&gt;<a class="code" href="structHash.html#o1">lower</a>)00715             deepest-&gt;<a class="code" href="structHash.html#o1">lower</a> = (<span class="keywordtype">char</span>) score;00716         deepest-&gt;<a class="code" href="structHash.html#o3">move</a> = (<span class="keywordtype">char</span>) move;00717     <span class="comment">/* else try to update newest entry */</span>00718     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (board-&gt;<a class="code" href="structBoard.html#o5">hash_code</a>[1] == newest-&gt;<a class="code" href="structHash.html#o0">lock</a>) {00719         <span class="keywordflow">if</span> (score &lt; beta &amp;&amp; score &lt; newest-&gt;<a class="code" href="structHash.html#o2">upper</a>)00720             newest-&gt;<a class="code" href="structHash.html#o2">upper</a> = (<span class="keywordtype">char</span>) score;00721         <span class="keywordflow">if</span> (score &gt; alpha &amp;&amp; score &gt; newest-&gt;<a class="code" href="structHash.html#o1">lower</a>)00722             newest-&gt;<a class="code" href="structHash.html#o1">lower</a> = (<span class="keywordtype">char</span>) score;00723         newest-&gt;<a class="code" href="structHash.html#o3">move</a> = (<span class="keywordtype">char</span>) move;00724     <span class="comment">/* else try to add to deepest entry */</span>00725     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (deepest-&gt;<a class="code" href="structHash.html#o4">depth</a> &lt; board-&gt;<a class="code" href="structBoard.html#o3">n_empties</a>) {00726         <span class="keywordflow">if</span> (newest-&gt;<a class="code" href="structHash.html#o4">depth</a> &lt; deepest-&gt;<a class="code" href="structHash.html#o4">depth</a>) *newest = *deepest;00727         deepest-&gt;<a class="code" href="structHash.html#o0">lock</a> = board-&gt;<a class="code" href="structBoard.html#o5">hash_code</a>[1];00728         deepest-&gt;depth = (<span class="keywordtype">char</span>) board-&gt;<a class="code" href="structBoard.html#o3">n_empties</a>;00729         deepest-&gt;lower = -<a class="code" href="group__mac.html#ga21">INF_SCORE</a>;00730         deepest-&gt;upper = +<a class="code" href="group__mac.html#ga21">INF_SCORE</a>;00731         <span class="keywordflow">if</span> (score &lt; beta) deepest-&gt;upper = (<span class="keywordtype">char</span>) score;00732         <span class="keywordflow">if</span> (score &gt; alpha) deepest-&gt;lower = (<span class="keywordtype">char</span>) score;00733         deepest-&gt;move = (<span class="keywordtype">char</span>) move;00734     <span class="comment">/* else add to newest entry */</span>00735     } <span class="keywordflow">else</span> {00736         newest-&gt;<a class="code" href="structHash.html#o0">lock</a> = board-&gt;<a class="code" href="structBoard.html#o5">hash_code</a>[1];00737         newest-&gt;<a class="code" href="structHash.html#o4">depth</a> = (<span class="keywordtype">char</span>) board-&gt;<a class="code" href="structBoard.html#o3">n_empties</a>;00738         newest-&gt;<a class="code" href="structHash.html#o1">lower</a> = -<a class="code" href="group__mac.html#ga21">INF_SCORE</a>;00739         newest-&gt;<a class="code" href="structHash.html#o2">upper</a> = +<a class="code" href="group__mac.html#ga21">INF_SCORE</a>;00740         <span class="keywordflow">if</span> (score &lt; beta) newest-&gt;<a class="code" href="structHash.html#o2">upper</a> = (<span class="keywordtype">char</span>) score;00741         <span class="keywordflow">if</span> (score &gt; alpha) newest-&gt;<a class="code" href="structHash.html#o1">lower</a> = (<span class="keywordtype">char</span>) score;00742         newest-&gt;<a class="code" href="structHash.html#o3">move</a> = (<span class="keywordtype">char</span>) move;00743     }00744 }</pre></div>    </td>  </tr></table><hr size="1"><address style="align: right;"><small>Generated on Mon Apr 12 19:31:52 2004 for Othello Solver by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩二区三区| 日韩午夜在线播放| 精品亚洲成a人| 亚洲精品乱码久久久久久 | 99久久综合国产精品| 日韩不卡在线观看日韩不卡视频| 国产精品美日韩| 久久蜜桃一区二区| 555www色欧美视频| 91美女在线视频| 国产成人自拍高清视频在线免费播放| 日韩av在线发布| 亚洲午夜精品在线| 亚洲你懂的在线视频| 亚洲国产成人自拍| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲欧美另类久久久精品| 久久亚洲精品国产精品紫薇| 欧美美女一区二区| 91猫先生在线| 972aa.com艺术欧美| 国产一区二区毛片| 激情五月婷婷综合网| 日韩av电影免费观看高清完整版| 亚洲欧美日韩精品久久久久| 国产精品天美传媒| 国产喷白浆一区二区三区| 欧美mv日韩mv亚洲| 日韩欧美你懂的| 欧美一级免费大片| 欧美福利视频导航| 337p亚洲精品色噜噜狠狠| 欧美午夜精品一区二区三区| 在线观看成人免费视频| 在线视频欧美区| 欧美性猛交xxxxxxxx| 91视频.com| 在线视频一区二区三区| 在线精品观看国产| 欧美日韩国产经典色站一区二区三区 | 91麻豆精品一区二区三区| 成人国产精品免费| 91丨九色丨黑人外教| 色偷偷一区二区三区| 色哟哟欧美精品| 欧美性猛交xxxx乱大交退制版| 欧美无人高清视频在线观看| 欧美日本在线视频| 日韩欧美电影一区| 精品久久久久99| 久久久午夜电影| 中文字幕va一区二区三区| 国产精品久久久久精k8| 亚洲色图清纯唯美| 午夜精品久久久久| 久久不见久久见免费视频1| 国内不卡的二区三区中文字幕| 国产精品一区二区三区99| 成人一级黄色片| 91麻豆福利精品推荐| 欧美日韩精品三区| 精品国产乱码久久久久久久| 久久久精品国产免费观看同学| 国产欧美日韩中文久久| 亚洲精品视频一区二区| 婷婷成人激情在线网| 国产一区在线不卡| 91小宝寻花一区二区三区| 欧美日韩综合色| 久久久久久日产精品| 亚洲欧美国产毛片在线| 日韩av不卡在线观看| 国产精品一区在线| 91免费观看视频在线| 日韩一二三区不卡| 国产精品高潮久久久久无| 亚洲成av人片一区二区| 国产成人亚洲综合a∨婷婷图片| 一本色道久久加勒比精品 | 国产剧情一区二区三区| 91美女在线看| 精品国产乱码久久久久久久久| 国产精品国产自产拍在线| 午夜欧美2019年伦理| 福利一区福利二区| 91麻豆精品国产自产在线| 中文无字幕一区二区三区| 亚洲福利视频一区| 成人午夜精品在线| 日韩一级免费观看| 亚洲精品国产a| 国产很黄免费观看久久| 欧美日韩一级黄| 国产精品青草久久| 久久99国产精品久久99| 欧美无人高清视频在线观看| 欧美激情在线观看视频免费| 日本成人在线视频网站| 色先锋久久av资源部| 国产日产亚洲精品系列| 麻豆91小视频| 欧美日韩色综合| 亚洲男人电影天堂| 国产91精品露脸国语对白| 欧美电影免费观看高清完整版| 亚洲已满18点击进入久久| 成人av在线电影| 国产性色一区二区| 久久国内精品自在自线400部| 欧美亚洲国产一区在线观看网站| 中文字幕免费一区| 国产毛片一区二区| 日韩美女在线视频| 日韩成人午夜精品| 欧美三级日韩三级国产三级| 中文字幕一区二区三区蜜月| 国产成人免费9x9x人网站视频| 日韩免费观看2025年上映的电影| 午夜影视日本亚洲欧洲精品| 欧美亚洲综合色| 亚洲影视在线播放| 日本乱人伦aⅴ精品| 亚洲欧洲制服丝袜| 本田岬高潮一区二区三区| 国产亚洲一二三区| 国产精品自拍在线| 国产日韩欧美精品综合| 国产在线精品免费av| 精品国产乱码久久久久久图片 | 国产一区91精品张津瑜| 日韩女同互慰一区二区| 久久不见久久见中文字幕免费| 日韩一区二区三区免费观看| 免费在线观看不卡| 日韩三级在线观看| 久久精品国产亚洲a| 2023国产精品自拍| 高清不卡一二三区| 国产精品电影一区二区| 91蜜桃视频在线| 亚洲第一会所有码转帖| 欧美无砖专区一中文字| 视频一区视频二区在线观看| 欧美一区日本一区韩国一区| 麻豆91精品视频| 精品国产91亚洲一区二区三区婷婷| 国内精品久久久久影院薰衣草| 久久精品水蜜桃av综合天堂| 懂色av中文一区二区三区| 国产精品福利电影一区二区三区四区| 91丨九色丨黑人外教| 亚洲午夜精品17c| 日韩一区二区三区免费观看| 国产一区二区美女诱惑| 国产精品久久久久天堂| 欧美亚洲丝袜传媒另类| 美洲天堂一区二卡三卡四卡视频| 精品粉嫩超白一线天av| 床上的激情91.| 亚洲最新视频在线观看| 欧美乱妇一区二区三区不卡视频| 久久国产乱子精品免费女| 亚洲国产精品国自产拍av| 色先锋资源久久综合| 奇米888四色在线精品| 久久久综合精品| 日本精品一区二区三区四区的功能| 日韩影视精彩在线| 日本一区二区三区久久久久久久久不 | 狠狠色丁香婷综合久久| 欧美高清一级片在线观看| 在线观看一区不卡| 久久国产精品72免费观看| 国产精品国产三级国产a| 欧美欧美欧美欧美| 丁香五精品蜜臀久久久久99网站| 一区二区三区四区亚洲| 精品美女在线观看| 91尤物视频在线观看| 久久机这里只有精品| 亚洲欧美一区二区久久| 日韩精品一区二区三区在线| 99久久综合精品| 激情六月婷婷综合| 亚洲激情图片qvod| 久久免费视频一区| 欧美日韩国产高清一区二区三区| 国产福利91精品| 日韩国产精品大片| 1000精品久久久久久久久| 日韩欧美第一区| 欧美私模裸体表演在线观看| 国产成人精品影视| 日韩高清中文字幕一区| 亚洲人快播电影网| 国产亚洲综合性久久久影院| 欧美日韩aaaaaa| 在线视频欧美区| 91热门视频在线观看| 国产精品亚洲午夜一区二区三区|