返回顶部
首页 > 资讯 > 后端开发 > Python >【Python】算法之求组合
  • 372
分享到

【Python】算法之求组合

2023-06-02 00:06:23 372人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

原题:假设有a,b,c,1,2五个字符,请用任意一门语言求出这五个数的所有组合思考:1)这题字符有点多,我来变换一下,a、b、c三个字符,请用任意一门语言求这三个字符的组合(数学归纳法不是从最少识别规律开始么?)2)嗯,三个字符,肯定是三重

原题:

假设有a,b,c,1,2五个字符,请用任意一门语言求出这五个数的所有组合

思考:

1)这题字符有点多,我来变换一下,a、b、c三个字符,请用任意一门语言求这三个字符的组合(数学归纳法不是从最少识别规律开始么?)

2)嗯,三个字符,肯定是三重循环,最关键的是最内存循环记住外层循环是什么,那么自然而然写成如下:

#!/usr/bin/pythontmp_str=''a=['a','b','c']for t_level0 in  range(0,len(a)) :    for t_level1 in range(0,len(a)):        for t_level2 in range(0,len(a)):            tmp_str=a[t_level0] + a[t_level1] + a[t_level2]            print(tmp_str)

运行一下,完美(三位组合,27种),如图: 【Python】算法之求组合

3)嗯?如果是五个字符排列,或者N个字符的组合呢?我难道要要在我的代码里写5个循环,或者是N个循环吗?看来重要的是我要根据字符数来控制循环的层数,那么怎么控制呢,当然要用函数(函数中写一个循环,接受N作为循环的控制,如果N递减没到1,继续调用函数),咦?这不是递归吗?哈哈,还真是,于是代码写成了下面这样:

#!/usr/bin/Python#-*- coding=UTF-8 -*-#tmp_str=''a=['a','b','c']'''#用位置记录外层循环的值for t_level0 in  range(0,len(a)) :    for t_level1 in range(0,len(a)):        for t_level2 in range(0,len(a)):            tmp_str=a[t_level0] + a[t_level1] + a[t_level2]            print(tmp_str)'''#prev_str 记录外层循环的值def compose(c_list,level,prev_str) :    if level == 1:        for value in c_list :            tmp_str=prev_str + value            print(tmp_str)    else :        level -= 1        for value in c_list:            tmp_str=prev_str+value            compose(c_list,level,tmp_str)compose(a,len(a),'')

执行结果,嗯,这才完美:

【Python】算法之求组合

总结

写代码,从简到繁,利用归纳法思维,往往能更快找到解决方法

--结束END--

本文标题: 【Python】算法之求组合

本文链接: https://lsjlt.com/news/228217.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Python】算法之求组合
    原题:假设有a,b,c,1,2五个字符,请用任意一门语言求出这五个数的所有组合思考:1)这题字符有点多,我来变换一下,a、b、c三个字符,请用任意一门语言求这三个字符的组合(数学归纳法不是从最少识别规律开始么?)2)嗯,三个字符,肯定是三重...
    99+
    2023-06-02
  • 回溯算法之怎么求组合
    本篇内容介绍了“回溯算法之怎么求组合”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!回溯算法大家是不是已经快...
    99+
    2024-04-02
  • python 排列组合算法
    def c(n,m,out): if(m==0):    return 1 x=n while x>=m:    out.append(x)    if(c(x-1,m-1,...
    99+
    2023-01-31
    算法 排列组合 python
  • python求组合数的方法是什么
    在Python中,可以使用math模块中的comb函数来求解组合数。comb函数的语法如下: math.comb(n, k) 其中,...
    99+
    2023-10-24
    python
  • C语言算法练习之数组求素数
    目录一、问题描述二、算法实例编译环境三、算法实例实现过程3.1、包含头文件3.2、声明数组3.3、声明相关变量3.4、数组赋值3.5、 输出数组里面元素的值3.6、求素数、素数和、最...
    99+
    2024-04-02
  • day25-python之继承组合
    1.上节回顾 1 class School: 2 x=1 3 def __init__(self,name,addr,type): 4 self.Name=name 5 self...
    99+
    2023-01-31
    组合 python
  • Python之tkinter组合框Combobox用法及说明
    目录组合框 Combobox 简介建立 Combobox设置默认选项 current()获得目前选项 get()绑定 Combobox总结组合框 Combobox 简介 Combob...
    99+
    2023-05-19
    Python tkinter组合框 tkinter组合框Combobox tkinter组合框用法
  • iOS常用算法之两个有序数组合并(要求时间复杂度为0(n))
    思路: 常规思路: 先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去;   简单思路: 设置数组C, 对比A和B数组的首项元...
    99+
    2022-05-17
    ios 算法 有序 数组
  • 基于python快速实现排列组合算法
    1.python语言简单、方便,其内部可以快速实现排列组合算法,下面做简单介绍、 2.一个列表数据任意组合 2.1主要是利用自带的库 #_*_ coding:utf-8 _*_ #__author__='dragon' impor...
    99+
    2023-01-31
    算法 排列组合 快速
  • C语言算法练习之求二维数组最值问题
    目录一、问题描述二、算法实例编译环境三、算法实例实现过程3.1、包含头文件3.2、定义宏和声明数组3.3、声明相关变量3.4、输入数组(方阵)的阶3.5、输出 “输入的数...
    99+
    2024-04-02
  • java实现排列组合算法
    我这里只写了组合的算法。         假设现有 M=4 个数据 a,b,c,d。从中随机抽取n个数,n为1—4个数据进行组合。那么数学中的计算组合方式为C(4,1) + C(4,2) + C(4,3) + C(4,4)  = 4 + 6...
    99+
    2023-09-01
    排列组合 数据结构 java
  • php回溯算法计算组合总和的方法
    本文小编为大家详细介绍“php回溯算法计算组合总和的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“php回溯算法计算组合总和的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • Python算法之求n个节点不同二叉树个数
    问题 创建一个二叉树 二叉树有限多个节点的集合,这个集合可能是: 空集 由一个根节点,和两棵互不相交的,分别称作左子树和右子树的二叉树组成 创建二叉树: 创建节点 再创建节点之间的关系 Py...
    99+
    2022-06-05
    节点 算法 个数
  • Python之求数组元素的平均值
    Python 环境:Python 2.7.12 x64 IDE :     Wing IDE Professional  5.1.12-1 题目:  求数组元素的平均值 #求数组元素的平均值 a=[1,4,8,10,12] b=len(...
    99+
    2023-01-31
    平均值 数组 元素
  • IOS 算法 三数之和求解问题
    目录IOS 算法三数之和求解问题1、三数求和简单介绍2、代码IOS 算法三数之和求解问题 1、三数求和简单介绍 对于一个整数的数组, 是否存在a, b, c 使得 a + b + c...
    99+
    2022-05-30
    IOS 三数之和
  • Python算法题----1到100求和
    # 递推法def sum01(n):    result = 0    for i in range(1, n+1):        result += i    return result# 递归法def sum02(n):    if ...
    99+
    2023-01-31
    算法 Python
  • Python排序算法之堆排序算法
    目录1. 树满二叉树的特性:什么是完全二叉树?完全二叉树的专业概念:2. 二叉堆2.1 二叉堆的抽象数据结构2.2 API 实现3. 堆排序4. 后记本文从树数据结构说到二叉堆数据结...
    99+
    2023-01-07
    python堆排序算法实现 堆排序算法以及python实现 python 堆排序算法
  • php 数组计算求和
    在PHP中,数组是一种非常常用的数据结构。它可以存储任意类型的数据,并且可以用各种方式进行操作。其中,数组计算求和也是一个非常常见的操作。本文将讨论如何使用PHP计算数组中元素的和。一、使用for循环计算数组元素的和一种简单的方法是使用fo...
    99+
    2023-05-24
  • C#集合之位数组的用法
    如果需要处理的数字有许多位,就可以使用BitArray类和BitVector32结构。BitArray类位于System.Collection,BitVector32结构位于Syst...
    99+
    2024-04-02
  • 如何用php回溯算法计算组合总和
    本篇内容主要讲解“如何用php回溯算法计算组合总和”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用php回溯算法计算组合总和”吧!给定一个数组 candidates 和一个目标数 targe...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作