当前位置: 移动技术网 > IT编程>脚本编程>Python > python练习题6.8输出全排列(选作)

python练习题6.8输出全排列(选作)

2020年04月26日  | 移动技术网IT编程  | 我要评论

视网膜屏是什么意思,oh必胜奉顺英国语,曾婉红

输入整数n(3<=n<=7),编写程序输出1,2,...,n整数的全排列,按字典序输出。

输入格式:

一行输入正整数n。

输出格式:

按字典序输出1到n的全排列。每种排列占一行,数字间无空格。

输入样例:

在这里给出一组输入。例如:

3


      
    

输出样例:

在这里给出相应的输出。例如:

123
132
213
231
312
321

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import random

#求阶乘
def jc(n):
    sum = 1
    for i in range(1,n+1):
        sum *= i
    return sum

n = int(input())
t = list()
t1 = set()
for i in range(1,n+1):
    t.append(str(i))

while true:
    if len(t1) >= jc(n):
        break
    #首先要知道n个数字有n!种排列,我们用这个判断数据的数量
    random.shuffle(t) #随机排序
    t1.add("".join(t))
    #这里使用set集合是避免重复的数据
s = sorted(t1)
for i in s:
    print(i)

这个题目不难。记住下面两点即可。

1、random模块中的shuffle函数,这个函数是随机排序。

2、n个数字有n!种排列。


读书和健身总有一个在路上

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网