VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • python练习题6.8输出全排列(选作)

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

 

读书和健身总有一个在路上
作者:我要去西藏
出处:http://www.cnblogs.com/Renqy/


相关教程