출력 코드 크기 Lorem Ipsum


11

코드가 같은 길이의 Lorem ipsum을 출력하십시오 !

규칙 :

  • 코드는 출력과 동일 할 수 없습니다
  • 압축 라이브러리가 없음
  • 2 주 만에 가장 짧은 프로그램
  • 쉽게 (어떤 코드 골프 문제를 해결할 수있는 하나 없음 네트워크 사용, 파일 읽기없고 다른 트릭 eval, exec등)

Your code with length 25.

산출

Lorem ipsum dolor sit ame

lorem ipsum 자리 표시 자 텍스트가 표준화되지 않았다고 생각합니다. 프로그램이 제공된 예제보다 길면 어떻게 되나요? 처음부터 다시 반복해야합니까?
Mr. Llama 2019

@ GigaWatt 나는 1000 자 이상의 긴 텍스트를 링크로 제공했습니다. 충분하지 않으면 반복하십시오.
randomra

Lorem ipsum의 dolor는 amet, consectetuer adipiscing elit에 앉습니다. 정수 nunc augue, feugiat non, egestas ut, rutrum eu, purus. Vestibulum condimentum commodo pede. metus eu justo commodo posuere의 남. 수비수 dui id nulla. Fusce porttitor pretium leo. 식당에서 Quisque. Nulla pellentesque. Donec vitae urna et arcu lobortis varius. Aenean velit eros, varius ac, semper sit amet, lacinia eget, sem. Phasellus mollis는 pede cursus fermentum을 잘라냅니다. Proin et odio. 눌람 터 피스. Fusce eget arcu. Mauris placerat ultricies lectus. Nullam pede nisl, ullamcorper ullamcorper, hendrerit sit amet, molestie
DavidC

2
네트워크 / 언어 기본 제공 / 압축을 사용할 수없는 경우 최소한 프로그램만큼 긴 정보를 어떻게 생성해야합니까? 그것은 얇은 공기에서 정보를 끌어내는 것과 거의 같습니다.
Mr. Llama 2019

1
@GigaWatt 압축 (그것 일 필요는 없다 가정 동적 길이)
복사

답변:


8

GolfScript (122 또는 138 바이트)

규칙에는 아주 작은 모호성이있는 것 같습니다. "출력"이 정확히 무엇을 의미합니까? 많은 프로그램은 프로그램의 "출력"에 마지막 줄 바꿈이 포함되어 있지 않다고 가정합니다.이 줄은 쉘 입력의 다음 줄이 별도의 줄에서 시작되도록합니다.

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 바이트이고 lorum ipsum의 122 바이트와 후행 줄 바꿈을 출력합니다.

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 바이트의 lorum ipsum을 생성합니다.


아니면 .. 당신은 출력의 한 부분으로 줄 바꿈을 계산하고, 로렘 입숨의 1 적은 바이트를 인쇄 할 수 있습니다
aditsu 종료 SE 악이기 때문에

@aditsu, 나는 그 가능성도 고려했고 그것이 부정 행위로 간주 될 것이라는 것은 분명한 것이 아니라고 생각했다.
피터 테일러

12

rot13 (1)

나는 아무도 전에 이것을 생각해 낸 것에 놀랐다 :)

Y

보너스로 매우 간단한 펄 솔루션

펄 (252)

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

좋은 펄 솔루션. 사소한 49 바이트 개선 :...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
primo

196 바이트가 더 print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
좋습니다

rot13은 프로그래밍 언어입니까? :) 또한이 아이디어를 기반으로 최소
코드 길이를

2
음, 1의 코드 길이는 양수입니다 :)
SE는 EVIL이기 때문에 aditsu 종료

나는 very simple perl solution더 이상 생각 하지 않습니다.
MD XF

8

골프 스크립트-161

편집 : 파이썬 솔루션은 자체 길이와 다른 길이를 출력하므로 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 바이트 출력을
얻었습니다.

결정된. 또한 언어를 바 꾸었습니다.
cardboard_box

내 파이썬 솔루션을 :) 개선하기 위해 내가 별도로 게시하도록 요청 싶지만, 대신 나는 당신의 아이디어를 사용할 수 있습니다
aditsu 종료 SE 악이기 때문에

5

파이썬 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

수학, 8

시각적으로 동일한 출력이 허용 된다고 가정합니다 . 따라서 ASCII "i"대신 이 문자 를 사용 하면 두 기호가 올바른 순서로 자동 정렬됩니다.

іp*Lorem
Lorem іp

3

배쉬, 156

실제 "압축 라이브러리"를 사용하는 것은 금지되어 있기 때문에 base64대신 coreutils를 남용 할 것입니다. ( 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

매스 매 티카 47 46

이것이 공정한 플레이인지 확실하지 않습니다. Mathematica는 예제 데이터에 Lorem ipsum의 '전체'텍스트를 가지고 있습니다. 다음은 Mathematica에 내장 된 Lorem Ipsum 예제에서 특정 길이의 문자열을 가져 오도록 지시합니다.

편집 :

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

원본 :

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

"Lorem ipsum dolor 앉은 자세, consectetuer 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);

위와 동일하지만 고정 된 크기를 사용하며 추가 문자를 추가하면 올바르지 않습니다.


규칙이 수정 된 후에는 제 답변이 유효하지 않습니다.
Mr. Llama

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 개의 그룹 ( _5>\,)으로 그룹화 된 다음 각 그룹이 변환됩니다. 값 ( #.)으로 설정하면 조회 테이블에 대한 색인으로 사용됩니다. ( {~).

J 문자열 리터럴에는 \n, \r또는을 포함 할 수 없으므로 룩업 테이블에는 실제로 약간의 땜질이 필요했습니다 \0.

16 진 덤프 :

0000000 : 7865 7469 735b 6474756f 2774 7475 7273
0000010 : 6f70 6d6e 696c 6667 6465 6263 5661 494c
0000020 : 2c2e 2720 7e7b 2e23355f 5c3e 232c 613a
0000030 : 692e 272e 4691 d9c3 1024660f 0595 841d
0000040 : da90 6007676b 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.