擅长:python、mysql、java
<p>你的乘法运算</p>
<pre><code>P= np.array([[0,1,0.5],[1,0,0],[0,0,0.5]])
x_0= np.array([1,0,0])
x= np.dot(P,x_0)
</code></pre>
<p>收益率:</p>
<pre><code>np.array([0., 1., 0.])
</code></pre>
<p>因此<code>np.allclose(x, x_0)</code>将返回<code>False</code>,并且<code>else</code>分支永远不会执行,因为唯一可以更改res的位置是在循环之前和<code>else</code>分支中(只有在循环之前的函数调用求值为<code>res== True</code>时才能访问)</p>
<p>顺便说一句:尽量避免使用<code>== True/False</code>比较布尔值。而是使用<code>is True/False</code>。如果您想了解更多关于此的信息,请<a href="https://stackoverflow.com/questions/27276610/boolean-identity-true-vs-is-true/27276841#27276841">read this post</a></p>