python实现n个数中选出m个数的方法

题目:

某页纸上有一个数列A,A包含了按照从小到大的顺序排列的多个自然数,但是因为一些原因,其中有M个连续的位置看不清了。这M个数左边最小的数是X,右边最大的数是Y,这些数之和大于等于P且小于等于Q。

#请写程序,在输入M,X,Y,P,Q后自动给出所有可能的合法排列

from itertools import combinations
####第一步,题目给的数据输入
str=input()
m=int(str.split()[0])
x=int(str.split()[1])
y=int(str.split()[2])
p=int(str.split()[3])
q=int(str.split()[4])
### 第二步 构建数组,将x到y中的所有数构建成列表
L=[]
for t in range(x+1,y):
 L.append(t)
###L就是我们想要的列表
###下面这行代码就是获取m个数的全部可能情况
result=list(combinations(L,m))
###最后对这些结果进行判断:看看它们的和是否在p q 之间,
# 若在,直接输出;不在则直接忽略
for i in result:
 k=sum(i)
 if k in range(p,q+1):
  print(i)
##这是一组测试数据:3 1 9 10 15

以上这篇python实现n个数中选出m个数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 通过可变参数计算n个数的乘积方法

    通过可变参数计算n个数的乘积: 代码如下: list = [] def the_input(count=eval(input("输入乘数的总个数:"))): for i in range(count): N=eval(input("依次输入乘数:")) list.append(N) print("一共有",count,"个要相乘的数") print("把这些乘放在列表里面:",list) the_input

  • Python可变参数用法实例分析

    本文实例讲述了Python可变参数用法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import math def calc(*numbers): sum=0 for n in numbers: sum+=n**2 return sum print(calc(1,2,3)) print(calc(1,3,5,7)) print(calc()) 运行效果图如下: 定义可变参数和定义一个list或tuple参数相比,仅

  • Python实现接受任意个数参数的函数方法

    这个功能倒也不是我多么急需的功能,只是恰好看到了,觉得或许以后会用的到.功能就是实现函数能够接受不同数目的参数. 其实,在C语言中这个功能是熟悉的,虽说实现的形式不太一样.C语言中的main函数是可以实现类似的功能的,可以通过这种方式实现一个支持命令行参数的程序. 先写一段python实现相应功能的示范代码: defFuncDemo(*par): print("number of pars: %d" %len(par)) print("type of par: %s"

  • Python可变参数函数用法实例

    本文实例讲述了Python可变参数函数用法.分享给大家供大家参考.具体如下: #!/usr/bin/python def f1(a,b): print a,b def f2(a,*b): print a,b def f3(a,**b): print a,b def f4(a,*b,**c): print a,b,c def f5(a,b=2,c=3): print a,b,c def f6(a,b=2,*c): print a,b,c f1(1,2) f1(b=2,a=1) f2(1,2,3,4

  • Python实现求笛卡尔乘积的方法

    本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供大家参考,具体如下: 在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员.假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0), (a,1), (a,2), (b,0), (b,1), (b, 2)}.有时我们需要在python求两个list的笛卡尔乘积,其实很简单,一行代码搞定. 例如

  • 详解Python函数可变参数定义及其参数传递方式

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args)  传入的参数为以元组形式存在args中,如: def func(*args): print args >>> func(1,2,3) (1, 2, 3) >>> func(*[1,2,3]) #这个方式可以直接将一个列表的所有元素当作不定参数 传入(1, 2, 3) 2.func( **kwargs) 传入的参数为以字典形式存在args中,如: d

  • python从list列表中选出一个数和其对应的坐标方法

    例1:给一个列表如下,里面每个元素对应的是x和y的值 a = [[5,2],[6,3],[8,8],[1,3]] 现在要挑出y的值为3对应的x的值,即6和1 import numpy as np a = [[5,2],[6,3],[8,8],[1,3]] #c=np.mat(a),因为只有矩阵(也可以用array)才能用a[0,0]这样的调用 #表示第一个数的用法而list没有,故在最后append需要用到 #注意:array也没有index这样的用法(只有list有,此题a已经是list),

  • python实现n个数中选出m个数的方法

    题目: 某页纸上有一个数列A,A包含了按照从小到大的顺序排列的多个自然数,但是因为一些原因,其中有M个连续的位置看不清了.这M个数左边最小的数是X,右边最大的数是Y,这些数之和大于等于P且小于等于Q. #请写程序,在输入M,X,Y,P,Q后自动给出所有可能的合法排列 from itertools import combinations ####第一步,题目给的数据输入 str=input() m=int(str.split()[0]) x=int(str.split()[1]) y=int(st

  • C语言回溯法 实现组合数 从N个数中选择M个数

    前言 在平时的算法的题目中,时常会遇到组合数相关的问题,暴力枚举.在N个数中挑选M个数出来.利用for循环也可以处理,但是可拓展性不强,于是写这个模板供以后参考. 两个函数和全局变量可以直接用. 代码: #include<iostream> #include<cstdio> #define N 10    //被选择的数目 #define M 5    //要选出来的数目 using namespace std; int vis[N+1];    //标志, int ans=0; 

  • C#求n个数中最大值和最小值的方法

    本文实例讲述了C#求n个数中最大值和最小值的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { Console.WriteLine("输入十个数: "); /

  • python实现在目录中查找指定文件的方法

    本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 复制代码 代码如下: import os from glob import glob #用到了这个模块 def search_file(pattern, search_path=os.environ['PATH'], pathsep=os.pathsep):     for path in search_path.split(os.pathsep):         for mat

  • python实现在字符串中查找子字符串的方法

    本文实例讲述了python实现在字符串中查找子字符串的方法.分享给大家供大家参考.具体如下: 这里实现python在字符串中查找子字符串,如果找到则返回子字符串的位置,如果没有找到则返回-1 S = 'xxxxSPAMxxxxSPAMxxxx' where = S.find('SPAM') # search for position print where # occurs at offset 4 希望本文所述对大家的Python程序设计有所帮助.

  • python统计一个文本中重复行数的方法

    本文实例讲述了python统计一个文本中重复行数的方法.分享给大家供大家参考.具体实现方法如下: 比如有下面一个文件 2 3 1 2 我们期望得到 2,2 3,1 1,1 解决问题的思路: 出现的文本作为key, 出现的数目作为value,然后按照value排除后输出 最好按照value从大到小输出出来,可以参照: 复制代码 代码如下: in recent Python 2.7, we have new OrderedDict type, which remembers the order in

  • python类和函数中使用静态变量的方法

    本文实例讲述了python类和函数中使用静态变量的方法.分享给大家供大家参考.具体分析如下: 在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossible]的事, 但总有解决的办法,下面通过实现一个类或函数的累加器来介绍一些较为非主流的方法 方法一.通过类的__init__和__call__方法 class foo: def __init__(self, n=0): self.n = n def __call__(self, i): self.n

  • Python删除Java源文件中全部注释的实现方法

    本文实例讲述了Python删除Java源文件中全部注释的实现方法.分享给大家供大家参考,具体如下: 同事想删除一个Java项目中的全部注释,让我帮忙想想办法. 没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容. (用之前要改改其中的路径): #!D:\Python32 # 过滤JAVA程序中的注释 # 如果字符串中有注释符号的话会有问题. import os import re import io # 改这个目录!!! top_d

  • python查看zip包中文件及大小的方法

    本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import zipfile z = zipfile.ZipFile("test.zip","r") for filename in z.namelist(): print 'File:',filename, bytes = z.read(filename) print 'has',len(bytes),'bytes' 希望

随机推荐