自学Python:求解借书的问题

作者: 小强聊成长 | 来源:发表于2021-11-21 09:09 被阅读0次

借书的问题如下:小明有6本新书,要借给他的三个朋友看,分别有ABC代替,每人每次只能借1本,则可以有多少种不同的借法?

分析一下就是数学种的排列组合问题,求6个数中取3个不同数的排列组合的总数问题。

下面直接上代码:

########################

if __name__=="__main__":

    #A、B、C三位小朋友,5本书,每人每次只能借一本

    #用a、b、c分别表示三人所选图书的编号

    i = 0    # i表示有效借阅次数

    print("A,B,C三人所选书号分别为:")

    for a in range(1, 7): #A借书的编号

        for b in range(1, 7):  #B借书的编号

            for c in range(1, 7):  #C借书的编号

                if a != b and a != c and c != b: #关键算法

                    print("A:%2d  B:%2d  C:%2d    " %(a, b, c) ,  end='')

                    i += 1

                    if i % 5 == 0:#每行放5组

                        print()  #打印换行

    print("一共有%d种有效借阅方法" %i)

########################

执行结果如下:

A,B,C三人所选书号分别为:

A: 1  B: 2  C: 3    A: 1  B: 2  C: 4    A: 1  B: 2  C: 5    A: 1  B: 2  C: 6    A: 1  B: 3  C: 2   

A: 1  B: 3  C: 4    A: 1  B: 3  C: 5    A: 1  B: 3  C: 6    A: 1  B: 4  C: 2    A: 1  B: 4  C: 3   

A: 1  B: 4  C: 5    A: 1  B: 4  C: 6    A: 1  B: 5  C: 2    A: 1  B: 5  C: 3    A: 1  B: 5  C: 4   

A: 1  B: 5  C: 6    A: 1  B: 6  C: 2    A: 1  B: 6  C: 3    A: 1  B: 6  C: 4    A: 1  B: 6  C: 5   

A: 2  B: 1  C: 3    A: 2  B: 1  C: 4    A: 2  B: 1  C: 5    A: 2  B: 1  C: 6    A: 2  B: 3  C: 1   

A: 2  B: 3  C: 4    A: 2  B: 3  C: 5    A: 2  B: 3  C: 6    A: 2  B: 4  C: 1    A: 2  B: 4  C: 3   

A: 2  B: 4  C: 5    A: 2  B: 4  C: 6    A: 2  B: 5  C: 1    A: 2  B: 5  C: 3    A: 2  B: 5  C: 4   

A: 2  B: 5  C: 6    A: 2  B: 6  C: 1    A: 2  B: 6  C: 3    A: 2  B: 6  C: 4    A: 2  B: 6  C: 5   

A: 3  B: 1  C: 2    A: 3  B: 1  C: 4    A: 3  B: 1  C: 5    A: 3  B: 1  C: 6    A: 3  B: 2  C: 1   

A: 3  B: 2  C: 4    A: 3  B: 2  C: 5    A: 3  B: 2  C: 6    A: 3  B: 4  C: 1    A: 3  B: 4  C: 2   

A: 3  B: 4  C: 5    A: 3  B: 4  C: 6    A: 3  B: 5  C: 1    A: 3  B: 5  C: 2    A: 3  B: 5  C: 4   

A: 3  B: 5  C: 6    A: 3  B: 6  C: 1    A: 3  B: 6  C: 2    A: 3  B: 6  C: 4    A: 3  B: 6  C: 5   

A: 4  B: 1  C: 2    A: 4  B: 1  C: 3    A: 4  B: 1  C: 5    A: 4  B: 1  C: 6    A: 4  B: 2  C: 1   

A: 4  B: 2  C: 3    A: 4  B: 2  C: 5    A: 4  B: 2  C: 6    A: 4  B: 3  C: 1    A: 4  B: 3  C: 2   

A: 4  B: 3  C: 5    A: 4  B: 3  C: 6    A: 4  B: 5  C: 1    A: 4  B: 5  C: 2    A: 4  B: 5  C: 3   

A: 4  B: 5  C: 6    A: 4  B: 6  C: 1    A: 4  B: 6  C: 2    A: 4  B: 6  C: 3    A: 4  B: 6  C: 5   

A: 5  B: 1  C: 2    A: 5  B: 1  C: 3    A: 5  B: 1  C: 4    A: 5  B: 1  C: 6    A: 5  B: 2  C: 1   

A: 5  B: 2  C: 3    A: 5  B: 2  C: 4    A: 5  B: 2  C: 6    A: 5  B: 3  C: 1    A: 5  B: 3  C: 2   

A: 5  B: 3  C: 4    A: 5  B: 3  C: 6    A: 5  B: 4  C: 1    A: 5  B: 4  C: 2    A: 5  B: 4  C: 3   

A: 5  B: 4  C: 6    A: 5  B: 6  C: 1    A: 5  B: 6  C: 2    A: 5  B: 6  C: 3    A: 5  B: 6  C: 4   

A: 6  B: 1  C: 2    A: 6  B: 1  C: 3    A: 6  B: 1  C: 4    A: 6  B: 1  C: 5    A: 6  B: 2  C: 1   

A: 6  B: 2  C: 3    A: 6  B: 2  C: 4    A: 6  B: 2  C: 5    A: 6  B: 3  C: 1    A: 6  B: 3  C: 2   

A: 6  B: 3  C: 4    A: 6  B: 3  C: 5    A: 6  B: 4  C: 1    A: 6  B: 4  C: 2    A: 6  B: 4  C: 3   

A: 6  B: 4  C: 5    A: 6  B: 5  C: 1    A: 6  B: 5  C: 2    A: 6  B: 5  C: 3    A: 6  B: 5  C: 4   

一共有120种有效借阅方法

________________END______________

相关文章

网友评论

    本文标题:自学Python:求解借书的问题

    本文链接:https://www.haomeiwen.com/subject/lbhltrtx.html