combinatorics.cs**清單
usingsystem;
usingsystem.collections;
usingsystem.data;
//////組合數學函式集
///publicclasscombinatorics
returndt;
} ///
///連乘積函式
///publicstaticintproduct(intstart,intfinish)
//////階乘函式
///publicstaticintfactorial(intn)
//////排列數函式
///publicstaticintarrangecount(intm,intn)
//////生成排列表函式
///publicstaticint[,]arrange(intm,intn)
//////生成組合表函式
///publicstaticint[,]combination(intm,intn) }
//////組合函式
//////返回值陣列
///可供選擇的元素陣列
///目標選定元素個數
///當前返回值陣列的列座標
///當前返回值陣列的行座標
privatestaticvoidcombination(refint[,]reslut,arraylistelements,intm,intx,inty)
elements.insertrange(0,tmpelements);//一次性把上述迴圈刪除的可選元素恢復到可選元素陣列中
} ///
///返回由index指定的可選元素值,並在陣列中刪除之,再從y行開始在x列中連續寫入subcomb個值
///privatestaticintremoveandwrite(arraylistelements,intindex,refint[,]reslut,intx,inty,intcount)
//////清理所有正在使用的資源。
///protectedoverridevoiddispose(booldisposing) }
base.dispose(disposing);
} #regionwindows窗體設計器生成的**
//////設計器支援所需的方法-不要使用**編輯器修改
///此方法的內容。
///privatevoidinitializecomponent()
); this.numm.minimum=newsystem.decimal(newint);
this.numm.name="numm";
this.numm.size=newsystem.drawing.size(56,26);
this.numm.tabindex=4;
this.numm.value=newsystem.decimal(newint);
// //numn
// this.numn.backcolor=system.drawing.color.bisque;
this.numn.font=newsystem.drawing.font("宋體",12f);
this.numn.forecolor=system.drawing.color.teal;
this.numn.location=newsystem.drawing.point(80,40);
this.numn.maximum=newsystem.decimal(newint);
this.numn.minimum=newsystem.decimal(newint);
this.numn.name="numn";
this.numn.size=newsystem.drawing.size(56,26);
this.numn.tabindex=5;
this.numn.value=newsystem.decimal(newint);
// //btngo
// this.btngo.backcolor=system.drawing.color.paleturquoise;
this.btngo.location=newsystem.drawing.point(184,24);
this.btngo.name="btngo";
this.btngo.size=newsystem.drawing.size(88,32);
this.btngo.tabindex=6;
this.btngo.text="go!";
this.btngo.click+=newsystem.eventhandler(this.btngo_click);
// //statusbar1
// this.statusbar1.location=newsystem.drawing.point(0,453);
this.statusbar1.name="statusbar1";
this.statusbar1.panels.addrange(newsystem.windows.forms.statusbarpanel);
this.statusbar1.showpanels=true;
this.statusbar1.size=newsystem.drawing.size(704,32);
this.statusbar1.tabindex=7;
this.statusbar1.text="statusbar1";
// //panelerrmsg
// this.panelerrmsg.autosize=system.windows.forms.statusbarpanelautosize.contents;
this.panelerrmsg.text="idle";
this.panelerrmsg.width=39;
// //frmtest
// this.autoscalebasesize=newsystem.drawing.size(6,14);
this.clientsize=newsystem.drawing.size(704,485);
this.controls.add(this.statusbar1);
this.controls.add(this.btngo);
this.controls.add(this.numn);
this.controls.add(this.numm);
this.controls.add(this.domainfunction);
this.controls.add(this.gridshow);
this.maximizebox=false;
this.name="frmtest";
this.startposition=system.windows.forms.formstartposition.centerscreen;
this.text="frmtest";
((system.componentmodel.isupportinitialize)(this.gridshow)).endinit();
((system.componentmodel.isupportinitialize)(this.numm)).endinit();
((system.componentmodel.isupportinitialize)(this.numn)).endinit();
((system.componentmodel.isupportinitialize)(this.panelerrmsg)).endinit();
this.resumelayout(false);
} #endregion
//////應用程式的主入口點。
///[stathread]
staticvoidmain()
privatevoidbtngo_click(objectsender,system.eventargse)
else
panelerrmsg.text="inputnumberisinvalid";
} }
}
排列 組合 演算法 C
class b c list,3 console.writeline a list,0,4 對陣列進行組合操作,選取selectcount個元素進行組合 即將進行組合操作的陣列 選取的元素的個數 static void c listlsarray,int selectcount while true...
排列組合演算法
在開發的過程中很難免會到排列組合,剛開始通過for迴圈來搞定。但是對於工作了近五年的我而已,不能像 新人那樣做了。如果所要組合的集合大於40,你不可能寫40個for迴圈吧!這裡使用了數學的演算法,到底是啥演算法,高人也沒說!不過我把它的思想提公升了一下。如下 ifndef combination h...
排列組合演算法
1.排列演算法 include define max num 100 void print int n,int num void swap int a,int b int arrange int i,int n,int num i return count int combination int u...