擅长:python、mysql、java
<p>只是为了好玩,这里有一个蛮力的方法,它可以可怕地扩展到O(y^4)</p>
<pre><code>def bruteforce(x, y, z, acc="", accv=None):
if accv == z and len(acc) == y*2:
return acc
if accv is None:
accv = x
if len(acc) == y*2:
return
m2 = bruteforce(x, y, z, acc+'*2', accv*2)
m3 = bruteforce(x, y, z, acc+'*3', accv*3)
d2 = bruteforce(x, y, z, acc+'/2', accv/2)
d3 = bruteforce(x, y, z, acc+'/3', accv/3)
return m2 or m3 or d2 or d3
</code></pre>
<p>行动中:</p>
<pre><code>In [49]: exp = bruteforce(9, 8, 4)
In [50]: exp
Out[50]: '*2*2*2*2/2/2/3/3'
In [51]: eval('9'+exp)
Out[51]: 4.0
In [52]: exp = bruteforce(13, 8, 4)
In [53]: exp
In [54]: exp = bruteforce(9, 7, 2)
In [55]: exp
Out[55]: '*2*2*2/2/2/3/3'
In [56]: eval('9'+exp)
Out[56]: 2.0
</code></pre>
<p>会因为浮点不准确而出错。。。你知道吗</p>