線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2275
推到 Plurk!
推到 Facebook!

請問排列組合之問題:如何做出正負號交叉之排列

尚未結案
asky
一般會員


發表:1
回覆:0
積分:0
註冊:2004-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-24 23:25:08 IP:220.134.xxx.xxx 訂閱
另外我想若是要進一步表達出正負號交叉排列呢? 我簡單列舉為下:
例如: A=[-1, 3, 5, 7, -14, -8], 我如何可以做出一正一負互相交叉的情形.
也就是說,可獲得A=[5, -14, 3, -1, 7, -8]或[3, -1, 7, -8, 5, -14]或[7, -8, 3, -1, 5, -14]等等各種正負交叉的排列組合.(不是用排列組合的P4取2; 抱歉數學符號上下標無法標明,where, 4指上標,2指下標.)而是要求正負號交叉的情況.

我這假日會在help與網路上或matlab書上尋找,若有找到,也一併跟各位大大分享.

Hint: (此處可忽略部看) 由於我要做pattern recognition的泛化性能(generalization performance),我們採用K-fold cross validation法做驗證時,要先去做相關的交叉排序,所以用上敘之簡單範例來請教各位.這樣做的優勢是可以讓每各fold內的正負號樣本數相同(例如3筆正的樣本數與3筆負的樣本數).
編輯記錄
taishyang 重新編輯於 2007-08-28 09:54:40, 註解 將文章分類成[問題]‧
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-27 20:04:58 IP:61.219.xxx.xxx 未訂閱
如果說要算數量的話用排列組合
若是要窮舉每種排列法
像是一組數列會不會有重複數字等等(例子好像沒有重複數字在一組數列內)
會有影響,
還是說想要寫個通吃的方法?

可以先說看看就數學上窮舉的邏輯方式嗎?
因為我覺得這是比較偏向數學上的問題
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-15 12:42:36 IP:203.70.xxx.xxx 未訂閱
這應該有n!種可能吧,如果elements不重複.....
你找找STL中的next_permutation及prev_permutation...應該能達到你的要求...

還有...你是要用matlab?


===================引 用 asky 文 章===================
另外我想若是要進一步表達出正負號交叉排列呢? 我簡單列舉為下:
例如: A=[-1, 3, 5, 7, -14, -8], 我如何可以做出一正一負互相交叉的情形.
也就是說,可獲得A=[5, -14, 3, -1, 7, -8]或[3, -1, 7, -8, 5, -14]或[7, -8, 3, -1, 5, -14]等等各種正負交叉的排列組合.(不是用排列組合的P4取2; 抱歉數學符號上下標無法標明,where, 4指上標,2指下標.)而是要求正負號交叉的情況.

我這假日會在help與網路上或matlab書上尋找,若有找到,也一併跟各位大大分享.

Hint: (此處可忽略部看) 由於我要做pattern recognition的泛化性能(generalization performance),我們採用K-fold cross validation法做驗證時,要先去做相關的交叉排序,所以用上敘之簡單範例來請教各位.這樣做的優勢是可以讓每各fold內的正負號樣本數相同(例如3筆正的樣本數與3筆負的樣本數).
gyfatty
一般會員


發表:6
回覆:13
積分:8
註冊:2006-10-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-21 20:35:43 IP:140.124.xxx.xxx 訂閱
您好:
我看到您的問題,
我使用BCB解了一下,
是否只有36種排列順序,

小弟的code 如下:



[code cpp]
int a[3]={ 3, 5, 7};
int b[3]={-1,-14,-8};


for(int c=0;c<3;c )
for(int d=0;d<3;d )
for(int e=0;e<3;e )
for(int c1=0;c1<3;c1 )
for(int d1=0;d1<3;d1 )
for(int e1=0;e1<3;e1 )

if(c!=d&&d!=e&&e!=c && c1!=d1&&d1!=e1&&e1!=c1)
{ AnsiString ans[6];
ans[0]=a[c];
ans[2]=a[d];
ans[4]=a[e];

ans[1]=b[c1];
ans[3]=b[d1];
ans[5]=b[e1];

Memo1->Lines->Append(ans[0] ans[1] ans[2] ans[3] ans[4] ans[5]);
}

[/code]

是否有錯誤
請大家糾正!
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-23 03:28:59 IP:218.171.xxx.xxx 未訂閱
題目沒看清楚..原來是一正一負排列...

根據範例那應該有兩大類....第一個是正、第一個是負
(3!x3!)x2 = 72

我想答案應該是這樣
系統時間:2024-06-02 8:00:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!