zoukankan      html  css  js  c++  java
  • Python 案例001 (有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数)

    题目内容来自网络 ,加入了个人理解的过程 ,和点评


    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    #Author : Wumi
    
    #题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
    #程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
    
    # 如果四个数字中有个零  ,难度就稍微增加了
    num =[] # list
    for i in range(1,5): # range 的高位是不包括在内的
        for j in range(1,5):
            for k in range(1,5):
                if i!=j and i != k and  j!=k :
                    print i,j,k
                    print k,j,i # reverse num
                    num.append([i,j,k])
    print "how many num we have of the permutation and combination :",len(num)   # 24
    
    # big tall up
    #将for循环和if语句综合成一句,直接打印出结果
    
    lists =[ (i*100+10*j+k) for i in range(1,5) for j in range(1,5) for k in range(1,5) if ( i!=j and i !=k and j!=k )]
    print len(lists)
    print len(lists),":",lists
    
    # use set function to remove the duplicate numbers    ,set 是没有重复数据的
    # one important tips is that the alphabet can uses join function +
    alphabetList = ['1','2','3','4']
    numberList = [ int(i+j+k) for i in alphabetList for j in alphabetList for k in alphabetList if (len(set(i+j+k)) ==3)]
    print numberList ,":",len(numberList)
    # question is why i != k and != j ? 也就是为什么没有重复位 ?? 譬如 111 or 122 等
    
    # here is the core reason ::
    lists =['1','2','3']
    for i in lists:
        for j in lists:
            print set(i+j) # add memeber into set using plus +  ---> set(['1', '2'])  ,no replicate data
            print int(i+j)
    """
    set(['1'])
    11
    set(['1', '2'])
    12
    set(['1', '3'])
    13
    set(['1', '2'])
    21
    set(['2'])
    22
    set(['3', '2'])
    23
    set(['1', '3'])
    31
    set(['3', '2'])
    32
    set(['3'])
    33
    """
    


  • 相关阅读:
    JAVA8十大新特性详解
    博客主题
    nideshop小程序商城部署
    Eclipse创建Maven多模块工程Module开发(图文教程)
    将博客搬至CSDN
    腾讯开源软件镜像站上线
    python-应用OpenCV和Python进行SIFT算法的实现
    初学node.js-nodejs中实现删除用户路由
    本博客正在实验姿态捕捉,可以尝试允许摄像头运行
    博客园如何实现看板娘Live2d?来吧少年,开启新世界的大门!——live2d 博客园 个性化定制
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501231.html
Copyright © 2011-2022 走看看