menu HCG_Sky's Blog
more_vert
chevron_right 首页 » 随笔,Python » 利用Python进行组合数计算
利用Python进行组合数计算
2020-05-30 | 随笔,Python | 8 条评论 | 5124 次阅读 | 388字

如何利用Python来实现数学组合计算?一起来看看吧~

前言

开学几个星期了emmm 作业一如既往的多。。。。。。。
在做数学的时候经常要算组合数,奈何我的计算机太水了(其实是我懒哈哈)
正好最近学Python学的差不多哈哈,所以寻思着能不能用Python实现一下(虽然我用不上哈哈)
说干就干,在学校宿舍被窝里用QPython捣鼓了好一会(我菜),最终就实现了哈哈哈
下面我们来看看吧~


组合数

 从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数

定义

 组合是数学的重要概念之一。从 n 个不同元素中每次取出 m 个不同元素,不管其顺序合成一组,称为从 n 个元素中不重复地选取 m 个元素的一个组合。所有这样的组合的种数称为组合数

计算公式

在线性写法中被写作C(n,m)
↓组合数的计算公式为↓

代码

↓代码严格遵循PEP 8,大家也不要例外哦↓
n_input_msg = "请输入组合数参数N:"
m_input_msg = "请输入组合数参数M:"
result_msg = "计算结果:"
warn_msg = "组合参数N不能为0!"

n = int(input(n_input_msg))
m = int(input(m_input_msg))
nm_differ = n - m


def zhs(n_num, m_num, nm_differ_num):

    # n的阶乘
    n_data = n_num
    while n_num >= 1:

        if n_data == n_num:
            n_num -= 1
            continue

        n_data *= n_num
        n_num -= 1

    # m的阶乘
    m_data = m_num
    while m_num >= 1:

        if m_data == m_num:
            m_num -= 1
            continue

        m_data *= m_num
        m_num -= 1

    # n - m 的阶乘
    nm_differ_data = nm_differ_num
    while nm_differ_num >= 1:

        if nm_differ_data == nm_differ_num:
            nm_differ_num -= 1
            continue

        nm_differ_data *= nm_differ_num
        nm_differ_num -= 1

    # 组合数计算公式 n! / m! * (n - m)!
    result = n_data / (m_data * nm_differ_data)

    # 结果返回
    return result


if n == m and n != 0 and m != 0:
    print("%s1" % result_msg)
elif n != 0 and m == 0:
    print("%s1" % result_msg)
elif n == 0:
    print("%s" % warn_msg)
else:
    result_data = zhs(n, m, nm_differ)
    print("%s%d" % (result_msg, result_data))

效果


废话少说

快去做作业吧哈哈
文章目录
发表评论
已有 8 条评论
textsms
account_circle
email
link


    HCG_Sky
    HCG_Sky 博主     Windows 10 /    Google Chrome
    June 4th, 2020 at 12:38 am

    今天针对组合数的性质对代码进行了一些小修改哈哈原谅她

    2broear
    2broear     Windows 10 /    Google Chrome
    June 3rd, 2020 at 03:36 pm

    ∠( ᐛ 」∠)_

    Hacther
    Hacther     Windows 10 /    Google Chrome
    May 30th, 2020 at 11:56 pm

    可以有的香蕉

    六老师打篮球没有开挂
    六老师打篮球没有开挂     Windows 10 /    Google Chrome
    May 30th, 2020 at 11:39 pm

    爱了爱了,这就是小天才吗【狗头】,学到了学到了

      Hacther
      Hacther     Windows 10 /    Google Chrome
      May 30th, 2020 at 11:57 pm

      哈哈哈哈笑尿

      HCG_Sky
      HCG_Sky 博主     Windows 10 /    Google Chrome
      May 30th, 2020 at 11:53 pm

      骚猪laughing

      HCG_Sky
      HCG_Sky 博主     Windows 10 /    Google Chrome
      May 30th, 2020 at 11:42 pm

      花里胡哨就完事了献花

    ypaaaia
    ypaaaia     iPhone /    Google Chrome
    May 30th, 2020 at 10:09 pm

    学到了哈哈哈哈哈

arrow_back 上一篇
arrow_forward 下一篇
七牛云 腾讯云 阿里云 百度统计 TrustAsia 安全签章 MySSL 安全签章