欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-23 07:55:33
输入整数n(3= jc(n): break #首先要知道n个数字有n!种排列,我们用这个判断数据的数量 random.shuffle(t) #随机排序 t1.add("".join(t)) #这里使用set集合是避免重复的数据s = sorted(t1)for i in s: print(i)这个题... ......

输入整数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!种排列。


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