Saída "Lorem ipsum" com número mínimo de caracteres

16

Lembro-me de pessoas dizendo que o tamanho do código deve ser medido em bytes, e não em caracteres, porque é possível armazenar informações com caracteres Unicode estranhos, que não têm significado visual.

Quão ruim pode ser?

Neste desafio, você deve produzir o seguinte texto de Lorem Ipsum, retirado da Wikipedia :

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Especifique o número de caracteres (não bytes) no seu código. Código com o número mínimo de caracteres ganha.

Seu código deve conter apenas caracteres Unicode válidos, conforme descrito aqui , ou seja:

  • O código aponta até U + 10FFFF
  • Nenhum substituto (o intervalo D800 – DBFF é proibido)
  • Nenhum caractere FFFE e FFFF
  • Nenhum caractere nulo (código 0)

Se o seu código não puder ser exibido, forneça uma versão com os caracteres incorretos redigidos e um hexdump.

Algumas notas:

  • A saída deve ser uma linha longa (445 caracteres). Se o seu sistema não puder fazer isso (por exemplo, você estiver imprimindo em papel), imprima uma aproximação mais próxima. As quebras de linha à direita não importam.
  • Funções internas que geram texto Lorem Ipsum não são permitidas
  • Especifique uma codificação de texto válida para o seu código, se relevante
anatolyg
fonte
2
Infelizmente =lorem(), em MS Word não emite a versão correta
Cabeção
4
3 respostas até agora especificando bytes. Parece-me que algumas pessoas podem não ter lido o desafio
Robert Fraser
@RobertFraser: No meu caso, não faz diferença como 1 byte = 1 caractere, portanto é melhor especificar bytes como esse é o padrão. Se eu tivesse ganho algum usando chars, teria especificado assim :) Certamente o mesmo vale para as outras respostas.
Emigna
1
É permitido fazer uma solicitação http?
Master_ex 8/09/16
2
Isto parece um joguete do este desafio como não existem quaisquer padrões no texto?
FryAmTheEggman # 8/16

Respostas:

6

Dyalog APL , 123 caracteres

Todos, exceto o período final, são compactados em 111 caracteres de 32 bits (UTF-32).

'.',⍨80DR'𦽌򒁭󗕳󆽤𲁲𒁴󇑥󦽣񆍥𧕴򖑡𷍩􆝮񆥬񗌠󶐠񖥥񆽭󖕴􇉯򖍮񖑩񒁴𖰠񗉯􇑥󶱯󒁥𖹧򖱡󦅵􇑕󖥮􆑡򖹩񗘠󖅩񗄠󢁳𧑳񒁤𷉥񆅴􆹯𖱬􆽣󶉡􇍩򗍩􇑵𖥬􇁩񒁸󶌠񆽭󶌠𖕳󧑡򗕄񖄠򒁥񗉵󆽤򒁲񗈠򆕲񖑮􇑩񢁮􇕬񗑡󆕶񒁴􆕳󆱩񂁭𦽬񖔠񷕦􇑡󆱵𗀠񆅩􂹲񖍸񖕴򗌠󲁴񖅣􇑡򗁵𗑡󶸠𧀠񖑩􂱴񆹵􆹩􆱵񗄠񦼠򖍩񖐠񗉥󒁴򖱬󦄠򒁭𶔠𖰠񗉯'

'.',⍨ período anexado a

80⎕DRa 8 bits ( 8caracteres) ( 0) D ATA R ePresentation de

'... 'os 111 caracteres Unicode U + 26F4C 9206D D7573 C6F64 32072 12074 C7465 E6F63 46365 27574 96461 37369 10676E 4696C 57320 F6420 56965 46F6D D6574 10726F 9636E 56469 52074 16C20 5726F 10746520564920565465 46174 106E6F 16C6C 106F63 F6261 107369 97369 107475 1696C 107069 52078 F6320 46F6D F6320 16573 E7461 97544 56120 92065 57275 C6F64 92072 57220 86572 5646E 107469 6206E 10756C 57461 C6576 52074 106573 C6C69 4206D 26F6C 56520 77566 107461 C6C75 17020 46169 102E72 56378 56574 97320 F2074 56.163 107.461 97.075 17.461 F6E20 27020 56469 102C74 46E75 106E69 106C75 57120 66F20 96369 56420 57265 D2074 96C6C E6120 9206D 36520 16C20 5726F, que estão todos na faixa de 12074 a 10756C e, portanto, dentro da faixa permitida do OP 10000 a 10FFFF.

Adão
fonte
14

JavaScript (ES7), 326 283 273 249 243 242 caracteres

_=>"򾍮󂙙󱤭󕜛񟉝񚫎󸦘󏇌󻮾󪕍򦙜񴫰𭙝𧇍񛜃򧮖󓔽򅬸󪙗񴦲񿫽񟮩򺥸󫡽񛜕󖷉󂨗񢕕򦯊񗮣󌫉񣔶򥹖񟷗򢫂󧩜񝼜󾿍񙇛񴮪󼬗񟪵񥦘񝕋󖹜񝹜򢟝񚪲󧩙񙁪񛌖󆆸񛌗󳭞񧔍􄮉񧮮񜭾󫤭󕜛񜫩󫬻򄗗񻭲󺙗񟼕􆞪󻤿򅙝𯎎񛉕򹤭󕜛򀿉򏨒񧔷􅚪񞕛򢮾󪂌򆞮􆴼򥾩󓆊򃅝񛏙򣕝񧔷󕴹󮉍򅾢󷫽񜫩񷪹񢝞򢜏򌦒񢖮󳭾󏔶󕚲󺕗򥤲񸾝񝕋󖿇"[r='replace'](/./gu,c=>(c.codePointAt()-4**8).toString(32))[r](/\d/g,d=>"  , exum. ".substr(d,2))[r](/^.|\. ./g,x=>x.toUpperCase())

Como funciona

A primeira etapa da minha técnica de compactação é converter toda a cadeia de caracteres em minúsculas (não obrigatória, mas parece melhor) e substituir cada par de caracteres , exum. (e também o espaço à direita) pelo seu índice na cadeia mais 2. Isso torna o texto um número base-32 válido:

lorem9ips69dolor9sit9amet2consectetur9adipiscing3lit2sed9do3iusmod9tempor9incididunt9ut9labore3t9dolore9magna9aliqua8ut3nim9ad9minim9veniam2quis9nostrud94ercitation9ullamco9laboris9nisi9ut9aliquip943a9commodo9consequat8duis9aute9irure9dolor9in9reprehenderit9in9voluptate9velit3sse9cill69dolore3u9fugiat9nulla9pariatur84cepteur9sint9occaecat9cupidatat9non9proident2sunt9in9culpa9qui9officia9deserunt9mollit9anim9id3st9laboru7

O próximo passo é converter cada execução de 4 caracteres em decimal e obter o caractere nesse ponto de código. Isso pode ser feito com a seguinte função:

f=s=>s.replace(/..../g,x=>(n=parseInt(x,32),String.fromCharCode(0xD800+(n>>10),0xDC00+(n&0x03FF))))

( Nota: Como todos os dígitos são 2 ou mais, o valor mínimo possível de quatro dígitos é 2222₃₂. Isso é igual a 95978₁₀ ou 176EA₁₆; portanto, os pontos de código nunca estarão no intervalo restrito.)

E agora temos nossa string compactada:

򾍮󂙙󱤭󕜛񟉝񚫎󸦘󏇌󻮾󪕍򦙜񴫰𭙝𧇍񛜃򧮖󓔽򅬸󪙗񴦲񿫽񟮩򺥸󫡽񛜕󖷉󂨗񢕕򦯊񗮣󌫉񣔶򥹖񟷗򢫂󧩜񝼜󾿍񙇛񴮪󼬗񟪵񥦘񝕋󖹜񝹜򢟝񚪲󧩙񙁪񛌖󆆸񛌗󳭞񧔍􄮉񧮮񜭾󫤭󕜛񜫩󫬻򄗗񻭲󺙗񟼕􆞪󻤿򅙝𯎎񛉕򹤭󕜛򀿉򏨒񧔷􅚪񞕛򢮾󪂌򆞮􆴼򥾩󓆊򃅝񛏙򣕝񧔷󕴹󮉍򅾢󷫽񜫩񷪹񢝞򢜏򌦒񢖮󳭾󏔶󕚲󺕗򥤲񸾝񝕋󖿇

São 445 caracteres compactados em 106 caracteres. A descompressão simplesmente inverte esse processo:

  1. Converta cada caractere em seu ponto de código na base-32, menos 65536.
  2. Substitua cada dígito npor" , exum. ".substr(n,2) .
  3. Converta cada letra após um ponto ou no início da string em maiúsculas.

O único recurso do ES7 usado é **. Substitua 4**8por 65536para executar em um navegador que ainda não suporta o ES7.

ETHproductions
fonte
Se você usa o ES7, pode usar em 4**8vez de 65536.
mbomb007
@ mbomb007 Obrigado. Talvez isso seja útil em outros desafios também
ETHproductions
8

bash + coreutils + gzip + recode, 191 caracteres

echo -ne "ᾋࠀ㰟퍗\03㖐셱䌱ࡄ戋⪒宮⦀⃬〣ख़ʏ쬏湂삲מּ浊莎ᔍ얪䴬畐Ꮏ肭⽡តप㩴뇶ᮤ樶鞔岀梬昅⹭盖ꈥ먣Ვ빓ỢꞴꃑ괓꣪㷨삗䎺뛔䛓ﵸ摉篨䊷૤⦓헉픺ꉖ橬ꟲỒꗻ퉋則ใ⢍럴摧耼񸺷⒅୴䘺㦳櫇鐱窑駁愵䚞鎴鍉Ⅻक़毽➔脂ힸ⤹喝葁㎋頇㺞ⳃ┶왤惌⒜猜䌋吏젔掚ᛩ鯢⚕䜹鴛皽⨫ꇈ銹믍䄛逦軵융󌒣杻龇븁\0"|recode u8..utf16be|tr -d ٣ܣ|gunzip

A string é o gzip do texto interpretado como UTF-16BE, além de alguns bytes extras para emparelhar com as metades substitutas não emparelhadas. O tr retira as metades substitutas extras.

Esse arquivo de script (ou o shell no qual esse comando é digitado) deve interpretar o texto como UTF-8, e é por isso que a recodificação é necessária.

user59468
fonte
Bem-vindo ao PPCG! Bom primeiro post! No entanto, contamos coisas em bytes aqui. Desculpe.
Rɪᴋᴇʀ
6
Esta pergunta faz uma exceção explícita a isso, afirmando "Especifique o número de caracteres (não bytes) no seu código" e discutindo quais caracteres Unicode são permitidos.
user59468
1
Eu sou um idiota. Me desculpe por isso. > _>
Re 9/09
2
Não tem problema, aposto que a coisa de bytes e caracteres é um erro comum em outras questões.
user59468
8

Javascript (ES6), 261 255 254 caracteres

Economizou 1 byte, graças à ETHproductions

_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])

Demolir

Carga útil: 148 caracteres Unicode
Código: 107 bytes

Como funciona

Primeiro removemos os principais 'L' da mensagem original para ficar com 444 = 148 * 3 caracteres.

Sem o líder 'L', o conjunto de caracteres é composto pelos 27 caracteres a seguir:

" ,.DEUabcdefghilmnopqrstuvx"

Cada grupo de 3 caracteres é codificado como:

n = 32 + a + b * 32 + c * 32^2

onde a, bec são os índices dos caracteres no conjunto de caracteres acima.

Isso leva a um ponto de código Unicode no intervalo U + 0020 a U + 801F, terminando em algum lugar nos "CJK Unified Ideographs".

let f =
_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])


console.log(f())

Arnauld
fonte
5

05AB1E , 319 bytes

Usa a codificação CP-1252.

•9y†QHÚSe²ŒÓdéÓ#ǧÖN›Íˆž4GÏóREØån‡·JîÁØ£ÎÁ¥evÑRZ¶—¥1RËÒÆzçå"UNé¨v¯ÊcŒÔÝjðtrœÛeã&“SÁxÌ4Þá1N$ù?T(çÛbŸœfó˜lUž}Þß-©ÃMšBÈÑPàê#jÇÐ+n¼BDFý>–¸äFT×›qÜY³ö9ªòËùˆA‡¾p=‘¤ÚÞ{I¶Œ±Ål#¨5´Aq˜Àž,s<*Ï;‡õã¾»ðŽL´ÅuØö+Xi+S>»/8Kã~WΔƒß”¤µðWluØa'cUÐeà¥ä…ž+œ6*0RU£›aÝQ_ñœoþÏð””Þã7ã¨sŒV`_É-´éÄèÆd¦úE5Í^Aá,‘‡™™¢äTHä0¥3±.}Søg•36B0„. :™J'yð:'z',:'.«

Interprete a seguinte sequência como um número base 36 e codifique na base 214

LOREMYIPSUMYDOLORYSITYAMETZYCONSECTETURYADIPISCINGYELITZYSEDYDOYEIUSMODYTEMPORYINCIDIDUNTYUTYLABOREYETYDOLOREYMAGNAYALIQUA0UTYENIMYADYMINIMYVENIAMZYQUISYNOSTRUDYEXERCITATIONYULLAMCOYLABORISYNISIYUTYALIQUIPYEXYEAYCOMMODOYCONSEQUAT0DUISYAUTEYIRUREYDOLORYINYREPREHENDERITYINYVOLUPTATEYVELITYESSEYCILLUMYDOLOREYEUYFUGIATYNULLAYPARIATUR0EXCEPTEURYSINTYOCCAECATYCUPIDATATYNONYPROIDENTZYSUNTYINYCULPAYQUIYOFFICIAYDESERUNTYMOLLITYANIMYIDYESTYLABORUM

Depois disso nós

36B                      # encode back into base 36
   0„. :                 # replace 0 with ". "
        ™J               # convert to titlecase and join
          'yð:           # replace "y" with <space>
              'z',:      # replace "z" with ","
                   '.«   # add a "." at the end

Por alguma razão, a codificação não funcionou com um 0 no final, e é por isso que é necessário um caso especial para o final ".".

Experimente online!

Emigna
fonte
Eu acho que você pode substituir Ye Zpor 1e 2e economizar alguns bytes. Talvez também reorganize os 0, 1 e 2 para se livrar do misterioso caso especial?
Anatolyg 08/09/16
@ anatolyg: infelizmente não. Qualquer letra que não seja da letra conta como uma quebra de palavra, o que interferiria na letra do título.
Emigna
5

PHP, 247 caracteres

combinação das 2 versões anteriores

echo gzuncompress(base64_decode(mb_convert_encoding("敊眱歍䙸兺䕉剆癚䅪礯極南慷潧楏㡷䥷汚䅯⽌䐸灐扫䱁獶猫扅煄橨啎硡灎䱈噑䔷⭂牓㥨䘴㡊䭪瀰獦夷灇漲氵剣杇楳婧啵扥卹摴慩䩢潪䡊圫啨㝩氷卧ぢご煏潪㙍䍮儷焲ㅅ扔⽘桭卥㉇别桃琫啺䍵公欹塊ㅔ煩噭灳氯䥥ぱ堷ぱ⭫橨祇啂灶㙣浵䅈湋䐷硴卑潘㙉砰捭塖橩汪祲昰䥪佄㔸晔慯眸䨲歮欰䱗䕲䑗⭫㡯䅷塏畃猵⭪慅兔佌流晥塹穄䩔扇婇䑍䩊硺䡅䵌⭤㝉䙇佡䙵浢㑩慖剺湱潊ぢ摰㝋卩楹婏㕵猷灴ぁ慫楗倹捙ㄲ⽁䍧塋啊","UTF-16")));

PHP, 261 caracteres

echo mb_convert_encoding("䱯牥洠楰獵洠摯汯爠獩琠慭整Ⱐ捯湳散瑥瑵爠慤楰楳捩湧⁥汩琬⁳敤⁤漠敩畳浯搠瑥浰潲⁩湣楤楤畮琠畴慢潲攠整⁤潬潲攠浡杮愠慬楱畡⸠啴⁥湩洠慤楮業⁶敮楡洬ⁱ畩猠湯獴牵搠數敲捩瑡瑩潮⁵汬慭捯慢潲楳楳椠畴⁡汩煵楰⁥砠敡⁣潭浯摯⁣潮獥煵慴⸠䑵楳⁡畴攠楲畲攠摯汯爠楮⁲数牥桥湤敲楴⁩渠癯汵灴慴攠癥汩琠敳獥⁣楬汵洠摯汯牥⁥甠晵杩慴畬污⁰慲楡瑵爮⁅硣数瑥畲⁳楮琠潣捡散慴⁣異楤慴慴潮⁰牯楤敮琬⁳畮琠楮⁣畬灡ⁱ畩晦楣楡⁤敳敲畮琠浯汬楴⁡湩洠楤⁥獴慢潲畭.","UTF-16");

A codificação $ s contém a sequência

foreach(str_split(bin2hex($s),4)as $c)eval('echo"\u{'.$c.'}";');

Versão antiga PHP, 386 bytes | Caracteres

echo gzinflate(base64_decode("NZDBcUMxCERb2QI8v4rklmsKIIjvMCMJWQKPyw/KT25CwLL7PmxKg44VDcWqTSx1UBO/ga0vYRePCSo6dLH2O6RqNpeUXIBorGYFLm3ksnbWoiW6IxyVvlIe4pe0oNG9E6jqI+jAp0O6ttRG0/14ZknthkfoQrflMwrkJZPVydU6olZqbJfyHtKl+9KvpI4chlAab+nJrgB5yg+8bUkKF+iMdHJl1Y4pY8q39CIzg+fH02qMPCdpJ5NC1hKw1vpPKAMFzrgrOfo2hEEzi5gH3l8swyU2xmRgzCSccxxDC/neyBRjmhbpm+ImlUc56qCdG3aeykoosmTubrO6bdAGpIlj/XGNdvwA"));
Jörg Hülsermann
fonte
4

C #, 337 333 331 caracteres

_=>{var q="";foreach(var c in"潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")q=q+(char)(c&255)+(char)(c>>8);return q.Replace("!",".").Replace("_"," ");};

-4 caracteres substituindo .s após "pariatur" e "laborum" por !antes de combinar os caracteres com caracteres largos e adicionar uma nova linha à direita.

-2 caracteres reatribuindo a var de saída em vez de anexar com += .

Como funciona:

A cadeia de caracteres do lorem ipsum foi convertida nessa bagunça substituindo .por !, por _isso, quando os caracteres ascii são colocados próximos um do outro para formar um caractere amplo, cada caractere amplo é um único caractere.

/*Func<object, string> Lorem = */ _=> // unused parameter
{
    // Output var
    var q = "";

    // Enumerate each wide char
    foreach (var c in "潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")
        // Split each wide char into two ascii chars
        q = q + (char)(c&255) + (char)(c>>8);

    // Restore the replaced periods and spaces
    return q.Replace("!",".").Replace("_"," ");
};
leite
fonte
3

ISOLADOS, 44016 bytes

http://pastebin.com/raw/Y2aAhdpi

Empurre o código ASCII para cada caractere na sequência Lorem Ipsum, concatene tudo e faça a saída.

acrólito
fonte
2

MATL , 354 caracteres

'8 sxAI($ltZ>2<xa`vYf:s2e9]c&^KtD%e{C*XEpQ]]>dwmi>2;{sUCIZ{V(}Yj 7K&)|,%JD/Pz^:3$*@vVJw)4pgvz4s_$,%pVGu~|PS/Qr7pz5Z2[VV{Lyq}{l!yGiKNg.zFJxL75 sT1]eL2f3iVe~11!|6c+O9.kMWFQYvEp^w0p oH,?Ey"nbV>0g`#)kqTq""" z_AYmyJutvg:o9&AT{#(<42wu.b7" QoOn\#])]ISdH$yc{eM> .[~/`"#2:7C4Mk@eRW8L*_!xjo\cO)!LHK=g:P?&Uc];KdnE(%K7J-z9:7&rhxHl/KZ8\t_C|rT#%28[%+#u.?'F2Y2' ,.DEL'hZa

Isso decodifica da base-94 (usando os caracteres ASCII imprimíveis, exceto aspas simples; portanto, apenas caracteres Unicode até 126 são usados) para o alfabeto de caracteres necessários, formado pela maioria das letras minúsculas, algumas letras maiúsculas, espaço, vírgula e ponto final.

Demora alguns segundos no compilador online.

Experimente online!

Luis Mendo
fonte
2

JavaScript (ES5), 342 caracteres

c="remo ipsudlta,cngbq.UvxDhfE";"L"+"Qq©Úu[Qsx7Ķz`¾ƅ&Øxø§Ëƴ%ţ¾÷öm¿Zw¥ſøûƠtĭĚǎmĭöđnŔơxēǮŗĭ*x÷;ƚ:ȸƚņţǮ{XĩámɓŏƙâĚDUĚǎÁƚÂtĭŎݦ1mňŽ8ZUŽƜ-äļÝÁŌĪqu[Qqƙ¢3*ôĭ[ÞĵĪ%mÄſĘÚu[Q#èĭƝĘň®ŏØȅ˔Ż­#ÂƠoƈŅƆĭƂ§ÿĵĭƘƙ¢VôƠţÅƠqƙƂĔňǮjʨſňô¾Ơn[ēĭœq÷\"ĭĚǎI".split('').map(function(x){y=x.charCodeAt(0);return c[~~(y/27)]+c[y%27]}).join('')

Bem simples, então tenho certeza de que há espaço para melhorias. Codifiquei cada par de caracteres de saída como um único caractere Unicode.

Eric Dobbs
fonte
1
Você precisa do var ?
Paul Schmitz
Ótimo ponto, eu raspei esses caracteres extras. Obrigado!
Eric Dobbs
Se você usa o ES6, substitua join('')por join``. Caso contrário, mude seu idioma paraJavaScript (ES5)
Paul Schmitz
Eu acho que você pode fazer, em y/27|0vez de ~~(y/27)salvar dois bytes. Você também pode remover o 0no x.charCodeAt(0).
ETHproductions
Além disso, .split('').map(function).join('')pode ser.replace(/./g,function)
ETHproductions
1

Gelatina , 300 caracteres (não-concorrente?)

“ḊḄr⁷ƤⱮx#y&Ọ¬½ẇṾƤẋRṠỊ/IṗIÞƝỊż,CA~ñ;ßɦ4ṿḷNVẸẆ`°ṄjJ⁽Ɱ!Æḋ"uƒ⁽ƙfƈÇœƓ®ḶẓƭƊȮ⁻w}Ġṙ(1€CÐ-ɼ#ȯjėȮoZœ°ȥạ_ẊƊaʠiẸṂṪẒ$ċⱮiẹOṠBṇḲ^*GƓŒA>żıWṭƤe&ėẠF6³ṂḲzlçÇṪġṂŻỵḢ⁴WJC⁽Ỵihıỵṃ¥ẏƬEỴ⁽#ḍʠḢ*^O[4)ỵZ5VoPĠƘṙḅß]<œ/ṅẸ% ḍ"Ɱ+¢¦ß÷⁵Ḍ³Ṅ¶2X|©dċÆṁḢƭṗM°`KǦɗỤɱṆȯƘkṅbṙ⁻l<t,ḟȮạżæ€ṠṣIȥCṘƥṁ©53ẒþØŻṁ£æƥ?¬ṿFæṘ⁴nụ’ṃ“Lrem ipsudlta,cngbq.UvxDhfEo

Experimente online!

A codificação é geléia .

Graças a seqüências de caracteres compactadas, consegui compactá-lo em 3 bytes.

Erik, o Outgolfer
fonte