|
|
|
顺序求出c(n,r)的排列组合 |
|
|
| http://www.iyit.net 日期:2005-11-24 17:31:08 来源:易特网络技术 点击: |
using system;
namespace combinaton { /// <summary> /// summary description for class1. /// </summary> class class1 { /// <summary> /// the main entry point for the application. /// </summary> [stathread] static void main(string[] args) { // // todo: add code to start application here // console.writeline("please input n :"); long n=long.parse(console.readline()); console.writeline("please input r :"); long r=long.parse(console.readline()); combinaton(n,r); console.readline(); } static void combinaton(long n,long r) { if(n<r) { long temp; temp=n; n=r; r=temp; } long[] s=new long[n]; long count = combi(n,r); console.writeline("there are total:{0}count:",count); for(long i=0;i<r;i++) { s[i]=i+1; console.write("{0}",s[i]); } console.writeline(); for(long i=1;i<count;i++) { long m=r-1,max_value=n; while(s[m]==max_value) { m=m-1; max_value=max_value-1; } s[m]=s[m]+1; for(long j=m+1;j<r;j++) { s[j]=s[j-1]+1; } for(long k=0;k<r;k++) { console.write("{0}",s[k]); } console.writeline(); } }
//compute value of c(n,r) static long combi(long n,long r) { long sn=1,sr=1,s_r=1; for(long i=1;i<=n;i++) { sn*=i; } for(long j=1;j<=r;j++) { sr*=j; } for(long k=1;k<=n-r;k++) { s_r*=k; } sr*=s_r; return sn/sr; } } }
|
上一篇:asp.net生成静态页
下一篇:没有了
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: |
投稿作者: 易特网络技术 |
| 信息来源: 易特网络技术 |
录入时间: 2005-11-24 17:31:08 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|
|