+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
bormand 15.07.2013 06:39 # +5
Vasiliy 15.07.2013 09:10 # 0
это решение не совсем Гк. Но что то из раз ряда берем топор и рубим.
Кстати данный подход характерен для фрилансеров ( быстрее, больше за еду). возможно автор будущий/ настоящий фрилансер
bormand 15.07.2013 09:31 # +4
Vasiliy 15.07.2013 09:40 # −2
defecate-plusplus 15.07.2013 09:52 # +4
так и задумано?
как и shapki-red-kozha
shapki-red-kozha
что ты вообще хотел показать то?
Vasiliy 15.07.2013 09:59 # −1
Int 15.07.2013 11:01 # 0
bormand 15.07.2013 09:55 # +4
Что должно символизировать это, кхм, число?
P.S. Ну а вообще тут решены 2 разных задачи - у вас нагенерить N вариантов (не все, без гарантии уникальности). А в коде из топика - показать все различные варианты.
Vasiliy 15.07.2013 09:57 # −1
bormand 15.07.2013 10:00 # +6
Vasiliy 15.07.2013 10:05 # −1
bormand 15.07.2013 10:15 # +5
Чем конкретно не нравятся 3 форича?
Vasiliy 15.07.2013 10:17 # −1
bormand 15.07.2013 10:20 # +2
Нет, не буду. О вкусах не спорят (а только разводят холивары).
В общем, во всем виноват составитель задачи, который не смог ее толком сформулировать... Хотя бы написать, нужно ли в случайном порядке, нужно ли все варианты, должны ли они быть различными...
defecate-plusplus 15.07.2013 10:21 # +5
разве что пробела между foreach и ( не хватает
и как ты уже догадался (догадался ведь?), это не только эстетичный, но и самый понятный путь получить все комбинации
Vasiliy 15.07.2013 10:25 # −1
bormand 15.07.2013 11:24 # +2
santa_microbe 15.07.2013 13:18 # +5
eth0 15.07.2013 18:16 # 0
maximw 18.07.2013 16:28 # +3
Lowezar 15.07.2013 11:18 # 0
Lowezar 15.07.2013 11:22 # 0
Lowezar 15.07.2013 11:51 # +1
О регистры! Я совсем разучился в алгоритмы! Чую, что можно их перемножить намного проще, и не вижу как :(
kipar 15.07.2013 14:01 # +3
Lowezar 15.07.2013 14:20 # 0
kipar 15.07.2013 11:23 # 0
bormand 15.07.2013 11:29 # 0
kipar 15.07.2013 11:31 # 0
bormand 15.07.2013 11:25 # +2
2) На примере из условия (не из кода) в последнем варианте вывалит пустое значение.
Вывод - ваш код достоен находиться на этом сайте ;)
Lowezar 15.07.2013 11:58 # 0
inkanus-gray 15.07.2013 11:45 # 0
http://ideone.com/LS7s8F
defecate-plusplus 15.07.2013 09:32 # +1
bormand 15.07.2013 09:35 # 0
Lowezar 15.07.2013 12:13 # 0
bormand 15.07.2013 10:27 # +2
santa_microbe 15.07.2013 06:57 # +1
bormand 15.07.2013 07:37 # +3
neeedle 15.07.2013 08:18 # 0
>>aluminij
лол
bormand 15.07.2013 09:32 # +2
DBdev 15.07.2013 10:22 # +3
FROM group1, group2, group3
Ну и это все обернуть PHP кодом :)
fixed?
bormand 15.07.2013 10:30 # +1
DBdev 15.07.2013 10:58 # +2
А есть задачи, которые пытаются свалить на декларативщину, когда им там совсем не место :(
bormand 15.07.2013 10:28 # +5
1024-- 15.07.2013 13:34 # 0
> $materials = array('kozha','meh','aluminij');
> Группа 3.
> Мех, Кожа
bormand 15.07.2013 13:59 # 0
inkanus-gray 15.07.2013 11:01 # +2
Многомерные массивы и вложенные циклы не нужны. Истинно говорю, есть только смещения, всё остальное от лукавого.
HaskellGovno 15.07.2013 11:46 # +3
http://ideone.com/eUCJGA
Ждем код от царя, обгоняющий мой. Чтобы держать народ в напряжении пока не замерял время работы кода.
bormand 15.07.2013 12:32 # +2
HaskellGovno 15.07.2013 13:17 # +2
http://ideone.com/3Okmm6
http://ideone.com/2m0WHZ
Могу даже так:
bormand 15.07.2013 15:26 # +2
Из Saya no uta?
HaskellGovno 15.07.2013 15:58 # +1
> Песнь Саи
По словам Saya Kisaragi uta или Saya Kisaragi song гуглится:
http://www.youtube.com/watch?v=l-2vIGxYZI0
Коллега тоже лингвист?
bormand 15.07.2013 16:05 # +3
P.S. Да простят меня модераторы за оффтопик.
HaskellGovno 15.07.2013 16:09 # 0
bormand 15.07.2013 16:10 # +2
P.S. Саечка няша ^_^
HaskellGovno 15.07.2013 16:16 # +3
http://en.wikipedia.org/wiki/Blood-C
> Blood-C ... Saya Kisaragi ... Genre Action, Horror, Supernatural, Tragedy
Они любят говорящие идентификаторы и имена собственные.
> P.S.
НЯ! ^_^
HaskellGovno 15.07.2013 16:42 # 0
совмещать. То есть чтобы идентификатор был значащим.
HaskellGovno 16.07.2013 11:30 # +1
superhackkiller1997 16.07.2013 11:39 # +1
Хаскельговно тоже - анскилл, но выживать надо - вы запитушились на говнозыках - пытаетесь найти спасение в порномультиках.
анямэ для питухов, только питухи его смотрят.
HaskellGovno 16.07.2013 11:45 # +3
Может и анскилл, но планирую поднять свой уровень. А ты планируешь поднимать свой?
superhackkiller1997 16.07.2013 11:56 # 0
На детских делфях/пхп? Или кукарекая на Царя?
СУть в том, что питух планирует, а Царь апает. Царь фармит скилл 24/7. А ты питух в стал и стоишь посреди вестфала(или где там таверна эта злополучная рядом со штормом) и ролиплеешь в таверне с остальными питухами. И кукарекаешь на пацанов, которые мимо идут.
"Ко-ко-ко - я царь, а ты питух. Ко-ко-ко я маргинальщик, Ко-ко-ко я нахрен понтовый - уменя ник какбэ я за хаскель, но он говно - какбэ я тралю тебя лалка - хахаха, ко-ко-ко.
HaskellGovno 16.07.2013 12:07 # +3
Послушав кукареканье Царя скорее. Типичный не царь качает скилл 24/365.5±0.5 в год. Ему некогда расхаживать по балам. Разве что в отпуске может позволить себе расслабиться.
Царя плюсую я. Как всегда харизматично. Почему такие таланты не идут в Мариинский?
superhackkiller1997 16.07.2013 12:29 # +1
Тыж говорил про многопоточность - дак вот, итинный царь многопоточный - как китайский фармер. Поэтому ничего не мешает ему расхаживать по балам, если это полезно для его скилла, не вредит ему и интересно ему.
Апать скилл - это развивать думалку - когда ты пишешь 24/7 - ты лишь пишешь говно бездумное, как машинистка на задворках жизни. Нормальный код месяц обдумывается - неделю пишется. А пока царь думает - царь можешь и пофлудить на ларе/говнокоде.
eth0 16.07.2013 18:57 # +1
bormand 16.07.2013 19:24 # +8
Питух не может планировать. Подъемная сила у крыльев маловата, да и вес большой.
eth0 17.07.2013 18:46 # +2
Кура может, я в деревне видел, как спокойно слетала с сарая. С петухом опытов я ставить бы не стал.
bormand 17.07.2013 18:52 # +3
Яростно молотя крыльями или все-же планируя на расправленных? :)
eth0 18.07.2013 20:19 # +1
Нечто среднее, к планированию ближе. За давностью лет, я уже точно не могу быть в этом уверен, придётся поставить натурный эксперимент. Только потребуется Пизанская башня. как минимум.
anonimb84a2f6fd141 10.08.2013 00:48 # 0
guest 10.08.2013 00:01 # 0
Слыхали ... Тряхнуло по дороге всех ... Живот болел три недели, персс сам по себе накачался
Stallman 17.07.2013 00:14 # +2
HaskellGovno 18.07.2013 16:36 # 0
Ты меня подловил. Я не знаю Японский.
bormand 15.07.2013 15:51 # +3
HaskellGovno 15.07.2013 16:41 # 0
guest 16.07.2013 05:11 # +3
А так, мне больше нравится:
HaskellGovno 16.07.2013 11:27 # 0
guest 16.07.2013 14:06 # +1
Это замечательно, часто удобен вкупе с Parsec: skipPrefix *> extract <* skipSuffix (a не do skipPrefix; val <- extract; skipSuffix; return val).
Но для читаемых случаев, в общем вариант bormand с явным "биндингом" лучше.
> sequence тут идеален
Тут это где? В конкретном примере или в выдуманном случае: "В decart я могу передать больше или меньше данных с ввода пользователя,"
HaskellGovno 16.07.2013 14:12 # 0
Ого как красиво. Говорят парсек недетерминированный парсер(парсер-комбинатор)? Что медленно
guest 16.07.2013 14:27 # 0
Да вроде нет, если не использоваться редкие "look-ahead". Просто высокуровневый подход со своими издержками.
Есть тот же attoparsec, с тем же аппликативным интерфейсом. К тому, что в данном случае узкое место - не комбинаторный подход.
HaskellGovno 16.07.2013 14:39 # 0
superhackkiller1997 16.07.2013 15:03 # +1
А так токенайз говно. Однопроходный уничтажающий не валидирующий парсер пидалит в хлам всё, что только может.
HaskellGovno 16.07.2013 15:15 # 0
> skipPrefix *> extract <* skipSuffix
При использовании токенезирования skipPrefix *> extract вызовет как минимум загрузку двух строк кеша при первых обращениях к обоим. Без него как минимум одну. Профит на лицо. С другой стороны токинизированный код занимает меньше места и поэтому скорее всего то, что загружается в skipPrefix уже будет находиться в кеше, то есть в среднем все-таки число вытесняемых кешлиний может уменьшиться. А если ещё подумать, то более последовательные обращения к кешлиниями без токенизации также могут увеличивать профит от автопрефетча процессором. А ещё токинизация может увеличивать вероятность перекрытия адресов кешлиний и приводить к вытеснению часто требуемой кешлинии из-за того, что например (там сейчас все ещё также?) совпали младшие биты адресов (хотя старшие не совпали), но кешу пофиг, ведь он смотрит только по младшим.
superhackkiller1997 16.07.2013 15:31 # −1
Питушарский автоматический кеш всегда работал как говно. И гнилая ассоциативность так никуда не делась. Поэтому да, если у тебя в строке могут лежать только такие адреса - он клал и он выкинет в зависимости алгоритма любой адрес с такой же Nнностью.
Не знаю какие сейчас алгоритмы вытеснения в питухах-ителах. Поидее они должны уметь не вытеснять частоюзаемые, хотябы на примитивном уровне.
Вот тебе ещё одна вещь - в Царском процессоре должен быть только ручной кеш. Кеш - это ещё одна оператива, с которым ты работает обычными мeвами, либо меморимув на 64байта.
Только суть в том, что с такми питушарскими декодерами и ссешками на 32байта - конвейер сдуется на некоторых камнях. Но даже это лучше, чем та питушня с кешем, которая происходит сейчас.
Кеша станет в 2раза больше - память станет намного быстрее - всего лишь с выпилом питушрской ассоциативности и автоматичекого управления кешом.
HaskellGovno 16.07.2013 16:22 # 0
Тебе во VLIW
superhackkiller1997 16.07.2013 16:33 # 0
Т.е. влив не может быть мейнстримом, а то, что не мейнстрим - интелу, да и рынку не нужно.
guest 16.07.2013 15:23 # 0
[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 не стоит).
superhackkiller1997 16.07.2013 16:45 # −1
А знаешь, сколько реквестов будет выдавать нормальные бинарные заголовки? И данные, как гзипованный хваст?
Суть в том, что люди изначально придумывают говно, а потом пишут мегобыстрые парсеры, хренансеры - хотя проще изначально выпилить текст и не юзать его нигде.
Потом пишут валидирующие парсеры, ибо "мы питушки не знаем, где мы не ту букву поставили" - это ещё -50% перфоманса, вплоть до -98%.
Я конечно понимаю, что героически решить проблему, которую сами же создали - аля: 10k rps problem. Тцп стек уже лет 100 как 10кrps умеет. Неумело этого: Питушарское хттп, хтмл и прочее говно - но у нас появились процессоры и мы написали омегабыстрые парсеры и добились своих 10krps в лучше случае, и то на статике.
А сейчас нормальный "вебсервер", не то говно, аля нгинкс, апач и прочее - именно парсер опкодов и раскидывателей данных - выдаёт тысячи тонн rps. В тысячи раз больше, чем самый илитный веб. Как так?
Заголовок к нормальном протоколе - это опкод и его стрктура. Это парсится процессором на скорости близкой к терабайту в секунду максимум - ну 100гигов дастс даже в самом слабом случае с тысячей переходов. Т.е. на порядки быстрее ущербанского гигабита.
Сравни это с ущербанским вебом. Кому нежен этот питушарних html, хмл и иные реализации этого говна? Выпили это говно - запили нормальное бинарное представление. Сразу будет буст на порядки - нет, мы питухи - мы юзаем говно, гинерим говно и рисуем говно. Мы хвалимся тем, что мы хоть что-то сделали и оно работает.
bormand 16.07.2013 17:09 # +1
Твои мегатонны rps сможет адекватно вытянуть только прокся\балансер\хрень раздающая статику из оперативы.
superhackkiller1997 16.07.2013 17:33 # 0
Суть в том, что у меня нет никаких пхп - у меня сишкасервер поверхтцп стека. Весит балансёр вместо сразу после цтп стека в ведре - кидает кадры на нити - нити хреначат и кадют данные на другой балансёр, который уже хренчит их в тцп стек, который хренчит кадры в инет.
guest 16.07.2013 17:22 # +1
По ссылке вообще-то используется чужой 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 / прочее.
А пример "нормального представления"? (ну так, чтоб с валидацией, ибо "мы питушки не знаем, где мы не ту букву поставили" херня, а не аргумент :)
guest 16.07.2013 17:35 # 0
yaws*
superhackkiller1997 16.07.2013 17:39 # −1
Я говорю не про ссылку, а вообще.
>Ну всякие 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 / прочее.
>А пример "нормального представления"? (ну так, чтоб с валидацией, ибо "мы питушки не знаем, где мы не ту букву поставили" херня, а не аргумент :)
Причём тут жс, флеш и прочее - всё это говно, а хтмл тормазит именно сеть и питушит сервера.
Нормальный - я тебе описал. Ты, никакие хттп запросы руками не пишешь - я тебе описал пример с опкодами.
Вместо данных - юзай хтмл, если питух. Юзай бинарь, если не питух. Передавай код на сишке, который будет бутстрапица у тебя в броузёрке и рисовать твой сайтец на опенгл"е, общатся по нормальному сокету и никаких хтмл не нужны вообще.
guest 16.07.2013 18:07 # +1
И кто еще упоролся). Если "нормальных вебсерверов нет" - может виновато завышенное представление о нормальности?
> а хтмл тормазит именно сеть и питушит сервера
А нахрена, спрашивается, "оптимизировать", если на фоне остального не факт, что будет заметно.
> бинарь .. код на сишке .. бутстрапица .. сайтец на опенгл"е .. сокету
Круто, чо.. Только мало: может это, сетовой стек слить в нормальное царское состояние, а то такой оверхед вложений.
Интересно, если html такой петушиный, что здесь-то забыл? Поцчему не создаешь царский бинарный фидонет, не ведешь цивилизацию по пути прогресса?
guest 16.07.2013 18:10 # 0
ой, неидиоматично звучит, гипербинарный
superhackkiller1997 16.07.2013 18:59 # 0
Иди погляди на питушатские рогалики, как там запилена сеть, авось поймёшь. И то, там она запилена как питушня, но хотябы не такая явная.
А почему? Патамучто хттп протух бы в миг, а твой рогалик гинерил бы по 10гигобайт траффика в час от юзверя.
guest 16.07.2013 19:20 # +1
Ну наверное что-то поверх udp, хотя не суть: разговор-то был про web. Откуда желание все прибить к железу?
> умеет работать со всяким говном и недоязыкам
Может это, ну его этот линукс, ставь plan9, меньше будет идиосинкразия.
> Ах да, ты же не пилил вебсервера - чтобы мне было удобно, чтобы я не ваял говно - и писал вместо 1к строк двадцать.
Не распарсил мысли. Ты же сам вполне можешь запилить 1M rps.
> всё будет едино
Все бинарь.. даже небо.. даже аллах.
> Сетевой стек ты не выпилишь, ибо между тобой и юзверем сеть.
Да легко, чего на софте останавливаться: царская сетувуха <-> царский маршрутизатор <-> царские интернеты.
> Всё остальное я выпилил.
Юзабельно?
> говно как инструментом для апаскилла и в последствии запила не говна.
Допустим, можно примеры запиленного последнего?
> избранных мною я возьму собой и поведу
Это правильно, таким надо держаться вместе.
superhackkiller1997 16.07.2013 21:05 # −1
Какая разница какой протокол - суть в том, что там нормальный опкодный протокол. Давай я напишу тебе пример, чтобы ты понял: http://pastebin.com/fdnZGxYV - вот тебе полноценный вебсервер для нормального протокола - там ещё нужно строк 20, чтобы прочекать валидность номеров опкодов и прочую фигню, аля он не проверяет длинну куска данных, которые идут за опкод структурой - если они длинше - он должен возвращать не один, а лишнии данные, либо сразу указатель.
Добавляешь хеадлер, структуру, номер опкода - будет хреначить. Реальный сервер на 4-х нитях у тебя будет выдавать миллард rps. В зависимости от фейлов переходов. Остально у тебя уже зависит от сети и ведра.
>Может это, ну его этот линукс, ставь plan9, меньше будет идиосинкразия.
Говно от питухов для питухов.
>Не распарсил мысли. Ты же сам вполне можешь запилить 1M rps.
Суть в том, что я могу и мильярд, но ваш питушарский протокол мне этого не даёт.
>Да легко, чего на софте останавливаться: царская сетувуха <-> царский маршрутизатор <-> царские интернеты.
Да, но это уже потом.
>Юзабельно?
Для царей - да.
>Допустим, можно примеры запиленного последнего?
Ну вот я тебе за 5минут накатал аналог твоего вебсервера - умеет тоже, протокол нормальный - попытайся запилить такое же для питух Хттп.
guest 16.07.2013 22:02 # +2
Ирония в том, что _веб_ подразумевает именно гипертекстовую часть интернетов.
Ну отодвинет это немного проблему, а дальше? Кеп подсказывает, что перспективнее двигаться в сторону распределенных систем.
> Суть в том, что я могу и мильярд
Свежо сие преданье, а верится весьма с трудом.
> попытайся запилить такое же для питух Хттп
В смысле "такое же", если он by design текстовый? Есть готовые библиотеки, меня устраивает. Да меня и html устраивает, хотя xhtml имхо поприличнее.
btw хоть тот же netcat позволяет получить страницу, а что делать с "единым бинарем"? Не чувствуете ли вы духовную близость с незабвенным леннартом (и его бинарным логом)?
superhackkiller1997 16.07.2013 22:26 # −1
Говновеб, а не норм Царский веб - ты о5 слился, питушок.
>Ну отодвинет это немного проблему, а дальше? Кеп подсказывает, что перспективнее двигаться в сторону распределенных систем.
Какую проблему - это апнет сервера. А нормальные сайтецы написанные на сишке - выдают мильёны rps уже сейчас, но не, что пишешь ты, заедушный пхп питух.
>Свежо сие преданье, а верится весьма с трудом.
Мой тот пример выдаёт овермильярд rps в секунду на хелворде на одном ведре. коре2 1.86ггц. Но тут нет нормального выбора хеадлеров - поэтому тут нет переходов - с переходами будет медленее в пару раз в худшем случаее.
Остальное - уже зависит от ip/tcp стека твоей ОС.
>В смысле "такое же", если он by design текстовый? Есть готовые библиотеки, меня устраивает. Да меня и html устраивает, хотя xhtml имхо поприличнее.
Твоя самая лучшая библиотека медлннее на порядки моей примитивной реализации нормального протокола.
>btw хоть тот же netcat позволяет получить страницу, а что делать с "единым бинарем"? Не чувствуете ли вы духовную близость с незабвенным леннартом (и его бинарным логом)?
Замени фейковые псевдоре сокеты на реальные - будет работать. Хоть хелворд на хтмл будет тебе выдавать.
anonimb84a2f6fd141 16.07.2013 22:27 # +1
А что в нем плохого? Решили спиздеть у винды? Давно пора.
superhackkiller1997 16.07.2013 18:57 # 0
Пацан скиллся - дак вот запомни - всё, что ты знаешь говно. А пока ты читаешь про гван и тестишь его - он так работает потому, что запилен по царскому методу.
Нормальный - это истинно нормальный, а гван не провославен - раз, умеет работать со всяким говном и недоязыками - по этой причине сишное апи у него говно.
>А нахрена, спрашивается, "оптимизировать", если на фоне остального не факт, что будет заметно.
Ты питух? Ты животное? Ах да, ты же не пилил вебсервера - чтобы мне было удобно, чтобы я не ваял говно - и писал вместо 1к строк двадцать.
Выпили всё говно на серверной части - потом уже будешь пилить у юзерей - это не так фатально. На серверной чати тормазит именно хттп.
superhackkiller1997 16.07.2013 18:57 # 0
Он итак в царском апи сольётся. Суть в том, что это самое слитое из возможного. Это реально отменит веб/не веб - всё будет едино.
Ты можешь играца, смотреть кинцо - и всё без тормазов и говна. Всё будет красиво, круто и быстро.
Сетевой стек ты не выпилишь, ибо между тобой и юзверем сеть. Всё остальное я выпилил.
>Интересно, если html такой петушиный, что здесь-то забыл?
О5 кукарекушка начала нести говно и сливаться. Если жизнь такое говно - что ты сдесь забыл? Я сдесь для того, чтобы жизнь из говна сделать не говном. Ничего не запрешает мне пользоваться говно как инструментом для апаскилла и в последствии запила не говна.
Это основа - питухам не понять.
>Поцчему не создаешь царский бинарный фидонет, не ведешь цивилизацию по пути прогресса?
Создаю, только мне не интересно вести цивилизацию к прогрессу. Я показываю путь, избранных мною я возьму собой и поведу, остальные же либо пойдут сами по пути, который указал я - либо сдохнут и жить будут в питушне до конца своего жалкого бытия.
Мне не интересно кому-то что-то объяснять, учить питухов и прочее - хочешь - ты избранный, не хочешь - я даказывать тебе ничего не будут - ты питух и это твой выбор.
inkanus-gray 16.07.2013 19:34 # +1
http://ru.wikipedia.org/wiki/WBXML
http://dev.opera.com/articles/view/opera-binary-markup-language/
superhackkiller1997 16.07.2013 21:42 # −1
eth0 16.07.2013 18:59 # 0
Наркоман штоле?
Ты так до векторного гипертекстового говнокода додумаешься.
superhackkiller1997 16.07.2013 19:02 # 0
Всё говно в этом мире вызванно потоканием и заботой об неосиляторах - питухи они.
inkanus-gray 16.07.2013 19:29 # +4
bormand 16.07.2013 19:41 # +2
Можно прям снимок куска памяти, если вместо указателей юзать офсеты, и совпадают byte-order и битность.
superhackkiller1997 16.07.2013 22:03 # 0
Да, оффсетным, распарсеным представлением как вариант.
superhackkiller1997 16.07.2013 22:07 # 0
Она бутстрапица при первом заходе - и живёт у тебя во кладке. А броузер - это шедулер/планировщик. Т.е. микроОС. Браузер будет жрать 0 метров оперативы, а написанные по Царский сайты - по 1метру максимум.
Сайтецы будут ваять только избранные, говнори умрут за ненадобностью - останутся только те, кто достойны. Никаких тысяч говносайтов.
Авось запилит кто-то анол юкоза для анскилледов - пусть там свои сайтецы и пилят.
eth0 17.07.2013 18:59 # +1
Тру! Я уже джва года жду Только вот вероятность того, что ты будешь прозябать в своём инторнете в гордом одиночестве, близка к единице.
А, да, бинарные исполнимые сайты - вообще шикарно. Сменил дизайн - перекомпилировать на всех мобилках, про сплоиты даже думать страшно.
P.s. На самом деле, идея сжатых двоичных веб-приложений не очень плоха, и дело не в скорости или размере. Основная проблема в том, что это пользователям ничего не даст. И приведёт это именно к ГВФ.
Не стоит забывать, что современные инторнеты, как они есть, продукт эволюционного развития, растянувшегося на десятки лет. В чём-то создатели инторнетов были гениальными, в чём-то недальновидными. Нельзя так просто взять и отринуть весь этот существующий базис, пусть даже он морально устарел.
inkanus-gray 17.07.2013 19:07 # 0
Дизайн не нужен же. На сайтах должна быть только инфа, только хардкор! Да здравствует telnet!
Ну серьёзно, для чего нужен дизайн, кроме того, чтобы работающие за «Доширак» анскиллябры, гордо именующие себя дизайнерами, имели работу?
bormand 17.07.2013 19:31 # 0
Во, вспомнились BBS'ки. Тот самый исполняемый файл на любом языке, правда все-таки на стороне сервера. И вот в то время идеи Царя могли бы найти применение...
superhackkiller1997 15.07.2013 13:28 # 0
Давай забенчим.
1024-- 15.07.2013 13:59 # +13
superhackkiller1997 15.07.2013 14:43 # −4
1024-- 15.07.2013 17:40 # +4
superhackkiller1997 15.07.2013 17:49 # −1
Не жрёт память.
>нерасширяемое
Расширяемое.
>плохо читаемое решение
Нормально читается.
>царскими словами
Это не компил тайм гинер строки.
1024-- 15.07.2013 18:45 # +3
Как минимум, размер исполняемого файла раздувается (линейно от среднего размера слова, как степенная функция от количества среднего слов и экспоненциально от количества измерений; а в царском коде всё линейно). Для варианта ниже у меня он дошёл до ~55К вместо ~27K (для прошлого моего варианта).
> Расширяемое.
Да, расширяемое (см. код ниже).
Но я имел ввиду добавление слов/измерений во время исполнения, что может кому-нибудь пригодиться.
> Нормально читается.
Не всеми. По крайней мере, решение на пхп, которому посвящён сей пост, читается гораздо лучше, даже анскильными питушками, если они знают английский. Мой вариант не читается столь легко.
superhackkiller1997 15.07.2013 19:24 # −3
Упоролся чтоли - твой код жрёт меньше, чем процесс пхп. Посчитай, сколько тебе надо захреначить таких макросов, чтобы хотябы приблизится к бинарнику php интерпритатора. Напомню - твой код еле-еле весит чуть больше 2кбайт. Бинарь пхп интерпритатора почти 9метров.
Какие там у тебя 27kb - ода портянка того когда, что в ГК весит овер 2килобайта.
Сожми строку.
>Но я имел ввиду добавление слов/измерений во время исполнения, что может кому-нибудь пригодиться.
Повторю ещё раз - в 85% случаев добавление слов не нужно.
>Не всеми. По крайней мере, решение на пхп, которому посвящён сей пост, читается гораздо лучше, даже анскильными питушками, если они знают английский. Мой вариант не читается столь легко.
Питухи меня не интересуют.
1024-- 15.07.2013 20:52 # +3
Скажем, 7 измерений по 8 слов по 5 байт дадут 5*8^7=5*2^21=10 мегабайт без учёта дефисов. А размер исходника изменится при этом раза в четыре.
> Какие там у тебя 27kb
Действительно, в первом варианте длина строки - 495. Вероятно, какая-то виндомагия. Остаётся только понять и простить. Но строка из второго варианта - 31536 символов.
> Сожми строку.
Это сам исполняемый файл сжимать? Или ещё как-то? (правда, если сжимать-разжимать в проге, то легче вернуться к массивам)
1024-- 15.07.2013 22:30 # +4
7 измерений по 6 слов по 5 байт - 9.3МБ, или 11.2МБ с "-" и "\n".
superhackkiller1997 16.07.2013 11:26 # −1
10мегобайт - ты приблизился к бинарю php -ты что анскильный такой. Ты зачем про память кукарекаешь, если несёшь тотальную херню - возьми пхп - запусти тот скрипт из 1-й строки - удивись.
>Действительно, в первом варианте длина строки - 495. Вероятно, какая-то виндомагия. Остаётся только понять и простить. Но строка из второго варианта - 31536 символов.
У тебя ещё меньше должно быть - у тебя не православный утф8, а говно маздайское по 8байт на символ.
>Это сам исполняемый файл сжимать? Или ещё как-то? (правда, если сжимать-разжимать в проге, то легче вернуться к массивам)
На нормальных ФС, а не на твоём маздайском говне - этот файл на 100500твоих измерений будет весить меньше интерпритатора пхп. Чёй-то легче? За 2минуты хреначится.
Запили свою сжималку - задампь хешмап и массив, как сделал я в 1-м случае. Всё сжимается просто, а хреначится легко - а до тех объёмов памяти, которые жрёт пхп - это метров 30бинарей - у тебя есть наиогромнейший запас. А уж про пожирание оперативы твоим пхп я и говорить не буду.
1024-- 16.07.2013 16:32 # +2
Фиг знает, 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 - количество слов.
HaskellGovno 16.07.2013 16:34 # 0
superhackkiller1997 16.07.2013 16:56 # 0
У тебя задача - захреначит пару сотен, максимум тысячу слов - тебе не надо кукарекать, что типа оверхед и прочее - бири и хреначь, ибо это будет меньше, чем оверхед на пхп говно.
Когда люди гинерят и работают со стоками по 10метров - там никакого пхп, и питухов нет.
bormand 15.07.2013 14:01 # +6
superhackkiller1997 15.07.2013 14:43 # −3
HaskellGovno 15.07.2013 14:49 # +1
Ты не поверишь, но Цари напрягают подчиненных, чтобы те горбатились за еду.
superhackkiller1997 15.07.2013 18:30 # −3
3.14159265 15.07.2013 18:38 # +4
Илита интернетов.
superhackkiller1997 16.07.2013 11:28 # 0
eth0 15.07.2013 18:20 # −1
Явсегдабудучитатьтреддоконца.Явсегдабуду читатьтреддоконца.Явсегдабудучитатьтредд оконца.
HaskellGovno 15.07.2013 14:35 # +5
superhackkiller1997 15.07.2013 14:50 # −1
DBdev 15.07.2013 15:41 # +4
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 и код превращается в...
bormand 15.07.2013 15:44 # +3
superhackkiller1997 15.07.2013 16:21 # −4
Вы даже идею не поняли, анскилледы:
1024-- 15.07.2013 17:57 # +2
тут и 0x100 хватит. здесь люди с первого раза понимают.
3.14159265 20.07.2020 00:15 # 0
inkanus-gray 15.07.2013 20:34 # +1
HaskellGovno 16.07.2013 11:27 # 0
inkanus-gray 16.07.2013 17:59 # +2
Пришлось применить двоичную систему для эмуляции троичной, поэтому цикл пробегает 64 значения (4×4×4) вместо 27 (3×3×3). А если бы была троичная система, программа бы была в ≈2,37 раза быстрее!
inkanus-gray 16.07.2013 18:13 # 0
wvxvw 16.07.2013 00:03 # +3
"конь, сука, пальто, сука, алюминий, бля!"
Остальные варианты можно было бы не генерировать, заказчик все равно был бы доволен.
inkanus-gray 16.07.2013 20:52 # +1
P.S. Код легко расширяется на произвольную размерность. Зря я явно три измерения перемножил, когда можно было использовать array_product... Готово: