+106
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
$items = array('palto','noski','shapki');
$colors = array('red','black','white');
$materials = array('kozha','meh','aluminij');
foreach($items as $item) {
foreach($colors as $color) {
foreach($materials as $material) {
echo $item.'-'.$color.'-'.$material;
echo '</br>';
}
}
}
Задача:
Группа 1.
Пальто, Шапки, Носки
Группа 2.
Красный, Синий, Зеленый
Группа 3.
Мех, Кожа
Необходимы комбинации следующего вида, пример:
1) Пальто - красный - мех
2) Пальто - красный - кожа
3) Пальто - синий - мех
....
N) Носки - зеленый - кожа
При том условии, что группа занимает только свое место в порядке. Т.е. пальто не может быть 2-ым или 3-им словом в комбинации.
Запостил:
Vasiliy,
15 Июля 2013
это решение не совсем Гк. Но что то из раз ряда берем топор и рубим.
Кстати данный подход характерен для фрилансеров ( быстрее, больше за еду). возможно автор будущий/ настоящий фрилансер
так и задумано?
как и shapki-red-kozha
shapki-red-kozha
что ты вообще хотел показать то?
Что должно символизировать это, кхм, число?
P.S. Ну а вообще тут решены 2 разных задачи - у вас нагенерить N вариантов (не все, без гарантии уникальности). А в коде из топика - показать все различные варианты.
Чем конкретно не нравятся 3 форича?
Нет, не буду. О вкусах не спорят (а только разводят холивары).
В общем, во всем виноват составитель задачи, который не смог ее толком сформулировать... Хотя бы написать, нужно ли в случайном порядке, нужно ли все варианты, должны ли они быть различными...
разве что пробела между foreach и ( не хватает
и как ты уже догадался (догадался ведь?), это не только эстетичный, но и самый понятный путь получить все комбинации
О регистры! Я совсем разучился в алгоритмы! Чую, что можно их перемножить намного проще, и не вижу как :(
2) На примере из условия (не из кода) в последнем варианте вывалит пустое значение.
Вывод - ваш код достоен находиться на этом сайте ;)
http://ideone.com/LS7s8F
>>aluminij
лол
FROM group1, group2, group3
Ну и это все обернуть PHP кодом :)
fixed?
А есть задачи, которые пытаются свалить на декларативщину, когда им там совсем не место :(
> $materials = array('kozha','meh','aluminij');
> Группа 3.
> Мех, Кожа
Многомерные массивы и вложенные циклы не нужны. Истинно говорю, есть только смещения, всё остальное от лукавого.
http://ideone.com/eUCJGA
Ждем код от царя, обгоняющий мой. Чтобы держать народ в напряжении пока не замерял время работы кода.
http://ideone.com/3Okmm6
http://ideone.com/2m0WHZ
Могу даже так:
Из Saya no uta?
> Песнь Саи
По словам Saya Kisaragi uta или Saya Kisaragi song гуглится:
http://www.youtube.com/watch?v=l-2vIGxYZI0
Коллега тоже лингвист?
P.S. Да простят меня модераторы за оффтопик.
P.S. Саечка няша ^_^
http://en.wikipedia.org/wiki/Blood-C
> Blood-C ... Saya Kisaragi ... Genre Action, Horror, Supernatural, Tragedy
Они любят говорящие идентификаторы и имена собственные.
> P.S.
НЯ! ^_^
совмещать. То есть чтобы идентификатор был значащим.
Хаскельговно тоже - анскилл, но выживать надо - вы запитушились на говнозыках - пытаетесь найти спасение в порномультиках.
анямэ для питухов, только питухи его смотрят.
Может и анскилл, но планирую поднять свой уровень. А ты планируешь поднимать свой?
На детских делфях/пхп? Или кукарекая на Царя?
СУть в том, что питух планирует, а Царь апает. Царь фармит скилл 24/7. А ты питух в стал и стоишь посреди вестфала(или где там таверна эта злополучная рядом со штормом) и ролиплеешь в таверне с остальными питухами. И кукарекаешь на пацанов, которые мимо идут.
"Ко-ко-ко - я царь, а ты питух. Ко-ко-ко я маргинальщик, Ко-ко-ко я нахрен понтовый - уменя ник какбэ я за хаскель, но он говно - какбэ я тралю тебя лалка - хахаха, ко-ко-ко.
Послушав кукареканье Царя скорее. Типичный не царь качает скилл 24/365.5±0.5 в год. Ему некогда расхаживать по балам. Разве что в отпуске может позволить себе расслабиться.
Царя плюсую я. Как всегда харизматично. Почему такие таланты не идут в Мариинский?
Тыж говорил про многопоточность - дак вот, итинный царь многопоточный - как китайский фармер. Поэтому ничего не мешает ему расхаживать по балам, если это полезно для его скилла, не вредит ему и интересно ему.
Апать скилл - это развивать думалку - когда ты пишешь 24/7 - ты лишь пишешь говно бездумное, как машинистка на задворках жизни. Нормальный код месяц обдумывается - неделю пишется. А пока царь думает - царь можешь и пофлудить на ларе/говнокоде.
Питух не может планировать. Подъемная сила у крыльев маловата, да и вес большой.
Кура может, я в деревне видел, как спокойно слетала с сарая. С петухом опытов я ставить бы не стал.
Яростно молотя крыльями или все-же планируя на расправленных? :)
Нечто среднее, к планированию ближе. За давностью лет, я уже точно не могу быть в этом уверен, придётся поставить натурный эксперимент. Только потребуется Пизанская башня. как минимум.
Слыхали ... Тряхнуло по дороге всех ... Живот болел три недели, персс сам по себе накачался
Ты меня подловил. Я не знаю Японский.
А так, мне больше нравится:
Это замечательно, часто удобен вкупе с Parsec: skipPrefix *> extract <* skipSuffix (a не do skipPrefix; val <- extract; skipSuffix; return val).
Но для читаемых случаев, в общем вариант bormand с явным "биндингом" лучше.
> sequence тут идеален
Тут это где? В конкретном примере или в выдуманном случае: "В decart я могу передать больше или меньше данных с ввода пользователя,"
Ого как красиво. Говорят парсек недетерминированный парсер(парсер-комбинатор)? Что медленно
Да вроде нет, если не использоваться редкие "look-ahead". Просто высокуровневый подход со своими издержками.
Есть тот же attoparsec, с тем же аппликативным интерфейсом. К тому, что в данном случае узкое место - не комбинаторный подход.
А так токенайз говно. Однопроходный уничтажающий не валидирующий парсер пидалит в хлам всё, что только может.
> skipPrefix *> extract <* skipSuffix
При использовании токенезирования skipPrefix *> extract вызовет как минимум загрузку двух строк кеша при первых обращениях к обоим. Без него как минимум одну. Профит на лицо. С другой стороны токинизированный код занимает меньше места и поэтому скорее всего то, что загружается в skipPrefix уже будет находиться в кеше, то есть в среднем все-таки число вытесняемых кешлиний может уменьшиться. А если ещё подумать, то более последовательные обращения к кешлиниями без токенизации также могут увеличивать профит от автопрефетча процессором. А ещё токинизация может увеличивать вероятность перекрытия адресов кешлиний и приводить к вытеснению часто требуемой кешлинии из-за того, что например (там сейчас все ещё также?) совпали младшие биты адресов (хотя старшие не совпали), но кешу пофиг, ведь он смотрит только по младшим.
Питушарский автоматический кеш всегда работал как говно. И гнилая ассоциативность так никуда не делась. Поэтому да, если у тебя в строке могут лежать только такие адреса - он клал и он выкинет в зависимости алгоритма любой адрес с такой же Nнностью.
Не знаю какие сейчас алгоритмы вытеснения в питухах-ителах. Поидее они должны уметь не вытеснять частоюзаемые, хотябы на примитивном уровне.
Вот тебе ещё одна вещь - в Царском процессоре должен быть только ручной кеш. Кеш - это ещё одна оператива, с которым ты работает обычными мeвами, либо меморимув на 64байта.
Только суть в том, что с такми питушарскими декодерами и ссешками на 32байта - конвейер сдуется на некоторых камнях. Но даже это лучше, чем та питушня с кешем, которая происходит сейчас.
Кеша станет в 2раза больше - память станет намного быстрее - всего лишь с выпилом питушрской ассоциативности и автоматичекого управления кешом.
Тебе во VLIW
Т.е. влив не может быть мейнстримом, а то, что не мейнстрим - интелу, да и рынку не нужно.
[color=blue]https://github.com/bos/attoparsec/blob/master/doc/whats-in-a-parser-1.md[/blue] - первый пункт мне говорит, что в изначально высокоуровненвый подход плохо вписалась эффективность (но для ряда задач - норм). В деталях не разбираюсь.
https://github.com/bos/attoparsec/blob/master/doc/attoparsec-rewired-2.md - а это, что комбинаторный подход может быть эффективным (и сразу хвататься за alex/happy не стоит).
А знаешь, сколько реквестов будет выдавать нормальные бинарные заголовки? И данные, как гзипованный хваст?
Суть в том, что люди изначально придумывают говно, а потом пишут мегобыстрые парсеры, хренансеры - хотя проще изначально выпилить текст и не юзать его нигде.
Потом пишут валидирующие парсеры, ибо "мы питушки не знаем, где мы не ту букву поставили" - это ещё -50% перфоманса, вплоть до -98%.
Я конечно понимаю, что героически решить проблему, которую сами же создали - аля: 10k rps problem. Тцп стек уже лет 100 как 10кrps умеет. Неумело этого: Питушарское хттп, хтмл и прочее говно - но у нас появились процессоры и мы написали омегабыстрые парсеры и добились своих 10krps в лучше случае, и то на статике.
А сейчас нормальный "вебсервер", не то говно, аля нгинкс, апач и прочее - именно парсер опкодов и раскидывателей данных - выдаёт тысячи тонн rps. В тысячи раз больше, чем самый илитный веб. Как так?
Заголовок к нормальном протоколе - это опкод и его стрктура. Это парсится процессором на скорости близкой к терабайту в секунду максимум - ну 100гигов дастс даже в самом слабом случае с тысячей переходов. Т.е. на порядки быстрее ущербанского гигабита.
Сравни это с ущербанским вебом. Кому нежен этот питушарних html, хмл и иные реализации этого говна? Выпили это говно - запили нормальное бинарное представление. Сразу будет буст на порядки - нет, мы питухи - мы юзаем говно, гинерим говно и рисуем говно. Мы хвалимся тем, что мы хоть что-то сделали и оно работает.
Твои мегатонны rps сможет адекватно вытянуть только прокся\балансер\хрень раздающая статику из оперативы.
Суть в том, что у меня нет никаких пхп - у меня сишкасервер поверхтцп стека. Весит балансёр вместо сразу после цтп стека в ведре - кидает кадры на нити - нити хреначат и кадют данные на другой балансёр, который уже хренчит их в тцп стек, который хренчит кадры в инет.
По ссылке вообще-то используется чужой http_parse.
> нормальный "вебсервер" ... выдаёт тысячи тонн rps. В тысячи раз больше, чем самый илитный веб. Как так?
Ну всякие node.js yarw берут 10k и больше, на 1.5 порядка загнался. А просто pong даже на haskell доходит до: http://www.yesodweb.com/blog/2011/03/preliminary-warp-cross-language-benchmarks
> нормальное бинарное представление. Сразу будет буст на порядки
Да ну, html малая толика, когда web обвешах всякой хренью через js / flash / прочее.
А пример "нормального представления"? (ну так, чтоб с валидацией, ибо "мы питушки не знаем, где мы не ту букву поставили" херня, а не аргумент :)
yaws*
Я говорю не про ссылку, а вообще.
>Ну всякие node.js yarw берут 10k и больше, на 1.5 порядка загнался. А просто pong даже на haskell доходит до: http://www.yesodweb.com/blog/2011/03/preliminary-warp-cross-language-benchmarks
Какие нодыжс - ты упорлся - это бездарное говно от питухов для питухов. Нормальных вебсерверов не существует. Есть более-мене нормальные, аля http://gwan.ch - ты не смотри там на названия эзыков, а тыкай по ссылки и читай.
>Да ну, html малая толика, когда web обвешах всякой хренью через js / flash / прочее.
>А пример "нормального представления"? (ну так, чтоб с валидацией, ибо "мы питушки не знаем, где мы не ту букву поставили" херня, а не аргумент :)
Причём тут жс, флеш и прочее - всё это говно, а хтмл тормазит именно сеть и питушит сервера.
Нормальный - я тебе описал. Ты, никакие хттп запросы руками не пишешь - я тебе описал пример с опкодами.
Вместо данных - юзай хтмл, если питух. Юзай бинарь, если не питух. Передавай код на сишке, который будет бутстрапица у тебя в броузёрке и рисовать твой сайтец на опенгл"е, общатся по нормальному сокету и никаких хтмл не нужны вообще.
И кто еще упоролся). Если "нормальных вебсерверов нет" - может виновато завышенное представление о нормальности?
> а хтмл тормазит именно сеть и питушит сервера
А нахрена, спрашивается, "оптимизировать", если на фоне остального не факт, что будет заметно.
> бинарь .. код на сишке .. бутстрапица .. сайтец на опенгл"е .. сокету
Круто, чо.. Только мало: может это, сетовой стек слить в нормальное царское состояние, а то такой оверхед вложений.
Интересно, если html такой петушиный, что здесь-то забыл? Поцчему не создаешь царский бинарный фидонет, не ведешь цивилизацию по пути прогресса?
ой, неидиоматично звучит, гипербинарный
Иди погляди на питушатские рогалики, как там запилена сеть, авось поймёшь. И то, там она запилена как питушня, но хотябы не такая явная.
А почему? Патамучто хттп протух бы в миг, а твой рогалик гинерил бы по 10гигобайт траффика в час от юзверя.
Ну наверное что-то поверх udp, хотя не суть: разговор-то был про web. Откуда желание все прибить к железу?
> умеет работать со всяким говном и недоязыкам
Может это, ну его этот линукс, ставь plan9, меньше будет идиосинкразия.
> Ах да, ты же не пилил вебсервера - чтобы мне было удобно, чтобы я не ваял говно - и писал вместо 1к строк двадцать.
Не распарсил мысли. Ты же сам вполне можешь запилить 1M rps.
> всё будет едино
Все бинарь.. даже небо.. даже аллах.
> Сетевой стек ты не выпилишь, ибо между тобой и юзверем сеть.
Да легко, чего на софте останавливаться: царская сетувуха <-> царский маршрутизатор <-> царские интернеты.
> Всё остальное я выпилил.
Юзабельно?
> говно как инструментом для апаскилла и в последствии запила не говна.
Допустим, можно примеры запиленного последнего?
> избранных мною я возьму собой и поведу
Это правильно, таким надо держаться вместе.
Какая разница какой протокол - суть в том, что там нормальный опкодный протокол. Давай я напишу тебе пример, чтобы ты понял: http://pastebin.com/fdnZGxYV - вот тебе полноценный вебсервер для нормального протокола - там ещё нужно строк 20, чтобы прочекать валидность номеров опкодов и прочую фигню, аля он не проверяет длинну куска данных, которые идут за опкод структурой - если они длинше - он должен возвращать не один, а лишнии данные, либо сразу указатель.
Добавляешь хеадлер, структуру, номер опкода - будет хреначить. Реальный сервер на 4-х нитях у тебя будет выдавать миллард rps. В зависимости от фейлов переходов. Остально у тебя уже зависит от сети и ведра.
>Может это, ну его этот линукс, ставь plan9, меньше будет идиосинкразия.
Говно от питухов для питухов.
>Не распарсил мысли. Ты же сам вполне можешь запилить 1M rps.
Суть в том, что я могу и мильярд, но ваш питушарский протокол мне этого не даёт.
>Да легко, чего на софте останавливаться: царская сетувуха <-> царский маршрутизатор <-> царские интернеты.
Да, но это уже потом.
>Юзабельно?
Для царей - да.
>Допустим, можно примеры запиленного последнего?
Ну вот я тебе за 5минут накатал аналог твоего вебсервера - умеет тоже, протокол нормальный - попытайся запилить такое же для питух Хттп.
Ирония в том, что _веб_ подразумевает именно гипертекстовую часть интернетов.
Ну отодвинет это немного проблему, а дальше? Кеп подсказывает, что перспективнее двигаться в сторону распределенных систем.
> Суть в том, что я могу и мильярд
Свежо сие преданье, а верится весьма с трудом.
> попытайся запилить такое же для питух Хттп
В смысле "такое же", если он by design текстовый? Есть готовые библиотеки, меня устраивает. Да меня и html устраивает, хотя xhtml имхо поприличнее.
btw хоть тот же netcat позволяет получить страницу, а что делать с "единым бинарем"? Не чувствуете ли вы духовную близость с незабвенным леннартом (и его бинарным логом)?
Говновеб, а не норм Царский веб - ты о5 слился, питушок.
>Ну отодвинет это немного проблему, а дальше? Кеп подсказывает, что перспективнее двигаться в сторону распределенных систем.
Какую проблему - это апнет сервера. А нормальные сайтецы написанные на сишке - выдают мильёны rps уже сейчас, но не, что пишешь ты, заедушный пхп питух.
>Свежо сие преданье, а верится весьма с трудом.
Мой тот пример выдаёт овермильярд rps в секунду на хелворде на одном ведре. коре2 1.86ггц. Но тут нет нормального выбора хеадлеров - поэтому тут нет переходов - с переходами будет медленее в пару раз в худшем случаее.
Остальное - уже зависит от ip/tcp стека твоей ОС.
>В смысле "такое же", если он by design текстовый? Есть готовые библиотеки, меня устраивает. Да меня и html устраивает, хотя xhtml имхо поприличнее.
Твоя самая лучшая библиотека медлннее на порядки моей примитивной реализации нормального протокола.
>btw хоть тот же netcat позволяет получить страницу, а что делать с "единым бинарем"? Не чувствуете ли вы духовную близость с незабвенным леннартом (и его бинарным логом)?
Замени фейковые псевдоре сокеты на реальные - будет работать. Хоть хелворд на хтмл будет тебе выдавать.
А что в нем плохого? Решили спиздеть у винды? Давно пора.
Пацан скиллся - дак вот запомни - всё, что ты знаешь говно. А пока ты читаешь про гван и тестишь его - он так работает потому, что запилен по царскому методу.
Нормальный - это истинно нормальный, а гван не провославен - раз, умеет работать со всяким говном и недоязыками - по этой причине сишное апи у него говно.
>А нахрена, спрашивается, "оптимизировать", если на фоне остального не факт, что будет заметно.
Ты питух? Ты животное? Ах да, ты же не пилил вебсервера - чтобы мне было удобно, чтобы я не ваял говно - и писал вместо 1к строк двадцать.
Выпили всё говно на серверной части - потом уже будешь пилить у юзерей - это не так фатально. На серверной чати тормазит именно хттп.
Он итак в царском апи сольётся. Суть в том, что это самое слитое из возможного. Это реально отменит веб/не веб - всё будет едино.
Ты можешь играца, смотреть кинцо - и всё без тормазов и говна. Всё будет красиво, круто и быстро.
Сетевой стек ты не выпилишь, ибо между тобой и юзверем сеть. Всё остальное я выпилил.
>Интересно, если html такой петушиный, что здесь-то забыл?
О5 кукарекушка начала нести говно и сливаться. Если жизнь такое говно - что ты сдесь забыл? Я сдесь для того, чтобы жизнь из говна сделать не говном. Ничего не запрешает мне пользоваться говно как инструментом для апаскилла и в последствии запила не говна.
Это основа - питухам не понять.
>Поцчему не создаешь царский бинарный фидонет, не ведешь цивилизацию по пути прогресса?
Создаю, только мне не интересно вести цивилизацию к прогрессу. Я показываю путь, избранных мною я возьму собой и поведу, остальные же либо пойдут сами по пути, который указал я - либо сдохнут и жить будут в питушне до конца своего жалкого бытия.
Мне не интересно кому-то что-то объяснять, учить питухов и прочее - хочешь - ты избранный, не хочешь - я даказывать тебе ничего не будут - ты питух и это твой выбор.
http://ru.wikipedia.org/wiki/WBXML
http://dev.opera.com/articles/view/opera-binary-markup-language/
Наркоман штоле?
Ты так до векторного гипертекстового говнокода додумаешься.
Всё говно в этом мире вызванно потоканием и заботой об неосиляторах - питухи они.
Можно прям снимок куска памяти, если вместо указателей юзать офсеты, и совпадают byte-order и битность.
Да, оффсетным, распарсеным представлением как вариант.
Она бутстрапица при первом заходе - и живёт у тебя во кладке. А броузер - это шедулер/планировщик. Т.е. микроОС. Браузер будет жрать 0 метров оперативы, а написанные по Царский сайты - по 1метру максимум.
Сайтецы будут ваять только избранные, говнори умрут за ненадобностью - останутся только те, кто достойны. Никаких тысяч говносайтов.
Авось запилит кто-то анол юкоза для анскилледов - пусть там свои сайтецы и пилят.
Тру! Я уже джва года жду Только вот вероятность того, что ты будешь прозябать в своём инторнете в гордом одиночестве, близка к единице.
А, да, бинарные исполнимые сайты - вообще шикарно. Сменил дизайн - перекомпилировать на всех мобилках, про сплоиты даже думать страшно.
P.s. На самом деле, идея сжатых двоичных веб-приложений не очень плоха, и дело не в скорости или размере. Основная проблема в том, что это пользователям ничего не даст. И приведёт это именно к ГВФ.
Не стоит забывать, что современные инторнеты, как они есть, продукт эволюционного развития, растянувшегося на десятки лет. В чём-то создатели инторнетов были гениальными, в чём-то недальновидными. Нельзя так просто взять и отринуть весь этот существующий базис, пусть даже он морально устарел.
Дизайн не нужен же. На сайтах должна быть только инфа, только хардкор! Да здравствует telnet!
Ну серьёзно, для чего нужен дизайн, кроме того, чтобы работающие за «Доширак» анскиллябры, гордо именующие себя дизайнерами, имели работу?
Во, вспомнились BBS'ки. Тот самый исполняемый файл на любом языке, правда все-таки на стороне сервера. И вот в то время идеи Царя могли бы найти применение...
Давай забенчим.
Не жрёт память.
>нерасширяемое
Расширяемое.
>плохо читаемое решение
Нормально читается.
>царскими словами
Это не компил тайм гинер строки.
Как минимум, размер исполняемого файла раздувается (линейно от среднего размера слова, как степенная функция от количества среднего слов и экспоненциально от количества измерений; а в царском коде всё линейно). Для варианта ниже у меня он дошёл до ~55К вместо ~27K (для прошлого моего варианта).
> Расширяемое.
Да, расширяемое (см. код ниже).
Но я имел ввиду добавление слов/измерений во время исполнения, что может кому-нибудь пригодиться.
> Нормально читается.
Не всеми. По крайней мере, решение на пхп, которому посвящён сей пост, читается гораздо лучше, даже анскильными питушками, если они знают английский. Мой вариант не читается столь легко.
Упоролся чтоли - твой код жрёт меньше, чем процесс пхп. Посчитай, сколько тебе надо захреначить таких макросов, чтобы хотябы приблизится к бинарнику php интерпритатора. Напомню - твой код еле-еле весит чуть больше 2кбайт. Бинарь пхп интерпритатора почти 9метров.
Какие там у тебя 27kb - ода портянка того когда, что в ГК весит овер 2килобайта.
Сожми строку.
>Но я имел ввиду добавление слов/измерений во время исполнения, что может кому-нибудь пригодиться.
Повторю ещё раз - в 85% случаев добавление слов не нужно.
>Не всеми. По крайней мере, решение на пхп, которому посвящён сей пост, читается гораздо лучше, даже анскильными питушками, если они знают английский. Мой вариант не читается столь легко.
Питухи меня не интересуют.
Скажем, 7 измерений по 8 слов по 5 байт дадут 5*8^7=5*2^21=10 мегабайт без учёта дефисов. А размер исходника изменится при этом раза в четыре.
> Какие там у тебя 27kb
Действительно, в первом варианте длина строки - 495. Вероятно, какая-то виндомагия. Остаётся только понять и простить. Но строка из второго варианта - 31536 символов.
> Сожми строку.
Это сам исполняемый файл сжимать? Или ещё как-то? (правда, если сжимать-разжимать в проге, то легче вернуться к массивам)
7 измерений по 6 слов по 5 байт - 9.3МБ, или 11.2МБ с "-" и "\n".
10мегобайт - ты приблизился к бинарю php -ты что анскильный такой. Ты зачем про память кукарекаешь, если несёшь тотальную херню - возьми пхп - запусти тот скрипт из 1-й строки - удивись.
>Действительно, в первом варианте длина строки - 495. Вероятно, какая-то виндомагия. Остаётся только понять и простить. Но строка из второго варианта - 31536 символов.
У тебя ещё меньше должно быть - у тебя не православный утф8, а говно маздайское по 8байт на символ.
>Это сам исполняемый файл сжимать? Или ещё как-то? (правда, если сжимать-разжимать в проге, то легче вернуться к массивам)
На нормальных ФС, а не на твоём маздайском говне - этот файл на 100500твоих измерений будет весить меньше интерпритатора пхп. Чёй-то легче? За 2минуты хреначится.
Запили свою сжималку - задампь хешмап и массив, как сделал я в 1-м случае. Всё сжимается просто, а хреначится легко - а до тех объёмов памяти, которые жрёт пхп - это метров 30бинарей - у тебя есть наиогромнейший запас. А уж про пожирание оперативы твоим пхп я и говорить не буду.
Фиг знает, MinGW выдаёт 23098Б для main.exe, созданного с помощью
> На нормальных ФС, а не на твоём маздайском говне - этот файл на 100500твоих измерений будет весить меньше интерпритатора пхп.
Семимерный вариант для 6 слов "питу1", "питу2", "питу3", ..., "пит42" в 1251 весит, как было обещано - 11.2МБ, сжался средствами NTFS до 2.1МБ, то есть всё ОК (меньше пхп), хоть и совсем не фонтан.
> Чёй-то легче?
Для сравнения, в *.7z та же питушня весит 58.9КБ.
Несколько массивов со словами - самый эффективный вариант сжатия той последовательности, которую надо выдать на выходе. И "разархивирование" её даже многомерным фором скорее всего будет быстрее, чем пляски с архиватором. И сам исполняемый файл будет даже у меня меньше.
> у тебя есть наиогромнейший запас
Опять же, на малом количестве слов/измерений.
Напомню, что он оценивается как n*l*m^l символов, где n - длина слова, l - количество измерений, m - количество слов.
У тебя задача - захреначит пару сотен, максимум тысячу слов - тебе не надо кукарекать, что типа оверхед и прочее - бири и хреначь, ибо это будет меньше, чем оверхед на пхп говно.
Когда люди гинерят и работают со стоками по 10метров - там никакого пхп, и питухов нет.
Ты не поверишь, но Цари напрягают подчиненных, чтобы те горбатились за еду.
Илита интернетов.
Явсегдабудучитатьтреддоконца.Явсегдабуду читатьтреддоконца.Явсегдабудучитатьтредд оконца.
0x111, 0x112, 0x113,
0x121, 0x122, 0x123,
0x131, 0x132, 0x133,
0x211, 0x212, 0x213,
0x221, 0x222, 0x223,
0x231, 0x232, 0x233,
0x311, 0x312, 0x313,
0x321, 0x322, 0x323,
0x331, 0x332, 0x333,
0
};
Внезапно, количество элементов в каждой категории стало 100 и код превращается в...
Вы даже идею не поняли, анскилледы:
тут и 0x100 хватит. здесь люди с первого раза понимают.
Пришлось применить двоичную систему для эмуляции троичной, поэтому цикл пробегает 64 значения (4×4×4) вместо 27 (3×3×3). А если бы была троичная система, программа бы была в ≈2,37 раза быстрее!
"конь, сука, пальто, сука, алюминий, бля!"
Остальные варианты можно было бы не генерировать, заказчик все равно был бы доволен.
P.S. Код легко расширяется на произвольную размерность. Зря я явно три измерения перемножил, когда можно было использовать array_product... Готово: