首页 > 其他 > 详细

practice01

时间:2019-04-27 16:17:23      阅读:122      评论:0      收藏:0      [点我收藏+]

1. 组合数公式: C(n, k) =C(n-1, k) +C(n-1, k-1) 要求利用该公式写递归函数求组合数。

技术分享图片
#include <stdio.h>

int C(int a,int b)
{
    if(a==b||b==0)
        return 1;
    else
        return C(a-1,b)+C(a-1,b-1);
}
int main()
{
    int n,k;
    int s;
    while(scanf("%d%d",&n,&k)!=EOF)
    {
       s=C(n,k);
       printf("%d\n",s);
    }
    return 0;
}
--------------------- 
原文:https://blog.csdn.net/rating_/article/details/84034728 
View Code
技术分享图片
# -*- coding:utf-8 -*-
# 用python实现排列组合C(n,m) = n!/m!*(n-m)!
def get_value(n):
    if n==1:
        return n
    else:
        return n * get_value(n-1)

def gen_last_value(n,m):
     first = get_value(n)
     print("n:%s     value:%s"%(n, first))
     second = get_value(m)
     print("n:%s     value:%s"%(m, second))
     third = get_value((n-m))
     print("n:%s     value:%s"%((n-m), third))
     return first/(second * third)


if __name__ == "__main__":
    # C(12,5)
    rest = gen_last_value(5,3)
    print("value:", rest)
# 本方法的流程:(5,3),first=5*4*3*2*1;second=3*2*1;third=first/second
View Code
技术分享图片
# -*- coding:utf-8 -*-
# 用python实现排列组合C(n,m) = n!/m!*(n-m)!
def get_value(n):
    if n==b:
        return n
    else:
        return n * get_value(n-1)
def get_value_m(m):
    if m==1:
        return m
    else:
        return m * get_value_m(m-1)

def gen_last_value(n,m):
     first = get_value(n)
     print("n:%s     value:%s"%(n, first))
     second = get_value_m(m)
     print("n:%s     value:%s"%(m, second))
     return first/second

if __name__ == "__main__":
    n = int(input(num n:))
    m = int(input(num m:))
    b = n-m+1
    rest = gen_last_value(n,m)
    print("value:", rest)
#举例:C(5,3);get_value(n)输出:5*4*3】【get_value_m输出:3*2*1】【gen_last_value=first/second
升级版

 

practice01

原文:https://www.cnblogs.com/chengxiaofeng/p/10778846.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!