输出代码大小的Lorem Ipsum


11

输出与您的代码相同长度的Lorem ipsum

规则:

  • 代码不能与输出相同
  • 没有压缩库
  • 两周中最短的程序获胜
  • 没有网络的使用,文件阅读等技巧与人们可以很容易地解决任何代码高尔夫球问题(与evalexec等)

Your code with length 25.

输出量

Lorem ipsum dolor sit ame

我认为lorem ipsum占位符文本不是标准化的。如果我们的程序比提供的示例长,该怎么办?是否应该从头开始重复一次?
先生先生2013年

@GigaWatt我提供了超过1000个字符的长文本作为链接。如果这还不够,请重复。
randomra

Lorem ipsum dolor坐下来,管教着迷。整数nunc augue,feugiat non,egestas ut,rutrum eu,purus。Vestibulum condimentum commodo pede。Nam in metus eu justo commodo posuere。Nunc varius dui id nulla。Fusce porttitor t。直径为Quisque。Nulla pellentesque。Donec vitan urna et arcu lobortis varius。Aenean velit eros,varius ac,semper坐在amet,lacinia eget,sem。小菜豆小菜蛾发酵。Proin等。Nullam turpis。Fusce eget arcu。毛里斯胎盘菌群。Nullam pede nisl,ullamcorper ullamcorper,hendrerit坐在amet,mole亵
DavidC

2
如果不允许使用网络/语言内置程序/压缩,我们应该如何生成至少与程序一样长的信息?这几乎就像凭空提取信息。
拉玛先生先生2013年

1
@GigaWatt压缩(假设它的长度不必动态
复制

Answers:


8

GolfScript(122或138字节)

规则似乎含糊不清:“输出”到底是什么意思?许多程序假定程序的“输出”不包含最后的换行符,以确保shell输入的下一行在单独的行上开始。

00000000  27 80 38 6e df 07 55 f7  a7 8f c0 42 9d dc 1e e7  |'.8n..U....B....|
00000010  7d 48 9a 88 79 03 92 c1  fb ed 8a af 51 92 52 24  |}H..y.......Q.R$|
00000020  2c b7 0b 17 d4 eb dc b0  d8 ce 8c 82 0f 94 0d 18  |,...............|
00000030  42 71 58 8a dd e6 b9 70  9b 48 74 f5 f0 70 c2 bb  |BqX....p.Ht..p..|
00000040  e0 5b 1d e1 f2 a7 29 3e  87 b4 f0 4d 3a 22 5c 71  |.[....)>...M:"\q|
00000050  55 3d d1 fd 77 12 e2 52  73 24 89 00 9b c3 e5 47  |U=..w..Rs$.....G|
00000060  0c b4 17 1a 27 32 35 36  62 61 73 65 20 39 30 62  |....'256base 90b|
00000070  61 73 65 7b 33 32 2b 7d  25 2b                    |ase{32+}%+|
0000007a

是122个字节,并输出122个字节的rum ipsum和结尾的换行符。

00000000  27 75 24 b6 ac 4e 36 10  aa 62 7f 2b 35 67 cc ee  |'u$..N6..b.+5g..|
00000010  c2 fa d4 9a 7a 54 96 e9  f0 0b 38 58 63 79 97 f8  |....zT....8Xcy..|
00000020  d5 7e 8a bc 4e e6 9b ee  88 ed f0 87 b5 9e 78 8c  |.~..N.........x.|
00000030  ff 4e ac 59 49 d5 71 f1  94 51 f5 4e 6a 58 57 24  |.N.YI.q..Q.NjXW$|
00000040  f6 4a 07 40 d6 06 bb a3  34 55 8d 83 aa ce d4 41  |.J.@....4U.....A|
00000050  46 04 26 c7 ef e2 f7 00  a2 61 a9 d2 40 8c 00 d9  |F.&......a..@...|
00000060  78 9a a7 53 d6 ea 85 16  23 fd c6 2c 8d a6 cb 09  |x..S....#..,....|
00000070  0a 27 32 35 36 62 61 73  65 20 39 30 62 61 73 65  |.'256base 90base|
00000080  7b 33 32 2b 7d 25 2b 3a  6e 3b                    |{32+}%+:n;|
0000008a

是138个字节,并产生138个字节的ipsum,没有尾随换行符。


或者..您可以将换行符算作输出的一部分,并少打印1个字节的lorem ipsum
aditsu退出是因为SE是EVIL,2013年

@aditsu,我也考虑了这种可能性,并认为将其视为作弊行为是相当明确的。
彼得·泰勒

12

腐烂13(1)

我很惊讶以前没有人想到这个:)

Y

另外,一个非常简单的perl解决方案

Perl(252)

s//LoremIpsumDolorSitAmet,ConsectetuerAdipiscingElit,SedDiamNonummyNibhEuismodTinciduntUtLaoreetDoloreMagnaAliquamEratVolutpat. UtWisiEnimAdMinimVeniam,QuisNostrudExerciTationUllamcorperSuscipitLobortisNislUtAliquipExE/;s,([^ ])([A-Z]),$1$"\l$2,g;print

不错的perl解决方案。一个平凡的49字节的改进:...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
普里莫

196字节更好:print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
primo

rot13是编程语言吗?:)也是基于这个想法,我将最小代码长度修改为正数……
randomra

2
好吧,代码长度1为正数:)
aidtsu退出是因为SE为EVIL,2013年

我认为这已经very simple perl solution不再了。
MD XF

8

Golfscript-161

编辑:python解决方案输出的长度与其自身的长度不同,所以我用golfscript做得更好。这也是我的第一个golfscript答案。

[' ,.LUabcdeghilmnopqrstuvwy''zä{~4ú›Úˆ2©JfÖØélq¤öäpDÎ;bÐô(;ÆXÔZo´dZ]e§B¥×ûba(šX†Cf½ÇUÃ0~3i‰d<Ú{¡º¯ŠÛ„å4B9W}˜$ûã–'{1-}%255base{.26%@.@=\@26/.}do;;]''+

我不确定该如何编码,因此这里是该文件的链接。


我得到363个字节的代码,输出362个字节
aditsu退出,因为SE无效

固定。也切换语言。
cardboard_box

我想请您单独发布它,但是我可能会使用您的想法来改进我的python解决方案:)
aditsu退出了,因为SE邪恶

5

Python 2-332

print''.join([x,'tmoi eiidoqa  ua  lde  rsernponutsatmnci  '[ord(x)%21::21]]['.'<x<'D']for x in'LAe@1su@2lA6i?9et,;3sectetu/7d1Bc0gC<t,6e=di9:3ummy:ibhCuBmo=t0cidun?8 laAee?2lA>magna7<49Cr5 vol8p5. U?wBiCni@a=m0i@veni9, 4B:ostru=ex/ci t5i3 ull9cAp/6usc1i?lobAtB:Bl 87<41CxCa;ommo2;3se45. DuB78e@velCu@iriur>2lA 0 hendr/i?0 vulp85>')

如果有人在乎,这里有部分改进:
1181-> 630-> 549-> 510-> 456-> 416-> 381-> 332


5

Mathematica,8岁

我假设视觉上相同的输出是可以接受的。因此,我使用此字符代替ASCII“ i”,这会导致两个符号以正确的顺序自动排序:

іp*Lorem
Lorem іp

3

巴什(156)

因为禁止使用真正的“压缩库”,所以我将滥用base64coreutils。(xxd -r解码提交)

0000000: 7461 696c 202d 3120 2430 7c62 6173 6536  tail -1 $0|base6
0000010: 3420 2d77 307c 7472 2058 595a 205c 202c  4 -w0|tr XYZ \ ,
0000020: 2e0a 6578 6974 0a2e 8ade 9978 a9b2 e997  ..exit.....x....
0000030: 7689 68ad 7b22 b576 a67a d617 7289 ec79  v.h.{".v.z..r..y
0000040: cb5e b6e7 ab5d a762 a62b 1c8a 7817 7a58  .^...].b.+..x.zX
0000050: ad61 7b1e 7577 626a 65e7 a27b a69b 25e7  .a{.uwbje..{..%.
0000060: 89b8 577a e8ac 9a87 57b6 29dc 89db a7b5  ..Wz....W.).....
0000070: 7bad 5e56 a8ad e7ad 5dda 25a2 b797 99a8  {.^V....].%.....
0000080: 2769 76a5 8aab 9a99 77ab 6ad5 efa2 5bad  'iv.....w.j...[.
0000090: a5ab 595d 4b57 c22b 225d e9e2            ..Y]KW.+"]..

我使用此PHP程序生成了以上代码:

<?php

$lorem = '<text here>';

$enclorem = base64_decode( strtr( $lorem, ' ,.', 'XYZ' ) );

$prog = "tail -\$3 \$0|base64 -w0|tr XYZ \\ ,.\nexit\n$1";

for ( $i = 0, $n = strlen( $lorem ); $i < $n; $i++ ) {
    $cutlorem = substr( $lorem, 0, $i );
    for ( $j = 0, $o = strlen( $enclorem ); $j < $o; $j++ ) {
        $cutenclorem = substr( $enclorem, 0, $j );
        if ( substr( strtr( base64_encode( $cutenclorem ), 'XYZ', ' ,.' ), 0, $i )  === $cutlorem ) {
            break;
        }
    }
    $out = strtr( $prog, array(
        '$1' => $cutenclorem,
        '$2' => $i,
        '$3' => substr_count( $cutenclorem, "\n" ) + 1,
    ) );
    echo "\$i=$i strlen(\$out)=" . strlen( $out ) . "\n";
    if ( $i === strlen( $out ) ) {
        break;
    }
}

echo "\nHexdump:\n";
$p = popen( 'xxd', 'w' );
fwrite( $p, $out );
pclose( $p );

echo "\nFinal output check: ";
$tmp = tmpfile();
fwrite( $tmp, $out );
$md = stream_get_meta_data( $tmp );
ob_start();
passthru( 'bash ' . escapeshellarg( $md['uri'] ) );
$buf = rtrim( ob_get_clean() );
echo $buf === substr( $lorem, 0, strlen( $out ) ) ? 'PASS' : 'FAIL', "\n$buf\n";

base64是否不是某种压缩实用程序?另外,我认为您违反了“不读取文件”的规定-您肯定会读取文件(程序本身),类似于“ quine” cat $0
ugoren

1

Mathematica 47 46

不知道这是否公平。Mathematica在其示例数据中具有Lorem ipsum的“全文”。下面只是告诉Mathematica从内置的Lorem Ipsum示例中提取特定长度的字符串。

编辑

e=ExampleData;e[e["Text"][[19]]]~StringTake~46

原件

ExampleData@{"Text","LoremIpsum"}~StringTake~47

“ Lorem ipsum dolor坐在amet,秘密的adipis”


1

PHP,75(动态)

<?=substr(file_get_contents('http://bit.ly/15KKxqh'),0,filesize(__FILE__));

输出示例:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttito

它不使用压缩,但是会弯曲规则。很多。
您可以在示例的末尾添加垃圾字符,但仍具有正确的输出(最多2k +个字符)。


PHP,59(静态)

<?=substr(file_get_contents('http://bit.ly/15KKxqh'),0,59);

与上述相同,但使用固定大小,如果添加了额外的字符,则将不正确。


修改规则后,我的答案现在无效。
拉玛先生先生2013年

1

Windows批处理,878 720

在Windows XP和Windows 7上进行了测试,但是对于带有扩展名的所有cmd(IIRC,Windows NT和更高版本)都可以使用。

必须使用CMD /V:ON /C batchfile打开延迟的变量扩展名来运行,但我更喜欢SETLOCAL EnableDelayedExpansion批处理文件中不具有代码高尔夫友好性。

@ECHO OFF
SET A=Lore2ipsu21 si0amet,6ctetu7 adip3cing4lit, sed dia2nonummy nibh4u3mod tincidun0u0laoree018magna aliqua27a0volutpat. U0w3i4ni2ad mini2veniam, qu3 nostrud4x7ci tation ullamcorp7 suscipi0lobort3 n3l u0aliquip4x4a commodo6quat. Du3 aute2vel4u2iriur81 in hendr7i0in vulputat8veli0ess8molestie6quat, vel illu21e4u feugia53 a0v7o4ros40accumsan40iusto odio dign3si2qui blandi0praesen0luptatu2zzril deleni0augu8du3 18t8feugai5i. Na2lib7 tempor cu2soluta nob34leifend option congu8nihil imp7die0doming id quod mazi2plac7a0fac7 possi2assum. Typi non haben0claritate2insitam;4s0usus legent3
FOR %%I IN ("8=e ","7=er","6= conse","5=0nulla facil3","4= e","3=is","2=m ","1=dolor","0=t ") do SET "A=!A:%%~I!"
ECHO %A%

1

J(144)

如果我不需要将其设置为适当的脚本,则可以是128,这样您就可以测量输出了。

exit[stdout'utsrponmligfedcbaVLI., '{~#._5>\,#:a.i.'�F��$f����`kg�c������$NI�f!!��`�L�:����l���5l�0A����Fـ���T�X ��@g�I�`��'

工作原理:文本中只有23个唯一字符,因此可以用5字节编码表示。编码后的字符串中的字符被转换为它们的ASCII数字(a.i.),然后将每个数字转换为以2为基数的表示形式(#:),然后将这些位分组为五个一组(_5>\,),然后对每个这些组进行转换值(#.),并将它们用作查找表的索引。({~)。

查找表实际需要动些脑筋,因为为J字符串文字不能包含\n\r\0

十六进制转储:

0000000:7865 7469 735b 6474 756f 2774 7475 7273
0000010:6f70 6d6e 696c 6667 6465 6263 5661 494c
0000020:2c2e 2720 7e7b 2e23 355f 5c3e 232c 613a
0000030:692e 272e 4691 d9c3 1024 660f 0595 841d
0000040:da90 6007 676b c214 8263 81c0 b483 921a
0000050:4e24 9549 2166 a521 60a6 4cb1 8c1d 3a03
0000060:02d0 ca80 6cd9 9302 d800 35c5 c56c 4130
0000070:ac80 d600 00c3 0346 80d9 88ad 8001 b454
0000080:2058 e0a5 0f40 1467 49cd 60d8 e080 0a27

您可以压缩查找表,例如('VLI., ',97}.a.)以某种方式不会混淆其他文字。
randomra
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.