python简单实现排列和组合的计算
高中数学选修2-3中学习了排列与组合的计算方式,这里按照课本上最基本的公式用python还原下
figure.py
def arrangment(a, b): # a代表取多少元素,b代表总共多少元素"""排列"""result = 1 # 设置中间量for i in range(a): # 经典for循环,从0到a每次使中间量乘b,b再减1result *= bb -= 1return result # 输出def combination(a, b): # 同上"""组合"""result_1 = 1result_2 = 1 # 两个循环两个中间量for i in range(a): # 计算排列result_2 *= bb -= 1for i in range(a): # 算除数result_1 *= iresult = result_2/result_1return result # 完成
直接尝试
main.py
from figure import *print(arrangment(5, 5))
print(combination(5, 5))
不出意料报错了
120是说排列没问题,那么问题就出在组合了,根据报错division by zero说明是除0了,也就是说result_1是0,是因为在循环的时候是从0到a
稍作修改
figure.py
def arrangment(a, b): # a代表取多少元素,b代表总共多少元素"""排列"""result = 1 # 设置中间量for i in range(a): # 经典for循环,从0到a每次使中间量乘b,b再减1result *= bb -= 1return result # 输出def combination(a, b): # 同上"""组合"""result_1 = 1result_2 = 1 # 两个循环两个中间量for i in range(a): # 计算排列result_2 *= bb -= 1for i in range(1, a): # 算除数result_1 *= iresult = result_2/result_1return result # 完成
main.py
from figure import *print(arrangment(5, 5))
print(combination(5, 5))
再试一次
没有报错,但是结果有问题
因为刚才把range的范围改成了1到a,所以少了一个
再改一次,把范围改为1到a+1
def arrangment(a, b): # a代表取多少元素,b代表总共多少元素"""排列"""result = 1 # 设置中间量for i in range(a): # 经典for循环,从0到a每次使中间量乘b,b再减1result *= bb -= 1return result # 输出def combination(a, b): # 同上"""组合"""result_1 = 1result_2 = 1 # 两个循环两个中间量for i in range(a): # 计算排列result_2 *= bb -= 1for i in range(1, a+1): # 算除数result_1 *= iresult = result_2/result_1return result # 完成
终于对了
python简单实现排列和组合的计算相关推荐
- 阶乘、排列、组合 公式计算
阶乘.排列.组合 公式计算 引自:http://wy19880318.blog.163.com/blog/static/3615147220090385546818/ ... 阶乘.排列.组合 公式计 ...
- Python中的排列和组合
今天写一个判断是否为循环素数的题,题干如下 题目内容: 数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数.100以内这样的数字包括13个,2,3,5, ...
- python 笛卡尔积,排列,组合
一.[问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = ['a', 'b'] list2 = ['c', 'd ...
- Python | 排列与组合
本文简要总结在 Python 中实现排列与组合的方法. Update: 2022 / 11 / 21 Python | 排列与组合 总览 方法 itertools 用法 示例 不考虑顺序 考虑顺序 n ...
- python中如何求列表中的和_python实现求解列表中元素的排列和组合
求解列表中元素的排列和组合问题这个问题之前就遇到过几次没有太留意,最近在做题的时候遇上挺多的排列组合问题的,想来有必要温习一下了,今天花点时间写一下,之前都是手工写的,后来知道可以直接使用python ...
- Python简单实现基于VSM的余弦相似度计算
在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知 ...
- python概率计算,python简单脚本之概率计算
python简单脚本之概率计算 发布时间:2018-06-10 17:16:25编辑:Run阅读(2628) 编写一个ball.py文件,代码如下#!/usr/bin/env python # cod ...
- chatgpt赋能python:Python圆柱体积计算器:简单、高效、快速解决计算难题
Python圆柱体积计算器:简单.高效.快速解决计算难题 圆柱体积是一个在日常生活.工程学.数学等领域都十分普遍的概念,可以用来计算许多实际问题中的体积,比如容器的容量.建筑材料的用量等等.在本文中, ...
- chatgpt赋能python:Python开立方函数math:让数学计算更加简单
Python开立方函数math:让数学计算更加简单 Python作为一种高级编程语言,提供了丰富的数学计算功能,其中就包括了开立方函数math.本篇文章将详细介绍math开立方函数在Python中的使 ...
- 数学基础知识-排列与组合
文章目录 前言 一.分步乘法原理 1.定义 2.举例 二.排列 1.定义 2.计算公式 3.举例分析 4.公式推导过程 三.组合 1.定义 2.计算公式 3.举例分析 4.其他一些规定和转换 总结 前 ...
最新文章
- 从一个小demo开始,体验“API经济”的大魅力
- Scala元组数据的访问
- Spring-- ApplicationContext
- java微博开发_【新手入门篇】新浪微博应用开发之Java入门篇
- 第十一届中国开源黑客松+中国程序员节重磅来袭,这里将有你不能错过的精彩。...
- Binary Tree Paths leetcode
- MATLAB gui 对表格增添(删除)数据
- 华工材料力学能用计算机吗,华南理工大学材料力学考研经验分享与资料.pdf
- Word转PDF后,排版错乱怎么办?
- 窦志成:从微软到人大,只为做有温度的AI
- 人体的神经系统图 分布,神经系统分布图解说图
- Centos 7环境MySql8.0.28源码安装
- linu离线安装java1.8
- ChatGPT 登上了时代杂志封面,意味着什么?
- 【数字视频编码基础学习】像素格式RGB/YUV
- Windows Server 2012 IPAM实战
- 迅龙中文搜索 0.7 nSearch版 C# 源代码下载
- 先學30天jQuery再說之属性操作 - .contains() 方法和 :contains 选择器(par7)
- win10如何新增ip地址
- 忘记网站登录密码不要慌,一招拯救你