回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>好的,我已经浏览了一下,我正在寻找这个问题的C或python解决方案。我更喜欢python…尽管它是我较弱的语言(有两种非常弱的语言)。在</p>
<p>一组数字,如0 0 1 7 0 0 3 0 0 4</p>
<ol>
<li>找到集合的所有排列。在</li>
<li>数字>;0必须按顺序排列(不是位置!)在</li>
<li>数字之间必须有一个0,但是在集合的开始和结尾不需要0。只要数字之间至少有一个0>;0。在</li>
</ol>
<p>所以,首先,我想找到所有可能的排列,然后去掉谷壳(检查如果n>;0!n+1>;0),然后第一个数字>;0==1,第二个数字0==7等</p>
<p>然后我停了下来,觉得这太蠢了,如果有12个数字,那就是12个!排列。按照5亿个排列顺序排列,我必须再进行一次,以除去谷壳。在</p>
<p>假设我有40-50组这些数字集要经历,那是一个公平的时间。在</p>
<p>有没有更符合逻辑的方法?
我想让python以某种方式进行排列(如果n>;0,n+1必须==0)和(n=第一个数字,n2=第二个等等)</p>
<p>小集合的一个例子是(不是所有的排列,但给出了一个想法):</p>
<p><strong>1,2,3,0,0,0,0,0</strong></p>
<ol>
<li>1,0,2,0,3,0,0,0</li>
<li>0,1,0,2,0,3,0,0</li>
<li>0,0,1,0,2,0,3,0</li>
<li>0,0,1,0,0,2,0,3</li>
<li>0,1,0,0,2,0,3,0</li>
</ol>
<p>等等。
所以1,2,3是正确的,但是“0”只是左右移动?在</p>
<p>谢谢!在</p>