Мастерство программирования

-

Программирование на Python



JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#71

Это не я схитрил, это Grakovne идея. =)
А вот перебор всех слов:


ab = {u'1': u'\u0430\u0431\u0432', u'0': u'\u044d\u044e\u044f', u'3': u'\u0436\u0437\u0438', u'2': u'\u0433\u0434\u0435', u'5': u'\u043d\u043e\u043f', u'4': u'\u043a\u043b\u043c', u'7': u'\u0443\u0444\u0445', u'6': u'\u0440\u0441\u0442', u'9': u'\u0449\u044b\u044c', u'8': u'\u0446\u0447\u0448'}

def tree(num, start = u''):
if len(num) == 0:
return [start]
return [j for i in ab[num[0]] for j in tree(num[1:], start + i)]

t = tree('1234')

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#72

Кстати с этой стороны плясать нереально. Сначала для перебираем все сочетания букв. Вариантов 3**len(number), для 8-значного номера 6561 штук. Потом еще разбивать на случайные части чтоб определить сочетания слов. Например слово хххххххх можно разбить хххххх хх, ххххх ххх, хххх хххх, ..., хххх хх хх, ..., хх хх хх хх. Это вообще умножит в безумное количество вариантов.

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#73

Virtuos86,
я решил задачу про перемешивание строки (комбинаторику)! И без генераторов. Одной строкой даже вышло.


def combin(word):
return [word[index] + recur_variant for index in range(len(word)) for recur_variant in (combin(word[:index] + word[index+1:]) or [''])]

Grakovne


репутация: 263
на сайте с 2010 года
сообщений: 1684

Nokia E52

РФ, Омск

Возраст - 24

#74

Цитата: JOIN_ME
#псм
Для начала взял у Grakovne файл со словами

Нашел редкость) smile Это ж обратный словарь Русского от Зализняка, только прогнанный через sorted(). Но меня эта идея с мнемонизацией зацепила. Продолжаю копать в этом направлении - вдркг что полезное получится
P.S. если по-честному просчитывать варианты всех слов то мы получим 33 в степени количества букв в слове. Так никакой оперативы не хватит

Virtuos86


репутация: 101
на сайте с 2008 года
сообщений: 802

где-то в России

#75

JOIN_ME, это какую именно? У нас тут все задачи такие winked

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#76

Тогда еще задача:


Имеется таблица. Например 10х10. Таблица состоит из значений 0 и 1. Не обходимо определить квадрат и прямоугольник максимального размера, состоящий только из единиц.

Grakovne


репутация: 263
на сайте с 2010 года
сообщений: 1684

Nokia E52

РФ, Омск

Возраст - 24

#77

определить площадь или его координаты?

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

#78

Координаты. По ним площадь определить легко.


Напомнить пароль