Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 7, 2010 17:10:29

Zzzz
От:
Зарегистрирован: 2010-12-07
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти ошибку.

Здравствуйте. Программа просит ввести любое написанное латиницей слово, затем вычислят максимально возможное кол-во других слов составленных из букв заданного слова, после чего записывает результаты на экран и в текстовый файл. Почему-то не работает со словами в которых присутствуют 2 и больше повторяющихся символа, таких как например ‘picnic’.
И да, я догадываюсь что используемый здесь алгорим - г#вно, но его просьба обсуждать в последнюю очередь.

# -*- coding: utf-8 -*-
import random
myWord = str(raw_input("Напечатайте любое слово (ENG) и нажмите 'Enter'...\n"))
myArr = list(myWord)
wdLength = len(myWord)
finArr = []
mainCount = 0
combs = 1
for num1 in range(1, wdLength + 1):
combs = combs * num1
print "Вариантов доступно: " + str(combs) + "\nВариантов найдено: "
while mainCount < combs:
counter = 1
anagram = ""
myArr = list(myWord)
while counter <= wdLength:
letter = myArr[random.randint(0, len(myArr) - 1)]
myArr.remove(letter)
anagram = anagram + letter
counter += 1
if anagram in finArr:
mainCount -= 1
else:
finArr.append(anagram)
print str(len(finArr)) + ",",
mainCount += 1
finArr.sort()
finStr = ""
for element in finArr:
if finArr.index(element) % 10 == 0:
finStr = finStr + "\n"
finStr = finStr + element + "," + " "
finStr = finStr[:-2] + "."
print finStr
myFile = open(myWord + ".txt", "w")
myFile.write("Введённое слово: " + myWord + "\nКоличество возможных комбинаций: " + str(combs) + "\n" + finStr)
myFile.close()



Офлайн

#2 Дек. 8, 2010 12:06:00

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите найти ошибку.

Вот интересно, как нам обсуждать ошибку в алгоритме, не обсуждая сам алгоритм? В этом коде разобраться, мягко говоря, проблематично, ибо непонятно, что хотел сказать автор. Зачем там вообще рандом?

Так что pdb вам в помощь.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version