顺序求出c(n,r)的排列组合

2016-01-29 13:30 33 1 收藏

顺序求出c(n,r)的排列组合,顺序求出c(n,r)的排列组合

【 tulaoshi.com - ASP.NET 】

 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();
   }
  }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  //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;
  }
 }
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160129/1490406.html

延伸阅读
手机QQ联系人排列顺序怎么修改 1)打开手机QQ,点击左上角进入个人中心,接着点击。   2)点击,打开,开关呈绿色就是表示已经打开了哦。  
标签: 电脑入门
Mac OS系统工具栏的图标顺序,是默认排好的,但是有一些用户并不喜欢这种排序方式,因为这样会影响他们的操作习惯。那么Mac系统怎样改变工具栏图标顺序呢?现在就让图老师小编给你介绍一个小方法吧。 在Mac OS X系统里很多程序的工具栏我们都可以快速的随意改变,例如,Finder或者预览等。改变的方法很简单,你按住键盘上的Command不动,然后...
标签: windows 操作系统
收藏夹相信是任何一个上网人士必备的法宝之一,每次在网上冲浪时,总要将一些自己感兴趣的站点收藏下来,可日后想重新快速访问某个特定站点时,却发现收藏夹中的内容密密麻麻,特定站点早已"淹没"在其中,那么有没有办法,让自己需要频繁访问的站点,突出地显示在收藏夹中,以便日后快速调用呢?其实很简单,你只要在收藏目标站点之前,进...
标签: windows系统
win8.1系统下如何调整输入法的排列顺序   1、首先进入到桌面,鼠标左键点击屏幕下方任务栏上的语言按钮,当前输入法为英文时会显示"EN";为中文时会显示简体如果是我们自己安装的输入法,要点击相应输入法的图标; 2、这时在任务栏上方会出现已经安装的输入法的列表,第一个为电脑默认输入法。鼠标左键点击语...

经验教程

898

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部