作者cutecpu (可爱中央处理器)
看板Prob_Solve
标题Re: [请益] 列出所有进出的排列组合
时间Wed Aug 11 00:19:13 2010
程式码:
http://codepad.org/nYI1u4KC
演算法:先将 A_in B_in C_in D_in D_out 排好後,
使用递回倒插的方式依序对 C_out -> B_out -> A_out
插入可以插的位置
输出结果:
A_in A_out B_in B_out C_in C_out D_in D_out
A_in B_in A_out B_out C_in C_out D_in D_out
A_in B_in B_out A_out C_in C_out D_in D_out
....
....
(略)
A_in B_in C_in D_in D_out A_out C_out B_out
A_in B_in C_in D_in D_out C_out A_out B_out
A_in B_in C_in D_in D_out C_out B_out A_out
共 105 种排列
※ 引述《aerolien (aerolien)》之铭言:
: A_in、A_out、B_in、B_out、C_in、C_out、D_in、D_out
: 这几种状况去作排列组合
: 限制为
: A_in 先於 B_in 先於 C_in 先於 D_in
: 要先 in 才能 out
: 而out则没限制先後
: 若单纯只用数学去算是105种情况
: 只是现在必须要探讨这105种情况必须一一列出
: 想用程式写
: 该怎麽去解 ? 只有用穷举一途吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.137.4.87