| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Помогите написать алгоритм |
| Автор: Scorpion75 25.9.2009, 22:40 | ||
| Всем привет. Есть например строка: 12-1-13-132-2-3-3-2-12-13-2-3-3-1-2 Мне надо ее разложить на строки, в которых только одиночные значения Т.е. строку 1-1-1-1-1-1-1-1-1-1-1-1-1-1-12 разложим на 2 строки 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 1-1-1-1-1-1-1-1-1-1-1-1-1-1-2 Кол-во таких одиночных строк определяется по формуле 2^n*3^m, где n, m-количество элементов с 2мя и 3мя значениями соответственно Сам пока реализовал, тупо перебирая через вложенные циклы
Но при большом количестве строк получаются жуткие тормоза Может у кого-нить есть идея получше, как это можно организовать? Заранее спасибо. |
| Автор: nerezus 25.9.2009, 23:24 |
| Я не понял, что ты хочешь, но вот по ссылке тебе ОБЯЗАТЕЛЬНО надо читать. http://ru.wikipedia.org/wiki/Рекурсия |
| Автор: NightmareZ 26.9.2009, 00:46 | ||||||
Каюсь, на похапэ писал очень давно и тупо не помню нужных мне функций, а гуглить неохото. Ибо. Потому привожу код на C#.
Например, твоя строка 12-1-13-132-2-3-3-2-12-13-2-3-3-1-2 раскладывается в:
З.Ы. Спасибо за интересую задачу. |
| Автор: youri 26.9.2009, 02:01 | ||
|
| Автор: Scorpion75 27.9.2009, 21:06 | ||||||
Спасибо за ссылку, обязательно постараюсь в этом разобраться Добавлено @ 21:20
Смысл в том, что надо получить строки с одиночными значениями Пример: есть строка 1-2-34 ее можно разложить на 2 строки 1-2-3 1-2-4, т.е. последнее значение исходной строки, состоящее из 2х цифр раскладывается на одиночные Как я писал, все раскладывается по формуле 2^n*3^m, где n, m-количество элементов с 2мя и 3мя значениями соответственно В исходной строке n=1 (элемент 34 состоит из 2х цифр), m=0 (элементов из 3х цифр нет), значит 2^1=2 и получаем 2 строки У меня строки из 15 элементов, каждый элемент может состоять из 3х значений , выходит более 14 000 000 комбинаций, вот и нужен оптимальный алгоритм раскладывания |
| Автор: Scorpion75 27.9.2009, 21:29 | ||||
По этому коду выдается ошибка Fatal error: Call to undefined function: str_split() in z:\home\test1.ru\www\qqq.php on line 8 Вызов неопределенной функции, насколько я правильно понимаю У меня версия рнр 4 Выложил на хостинг, тоже самое, там рнр 4.4.9 В чем может быть проблема? Работает только в рнр 5? |
| Автор: Scorpion75 27.9.2009, 22:14 | ||||
Вместо
Использовал
Вроде получилось. Спасибо за помощь З.Ы. если будут еще варианты, то пишите |