![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
есть строка например: abcd
надо сделать замены каждой буквы например на цифры (это не столь важно на что) т.е. нужно сделать вот такие замены: a b c d -------- 1 2 3 4 1 2 1 3 1 4 2 3 2 4 3 4 1 2 3 4 --------- тут показано в столбик как менается каждая буква в итоге имеем: 11 строк (замен) т.е. в итоге имеем список: 1 b c d a 2 c d a b 3 d a b c 4 1 2 c d 1 b 3 d 1 b c 4 a 2 3 d a 2 c 4 a b 3 4 1 2 3 4 собственное вот... как это сделать? =) я не могу въехать смысл еще в том что кол-во символов в строке может быть больше или меньше 4-х как в данном примере цифры любые (это просто для примера) заранее благодарю |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Так?
![]() |
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
а такие сочетания не нужны?
1 2 3 1 2 4 1 3 4 2 3 4 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
2igorold - нужны, я просто их упустил (забыл)
![]() 2amg - а если слово будет из 10 букв? (из 100 букв)? надо универсальный пример который будет обрабатывать любое кол-во букв, хоть 1 хоть 1000 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Если нужны все перестановки такого рода (а не "наложить" вектор на заданную матрицу, как я понял в начале), то задача даже упрощается (легко заметить, что при замене цифр на 0 и букв на 1 весь набор перестановок превращается в обыкновенный ряд двоичных чисел). Правда, чтобы была возможность обрабатывать слово из 1000 букв, пришлось использовать модуль Math::BigInt (уважаю мыслящих космическими масштабами: такая задача будет считаться до смерти вселенной и все равно не закончится, хотя ее придется прервать раньше, когда на Земле закончится вся бумага, чтобы распечатывать результат).
|
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
замена на что не важна (не только цифры) возможна замена на какие-то символы, яж написал что это не столь важно
к примеру можно создать шаблон типа: a - . b - = c - || и т.д. смысл ясен? цифры я дал как простой пример в данном случае их можно отнести к: a - 1 b - 2 c - 3 шаблон изменяемый так что пример с цифрами отпадает Добавлено @ 10:15 задачка остается до сих пор не решенной ну же гуру перла, подсобите =) Это сообщение отредактировал(а) DooZ - 28.9.2007, 10:15 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Я так и не понял, чем не устраивает моё решение. Вместо цифр подставлять другие символы, из шаблона? Так это совсем просто. Заменить в коде массив цифр 0..$#a на массив символов и , $_+1 на $_ переправить, и все. Если опять не то, то нужно задачу точно сформулировать.
Это сообщение отредактировал(а) amg - 28.9.2007, 11:34 |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
да куда уж точнее формулировать-то?
помоему максимально точная формулировка была дана повторюсь, может кто чего не понял нужно заменять буквы символами из шаблона которые соответствуют буква a = например символу { буква b = например символу * ну и т.д. заменять как было написано в первой мессаге одну букву, потом вторую, третью, потом пару, тройку и т.д. что бы все возможные варианты были заменены если и щас задача не ясна, тогда я уж не знаю как объяснить |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Ну это только по твоему. Между прочим, задача твоя увлекательная, и не очень сложная. И на нее было бы масса откликов, если бы все было понятно. А так кроме меня один igorold отметился, проявив чудеса интуиции... Ладно, не будем обострять отношения...Из того, что там написано можно догадаться, как сделать первую замену, вторую тоже, а дальше?
В связи с требованием упорядочения приведенный ниже код я немного изменил, чтобы при замене в перестановках букв на 0 и символов на 1 получался последовательный ряд двоичных чисел, так что заранее легко узнать, как будет выглядеть n-ая перестановка. Также ограничил длину слова (исчезла надобность в модуле, без него быстрее работает, и все равно при максимальной длине слова много часов счета). В общем, делаю еще одну попытку
|
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
2amg - ты молоток!!! максимально четко понял задачу, и реализовал
огромный респект и уважуха (как любят щас говорить) ![]() реализована так как мне нужно =) еще раз огромное спасибо! =) |
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
сейчас моднее говорить правильным русским языком ... не надо копировать нежизнеспособные ветки развития ... DooZ, с твоего позволения ставлю amg +1 ... я тоже начал придумывать алгоритм решения, но amg уже предложил ... как математик я понял чего тебе надо ... немного не хватило времени придумать ... ... пометь тему как решенную ... -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
яб amg +10 поставил но тут низя )
помечаю как решенную всем сенькс! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |