擅长:python、mysql、java
<p>这是一个使用<a href="http://en.wikipedia.org/wiki/Lookup_table" rel="nofollow">lookup table</a>的方法,它具有两个<em>维。它可以在最小条件下用于解决两个不同套件之间的排序问题,因为</em>它考虑范围内的两个套件。在</p>
<p>也就是说,考虑一个矩阵,其中列表示一张卡片,而行表示另一张卡片</p>
<pre class="lang-none prettyprint-override"><code> S H C D
S 0 w w l
H l 0 w w
C l l 0 w
D w l l 0
</code></pre>
<p>其中的值为w=赢,l=输,0=平局。在</p>
<p>然后可以查看特定行和列的值来确定哪张牌获胜。例如</p>
^{pr2}$
<p>通过将S、H、C、D转换为索引0、1、2、3,可以用列表/数组简单地实现这一点。它只需要一次查找(如果每个维度都有一个,则需要两个查找)来确定两个套件之间的结果。在</p>
<p>由于结果是3个不同值中的一个,因此只需要两个比较(最大值):</p>
<pre class="lang-none prettyprint-override"><code>if m(p1,p2) = w : p1 wins
if m(p1,p2) = l : p2 wins - also can be written as m(p2,p1) = w
else : tie - it must be that m(p1,p2) = m(p2,p1) = 0
</code></pre>
<p>此外,通过简单地替换w->;(+1)和l->;(-1),得到了适合于[sort]排序函数的结果。在</p>
<p>实现上述目标应该是一个实际的,而且希望不是乏味的练习。在</p>