我想計算一組大小爲X的大小爲Y的所有排列。也就是說,如果我有(1,2,3)並且想要所有大小爲2,3P2的排列,它將是(1,2 )(1,3)(2,1)(2,3)(3,1)(3,2)。如何獲得xPy的所有排列?
GSL和C++ STL都只提供我可以看到的xPx。有人能指點我一個C/C++庫,它可以做到這一點,或者說明一個快速和高效的內存算法嗎?
我正試圖解決一個非常短的密碼。我已經弄清了兩封信,並決定進行暴力攻擊。我有「ouglg ouyakl」,我正在檢查每一個排列對一個非常好的字典。我已經刪除了兩個字母,所以它的24P7或1,744,364,160個可能性並不那麼糟糕。我現在有一個Perl程序正在運行,所以這將是編程時間+運行時間總效率的一個有趣測試。 :)
(不,我不只是要回答的密碼。)
謝謝,這樣做!幸運的是,我已經將問題優化到了21P4 * 100,這是Perl可以在大約10分鐘內完成的。 – Schwern 2009-11-02 23:06:20