擅长:python、mysql、java
<p>我认为有些概念上的问题比你的实现问题更重要。在</p>
<p>将“未知值”视为1可以使它们不是真正未知的。为了类比浮点数,这里有一个定义良好的<a href="http://www.python.org/dev/peps/pep-0754/" rel="nofollow">"Not a Number"</a>,它将参与数学运算,但在大多数情况下会产生NaN。例如:</p>
<pre><code>>>> f = float('NaN')
>>> 42 * f
nan
</code></pre>
<p>因为用这个算数生成的结果不应该是好的。如果按照您的建议实现“未知整数”,未知值将产生无意义的结果。例如:</p>
^{pr2}$
<p>你得到了一个正确的整数,但这真的是你想要的语义吗?另一个类似的情况是被零除,这在数学上是未定义的。任何一个值,只要能凑成适当的位置,就会产生数学上的荒谬。由于<code>(x/y) * y == x</code>(当且仅当<code>y != 0</code>)时,您可能会期望:</p>
<pre><code>>>> (42 / 0) * 0 # this doesn't really work
42
</code></pre>
<p>但你不能不打破数学。在</p>