Đầu ra Lorem Ipsum có kích thước mã


11

Xuất cùng độ dài của Lorem ipsum mã của bạn là!

Quy tắc:

  • Mã không thể giống hệt với đầu ra
  • Không có thư viện nén
  • Chương trình ngắn nhất trong hai tuần chiến thắng
  • Không sử dụng mạng, đọc tập tin và thủ thuật khác với người ta có thể dễ dàng giải quyết bất kỳ vấn đề sân golf mã (với eval, exec, vv)

Thí dụ

Your code with length 25.

Đầu ra

Lorem ipsum dolor sit ame

Tôi không nghĩ rằng văn bản giữ chỗ lorem ipsum được chuẩn hóa. Điều gì xảy ra nếu chương trình của chúng tôi dài hơn ví dụ được cung cấp? Nó có nên đơn giản lặp lại từ đầu một lần nữa?
Ông Llama

@GigaWatt Tôi đã cung cấp một văn bản dài hơn 1000 ký tự dưới dạng liên kết. Nếu điều đó là không đủ thì lặp lại.
Randomra

Lorem ipsum dolor ngồi amet, consectetuer adipiscing elit. Integer nunc augue, feugiat non, eestas ut, rutrum eu, purus. Vestibulum condimentum hàng hóa pede. Nam trong metus eu justo Vendo posuere. Nunc varius dui id nulla. Fusce porttitor Pretium leo. Quisque trong diam. Nulla dạng viên. Donec vitae urna et arcu lobortis varius. Aenean velit eros, varius ac, semper sit amet, lacinia eget, sem. Phasellus mollis nunc a pede cursus fermentum. Proin et odio. Rùa Nullam. Fusce eget arcu. Mauris placerat ultricies giảng đường. Nullam pede nisl, ullamcorper ullamcorper, hendrerit sit amet, molestie
DavidC

2
Nếu chúng tôi không được phép sử dụng tích hợp / nén ngôn ngữ / mạng, làm thế nào chúng tôi có thể tạo ra thông tin ít nhất là bằng chương trình? Điều đó gần giống như kéo thông tin ra khỏi không khí mỏng.
Ông Llama

1
Nén @GigaWatt (giả sử nó không phải là động theo chiều dài)
sao chép

Câu trả lời:


8

GolfScript (122 hoặc 138 byte)

Dường như có một sự mơ hồ rất nhỏ trong các quy tắc: "đầu ra" chính xác có nghĩa là gì? Nhiều chương trình cho rằng "đầu ra" của chương trình không bao gồm một dòng mới cuối cùng, để đảm bảo rằng dòng tiếp theo của đầu vào shell bắt đầu trên một dòng riêng biệt.

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

là 122 byte và xuất ra 122 byte lorum ipsum và một dòng mới.

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

là 138 byte và tạo ra 138 byte lorum ipsum mà không có dòng mới.


Hoặc .. bạn có thể tính dòng mới là một phần của đầu ra và in ít hơn 1 byte lorem ipsum
aditsu thoát vì SE là EVIL

@aditsu, tôi cũng đã xem xét khả năng đó và cho rằng nó khá mơ hồ rằng nó sẽ được coi là gian lận.
Peter Taylor

12

thối13 (1)

Tôi ngạc nhiên không ai nghĩ ra điều này trước đây :)

Y

và như một phần thưởng, một giải pháp perl rất đơn giản

Perl (252)

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

Giải pháp perl đẹp. Một cải tiến 49 byte tầm thường:...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
primo

Vẫn tốt hơn cho 196 byte:print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
primo

Rot13 có phải là ngôn ngữ lập trình không? :) Cũng dựa trên ý tưởng này, tôi sửa đổi bước sóng tối thiểu thành tích cực ...
Randomra

2
Chà, độ dài mã của 1 là dương :)
aditsu thoát vì SE là NGÀY

Tôi không nghĩ nó very simple perl solutioncòn nữa.
MD XF

8

Golfscript - 161

Chỉnh sửa: giải pháp python xuất ra một chiều dài khác với chiều dài của chính nó, vì vậy tôi đã làm tốt hơn với golfscript. Đây cũng là câu trả lời đầu tiên của tôi.

[' ,.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;;]''+

Tôi không chắc làm thế nào điều này được mã hóa ở đây, vì vậy đây là một liên kết đến tập tin.


Tôi đang nhận được mã 363 byte, đầu ra 362 byte
aditsu thoát vì SE là EVIL

Đã sửa. Cũng chuyển ngôn ngữ.
tông_box

Tôi yêu cầu bạn đăng nó một cách riêng biệt, nhưng thay vào đó tôi có thể sử dụng ý tưởng của bạn để cải thiện giải pháp python của mình :)
aditsu bỏ vì SE là EVIL

5

Con trăn 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>')

Nếu có ai quan tâm, đây là danh sách một phần các cải tiến:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332


5

Toán học, 8

Tôi đưa ra giả định rằng đầu ra giống hệt trực quan là chấp nhận được. Do đó, tôi sử dụng ký tự này thay cho ASCII "i", khiến hai Biểu tượng được tự động sắp xếp theo đúng thứ tự:

іp*Lorem
Lorem іp

3

Bash, 156

Vì việc sử dụng "thư viện nén" thực sự bị cấm, base64thay vào đó tôi sẽ lạm dụng từ coreutils. ( xxd -rđể giải mã trình)

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.+"]..

Tôi đã tạo mã trên bằng chương trình PHP này:

<?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";

Không phải là Base64 một số loại tiện ích nén? Ngoài ra, tôi nghĩ rằng bạn vi phạm "không đọc tệp" - bạn chắc chắn đọc một tệp (chính chương trình), tương tự như "quine" cat $0.
ugoren

1

Toán học 47 46

Không chắc chắn nếu đây là chơi công bằng. Mathematica có văn bản 'đầy đủ' của Lorem ipsum trong dữ liệu ví dụ của nó. Phần sau đây đơn giản chỉ cho Mathicala lấy một chuỗi có độ dài cụ thể từ ví dụ tích hợp của Lorem Ipsum.

Chỉnh sửa :

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

Bản gốc :

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

"Lorem ipsum dolor ngồi amet, adectetuer adipis"


1

PHP, 75 (Động)

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

Ví dụ đầu ra:

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

Nó không sử dụng nén, nhưng nó bẻ cong các quy tắc. Rất nhiều.
Bạn có thể thêm các ký tự rác vào cuối ví dụ và vẫn có đầu ra chính xác (tối đa 2k + ký tự).


PHP, 59 (Tĩnh)

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

Tương tự như trên, nhưng sử dụng kích thước cố định và sẽ không chính xác nếu thêm ký tự.


Sau khi các quy tắc được sửa đổi, câu trả lời của tôi bây giờ không hợp lệ.
Ông Llama

1

Lô Windows, 878 720

Đã thử nghiệm trên Windows XP và Windows 7, nhưng sẽ hoạt động cho mọi cmd với các tiện ích mở rộng (IIRC, Windows NT trở lên).

Phải được chạy bằng cách sử dụng CMD /V:ON /C batchfileđể mở rộng biến mở rộng bị trì hoãn, nhưng tôi thích điều đó để không thân thiện với codegolf SETLOCAL EnableDelayedExpansionbên trong tệp bó.

@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)

Sẽ là 128 nếu tôi không cần phải biến nó thành một kịch bản phù hợp để bạn có thể đo lường đầu ra.

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

Cách thức hoạt động: chỉ có 23 ký tự duy nhất trong văn bản, do đó, điều này có thể được biểu diễn dưới dạng mã hóa 5 byte. Các ký tự trong chuỗi được mã hóa được chuyển đổi thành số ASCII của chúng ( a.i.), sau đó mỗi số được chuyển thành biểu diễn cơ sở 2 ( #:), sau đó các bit được nhóm thành nhóm năm ( _5>\,), sau đó mỗi nhóm này được chuyển đổi đến giá trị của nó ( #.) và chúng được sử dụng như một chỉ mục trong bảng tra cứu. ( {~).

Bảng tra cứu thực sự cần một số sửa đổi, bởi vì một chuỗi chữ J không thể chứa \n, \rhoặc \0.

Hexdump:

0000000: 7865 7469 735b 6474 756f 2774 7485 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

Bạn có thể nén bảng tra cứu, ví dụ, ('VLI., ',97}.a.)theo một cách nào đó, nó không gây rối cho nghĩa đen khác.
Randomra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.