Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2012 12:10:06

Jokull
Зарегистрирован: 2012-03-29
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с задачей

Доброе время суток. Не могу сообразить, как решить элементарную задачу.
Задание: Дано n различных натуральных чисел. Напечатать все перестановки этих чисел.
Что сделал я:

# -*- coding: cp1251 -*-
import random
n=input('Введите количество чисел: ')
mas0=[]
mas1=[]
sch=0
for i in range(n):
    mas0.append(input('Введите число: '))
c=0
while c==0:
    sch=0
    random.shuffle(mas0)
    for element in mas1:
        if mas0==element:
            sch+=1
    if sch!=1:
        mas1.append(mas0)
        print mas0
    if len(mas1)==n**n:
        break
       
Как можно решить задачу по другому?

Отредактировано Jokull (Май 11, 2012 16:34:32)

Офлайн

#2 Март 29, 2012 12:30:14

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Проблема с задачей

Потому что словарь db один и тот же для всех записей, вы не создаете новый.

# -*- coding: cp1251 -*-
i=0
n=input('Введите количество детей: ')
c={}#Словарь словаря
while i<n:
    db={}#Словарь !!!!!!!!
    db['name']=raw_input('Введите Фамилию: ')                   #Заполнение первого словаря по ключам
    db['month']=raw_input('Укажите месяц рождения: ')
    db['group']=raw_input('Укажите группу: ')
    db['age']=raw_input('Укажите возраст: ')
    c[i]=db    #Запись словаря во второй словарь, у которого ключом является счётчик i
    i+=1
   
print c
почитайте о изменяемых и о неизменяемых типах



Офлайн

#3 Май 11, 2012 16:36:58

Jokull
Зарегистрирован: 2012-03-29
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с задачей

Тема была изменена.

Офлайн

#4 Май 11, 2012 16:45:19

Chern
От: Киев
Зарегистрирован: 2010-09-15
Сообщения: 71
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с задачей

Jokull
Тема была изменена.

Новую было лень создавать? :)


>>> import itertools
>>> for case in itertools.permutations([1, 2, 3]):
...     print case
... 
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)



Офлайн

#5 Май 12, 2012 22:35:30

Jokull
Зарегистрирован: 2012-03-29
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с задачей

Chern
Jokull
Тема была изменена.

Новую было лень создавать?
Зачем плодить лишнее?)
Спасибо)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version