Re: [問題] 排列組合,相同物品分發制不同容器
※ 引述《lovesnake (【忠犬攻一枚】)》之銘言:
: → yauhh:那你422之後怎麼還會出現422? 61.231.67.34 04/14 11:48
: → yauhh:我覺得422之後應該是431然後就到512了 61.231.67.34 04/14 11:49
:
: 喔~ 可能是有誤解....我以為你是先做出八個相同的分三個相同的堆
: 然後再去排列
: 您說的是直接將後面的元素列為一個集合,隨時修改他的極限值嗎?
: 像是 10個分4堆
:
: {1 [1 (1 7)]} 這樣嗎?
: 最後一個Set總和八
: 第二個總和九
: 第一個總和十
: 然後最後一個SET組合都跑完了以後第二個SET+1 最後一個SET總和-1
: 繼續跑?
:
: ※ 編輯: lovesnake 來自: 140.121.216.68 (04/14 11:54)
: → yauhh:喔我搞錯了. P(6,3). 61.231.67.34 04/14 11:51
我初想一下以為我搞錯,但自己寫個程式算一下,結果可見我並沒有搞錯.
: 那種想法我有想過,可是程式該怎麼實作呢?
: 當初想到這個想法我以為有解了...結果程式寫不出來XD
: 懇請賜教
: ※ 編輯: lovesnake 來自: 140.121.216.68 (04/14 11:55)
這個小小的Erlang程式,內容說求一列資料L中取N個項目的結果:
-module(test).
-compile(export_all).
perms([], _) -> [[]];
perms(_, 0) -> [[]];
perms(L, N) -> [[H|T] || H <- L, T <- perms(L, N-1) ].
執行時,算式如下:
#> io:format("~w", [[L || L<-test:perms(lists:seq(1,6), 3), lists:sum(L) ==
8]]).
[[1,1,6],[1,2,5],[1,3,4],[1,4,3],[1,5,2],[1,6,1],[2,1,5],[2,2,4],[2,3,3],
[2,4,2],[2,5,1],[3,1,4],[3,2,3],[3,3,2],[3,4,1],[4,1,3],[4,2,2],[4,3,1],
[5,1,2],[5,2,1],[6,1,1]]ok
我生不出重複的 4,2,2, 所以猜想,會重複產生的東西,應該是看你程式怎麼寫.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.67.34
※ 編輯: yauhh 來自: 61.231.67.34 (04/14 12:11)
推
04/14 12:23, , 1F
04/14 12:23, 1F
→
04/14 12:23, , 2F
04/14 12:23, 2F
→
04/14 12:23, , 3F
04/14 12:23, 3F
→
04/14 12:24, , 4F
04/14 12:24, 4F
→
04/14 12:25, , 5F
04/14 12:25, 5F
→
04/14 12:26, , 6F
04/14 12:26, 6F
perms([], _) -> [[]];
perms(_, 0) -> [[]];
perms(L, N) -> [[H|T] || H <- L, T <- perms(L, N-1) ].
意思是:
function perms( List, Number, Set )
if List = {} then Set := {{}}, return
if Number = 0 then Set := {{}}, return
for i := 1 to length(List)
Set1 := {}
perms( List, (Number - 1), Set1 )
for j := 1 to length(Set1)
Set := union(Set, concat(List[i], Set1[j]))
return
[L || L<-test:perms(lists:seq(1,6), 3), lists:sum(L) == 8]
意思是:
function take_the_set()
Set := {}
Set1 := {}
perms( {1,2,3,4,5,6}, 3, Set1 )
for i := 1 to length(Set1)
if sum(Set1[i]) = 8 then Set := union(Set, Set1[i])
return Set
※ 編輯: yauhh 來自: 61.231.67.34 (04/14 12:43)
推
04/14 12:43, , 7F
04/14 12:43, 7F
討論串 (同標題文章)