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
    """
    


  • 相关阅读:
    在网页中插入MSN,Skype,QQ的方法
    magento jQuery冲突N种方法
    Magento文件系统目录结构
    CentOS Linux系统下更改Apache默认网站目录
    LINUX下如何开启FTP服务器
    php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别
    PHP中常用的函数
    LNMP服务器虚拟主机管理lnmp
    前端开发语言
    ESXI删掉无效主机
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501231.html
Copyright © 2011-2022 走看看