Menulis kode untuk tiga tugas

8

Ketika Anda menjalankan program Anda terlebih dahulu, itu harus mencetak urutan bilangan bulat. Jalankan kedua harus mencetak lagu 'Mary memiliki domba kecil'. Jalankan ketiga harus menghasilkan file gambar ASCII.

Mencetak gol

Skor Anda akan menjadi jumlah byte kode Anda dan konten file apa pun pada awal masing-masing 3 berjalan. Skor terendah menang.

Sebagai contoh, myprogadalah 1500 byte dan tidak mengubah ukurannya, tetapi menulis file 4 byte setiap kali dijalankan sehingga ia tahu apa yang harus dilakukan pada proses berikutnya. Skornya adalah 1500 + (1500 + 4) + (1500 + 4) = 4508.

Keluaran

Output pertama adalah urutan 133 bilangan bulat ini, dipisahkan oleh spasi tunggal:

0 89 98 179 188 197 269 278 287 296 359 368 377 386 395 449 458 467 476 485
494 539 548 557 566 575 584 593 629 638 647 656 665 674 683 692 719 728
737 746 755 764 773 782 791 809 818 827 836 845 854 863 872 881 890 908
917 926 935 944 953 962 971 980 1079 1088 1097 1169 1178 1187 1196 1259
1268 1277 1286 1295 1349 1358 1367 1376 1385 1394 1439 1448 1457 1466 1475
1484 1493 1529 1538 1547 1556 1565 1574 1583 1592 1619 1628 1637 1646 1655
1664 1673 1682 1691 1709 1718 1727 1736 1745 1754 1763 1772 1781 1790 1808
1817 1826 1835 1844 1853 1862 1871 1880 1907 1916 1925 1934 1943 1952 1961
1970

Output kedua adalah teks ini persis (termasuk huruf besar, tanda baca, dan spasi putih - tanda baca yang tidak konsisten disengaja):

Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school

Output ketiga adalah gambar ini dalam format PPM ASCII (P3) yang tersisa di file bernama blue.ppm. Ini adalah gambar dalam format PNG:

gambar target

File PPM akan terlihat seperti ini:

P3 50 50 255
255 255 255 255 255 255 255 255 255 255 255 255 ...
...
255 255 255

Ada salinan file PPM lengkap di sini .

Contoh jalankan (di Linux)

# ls
myprog
# interpreter myprog
0 89 98 179 188 197 269 278 287 296 359 ...
# interpreter myprog
Mary had a little lamb,
Little ...
# interpreter myprog
# ls
blue.ppm
myprog
# cat blue.ppm
P3 50 50 255
255 255 255 255 255 ...

Aturan

  • Kode Anda dapat dimodifikasi sendiri.
  • Menjalankan program untuk keempat kalinya adalah perilaku yang tidak terdefinisi.
  • Anda dapat menulis ke file di direktori saat ini, tetapi ukuran file ini akan menambah skor Anda di awal setiap proses. File PPM terakhir dikecualikan dari ini.
  • Dua output pertama adalah stdout (atau serupa). Output terakhir ditulis ke file, dengan tidak ada yang dikirim ke stdout.
  • Dua output pertama secara opsional dapat memiliki karakter spasi putih tambahan (mis. Spasi atau umpan baris).
  • Anda tidak boleh menggunakan pustaka kompresi atau gambar. Anda dapat menggunakan fungsi kompresi atau gambar Anda sendiri tetapi kode ini harus disertakan dalam program Anda.
  • Celah standar dilarang.
Ksatria Logika
sumber
1
Masalah besar! Belajar beberapa hal baru sambil menyelesaikannya.
Anmol Singh Jaggi
Apakah file PPM perlu memiliki 256 langkah warna atau haruskah itu hanya dapat menghasilkan gambar yang sama?
Oberon
Apakah file output gambar harus persis seperti yang disebutkan dalam pertanyaan atau apakah ada perbedaan dalam spasi putih? Ini sangat penting untuk jawaban saya karena saya telah mengambil perhatian khusus bahwa baris baru dimasukkan di tempat yang tepat setiap waktu.
Anmol Singh Jaggi
@Oberon dan Anmol Singh Jaggi, PPM harus dalam format P3 dan menunjukkan gambar yang sama persis dengan PNG saat dilihat. Kedalaman bit, ruang putih internal terserah Anda, tetapi itu harus file yang valid.
Logic Knight

Jawaban:

9

Python (897 + 814 + 386 = 2097)

Jawaban modifikasi diri yang sederhana. Saya harus memperbaiki run kedua nanti.

def p(x):print x,
map(p,[0]+filter(lambda x:sum(map(int,`x`))==17,range(1971)))
#l="ittle lamb,";M="Mary ";w=M+"went";e="verywhere that "+w;s="chool one day";I="It followed her to s"+s+"\n";j="augh and play";i="It made the children l"+j;print M+"had a l"+l+"\nL"+l+" l"+l+"\n"+M+"had a l"+l+"\nIts fleece was white as snow\n\n"+"And e"+e+",\n"+w+", "+w+",\nE"+e+"\nThe lamb was sure to go\n\n"+I+"S"+s+", s"+s+"\n"+I+"Which was against the rules.\n\n"+i+",\nL"+j+", l"+j+",\n"+i+"\nTo see a lamb at school"
#print>>file("blue.ppm","w"),"P3 50 50 255"+' '.join(" %i"%(255-255*any(a<y<b and x==c or y==d and e<x<f for a,b,c,d,e,f in[(2,48,2,47,2,37),(9,48,36,9,27,37),(9,41,28,40,9,29),(0,41,10,1,9,49),(0,37,48,36,14,49),(2,37,15,3,2,16)]))*2+" 255"for x in range(50)for y in range(50))
import sys;x=file(sys.argv[0],"r+");y='#'.join(x.read().split('#')[1:]);x.seek(0);x.truncate();x.write(y)

Selain itu, jika dijalankan untuk keempat kalinya, itu akan menurun dengan aman ke NOP:

'.join(x.read().split('#')[1:]);x.seek(0);x.truncate();x.write(y)
Oberon
sumber
Itu akan sulit dikalahkan. Saya bertanya-tanya kapan beberapa kode modifikasi diri licik akan muncul ;-)
Logic Knight
11

Ruby, 1356 1268 * 3 = 3804 byte

if File.file?(?b)
s='P3
50 50
255
'
d=e=0
[153,44,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,4,40,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,34,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,8,31,5,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,37,4,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,36,63].map{|n|n.times{s+=[" 255 255 255"," 0 0 255"][d];s+=$/if (e+=1)%50==0};d=1-d}
File.write 'blue.ppm',s
elsif File.file?(?a)
puts [["","Mary had a ","little lamb",?,,?,,"Its fleece was white as snow"],["And ","everywhere that ","Mary went",?,,'',"The lamb was sure to go"],["","It followed her to ","school one day",'','',"Which was against the rules."],["","It made the children ","laugh and play",?,,'',"To see a lamb at school"]].map{|a,b,c,d,e,f|[a+b+c+d,c.capitalize+', '+c+d,b.capitalize+c+e,f]*$/}*"

"
`touch b`
else
1971.times{|i|$><<"#{i} "if i.to_s.chars.map(&:to_i).reduce(:+)%17<1}
`touch a`
end

Untuk melacak permohonan, saya membuat file kosong apada putaran pertama dan file kosong bpada putaran kedua.

  • Program pertama menggunakan properti nomor tertentu.
  • Program kedua menggunakan banyak bagian yang dapat digunakan kembali dari ayat-ayat tersebut, tetapi saat ini hanya menghemat 100 byte dari pada pencetakan yang naif secara keseluruhan.
  • Program ketiga saat ini hanya menggunakan pengodean run-length sederhana. Saya akan melihat ke dalam sebenarnya pengkodean jalur baris nanti.
Martin Ender
sumber
1
Solusi yang bagus, terutama angka (yang lebih merupakan masalah matematika). Anda dapat menyimpan beberapa byte jika Anda menggantinya i.to_s.chars.map(&:to_i).reduce(:+)dengan(j=i.to_s).sum-48*j.size
blutorange
@blutorange Oh, itu rapi. :) Saya masih ingin mengunjungi kembali generasi gambar. Saya akan mengerjakan saran Anda ke dalamnya ketika saya melakukannya.
Martin Ender
Anda hanya perlu menyimpan bagian dari file sumber Anda untuk menjalankan ke-2 dan ke-3, tetapi mungkin itu bukan keuntungan sebanyak bagian terbesarnya adalah bagian 3 saat ini. Dengan run-length coding baris kode run-length Anda bisa meningkatkan bagian 3 banyak.
randomra
2

Python 3, 1027 + 1028 + 1029 = 3084

0 or print('0 '+' '.join(str(i)for i in range(1971)if sum(map(int,str(i)))==17))
1 or print("""+$,
L$, l$,
+$,
Its fleece was white as snow

And e(@,
@, @,
E(@
The!was sure to go

#&
S&, s&
#&
Which was against the rules.

%l/,
L/, l/,
%l/
To see a!at school""".translate({43:'Mary had a l',36:'ittle lamb',40:'verywhere that ',64:'Mary went',35:'It followed her to s',38:'chool one day',47:'augh and play',37:'It made the children ',33:' lamb '}))
q=[153,44]+[e-63for e in b'E@i@E@i@E@i@E@i@E@i@E@i@CgD@C@@@c@D@C@@@c@D@C@@@c@D@C@@@c@D@C@@aB@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@G^D@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@GdC@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@Mc~?']
1 or open("blue.ppm","w").write("P3\n50 50\n255\n"+' '.join(q[r*2]*'255 255 255 '+q[r*2+1]*'0 0 255 'for r in range(140)).strip())
f=open(__file__);l=f.read();f.close();open(__file__,"w").write(l.replace("0 or","0 and",1).replace("1 or","0 or",1))

Menggunakan OEIS A166370 untuk angka-angka, beberapa kompresi tulisan tangan untuk Mary's Lamb dan ASCII byte untuk menyimpan jumlah angka dalam PPM.

(Ab) menggunakan fitur Python untuk hanya mengevaluasi nilai kedua untuk operator logis jika hasilnya belum diketahui (korsleting): 1 or codedan 0 and codetidak mengevaluasi code. Kemudian menggunakan beberapa pengganti untuk mengubah 0 oreksekusi kode yang memungkinkan untuk 0 anddan berikutnya 1 oruntuk 0 or.

Eksekusi ketiga membunuh pengganti kedua, karena tidak ada lagi 1 or. Eksekusi ke-4 membunuh penggantian pertama, setelah itu kode pada dasarnya tidak melakukan apa pun.

PurkkaKoodari
sumber
2

C ++, 1204 * 3 = 3612 byte

Kompiler yang digunakan - GCC 4.9.2 dengan -std=c++14flag

#include<bits/stdc++.h>
int i,j,c;
using namespace std;int main(){fstream f("F"),g("G");if(!f){while(i<=1970){j=i,c=0;while(j)c+=j%10,j/=10;if(c==17||i==0)cout<<i<<" ";i++;}ofstream f("F");}else if(f&&!g){cout<<R"(Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school)";ofstream g("G");}else{ofstream F("blue.ppm");F<<"P3 50 50 ";vector<int> L={1,2,4,10,13,16,19,25,28,43,76,103,109,127,190,460};vector<string> R={"1","?","43","10","6","161=","1","14","39","10","4","1514121<","1","151412","33","10","12","1315141;","1","13151417","30","10","1","1514171","7",":1814171","36","01","1","41","11",";191","35","01","1",">"},C={"255","0"};string r;i=j=0;while(i<R.size()){stringstream S(R[i]);S>>c;while(c--)r+=R[i+1];i+=2;}i=0;while(i<r.size()){c=L[r[i]-48];while(c--){F<<C[j]<<" ";}j=1-j;i++;}}}

Penjelasan -:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    fstream f( "F" ), g( "G" ); // Creating empty files so that the program can decide when to run which task

    /**************************** TASK 1 ****************************/

    if ( !f ) // Print all the numbers within the range whose sum of digits is 17
    {
        for ( int i = 0; i <= 1970; i++ )
        {
            int j = i, c = 0;
            while ( j )
            {
                c += j % 10, j /= 10;
            }
            if ( c == 17 || i == 0 )
            {
                cout << i << " ";
            }
        }       
        ofstream f( "F" );
    }

    /**************************** TASK 2 ****************************/

    else if ( f && !g )  // Print the second task as it is using raw literals
    {
        cout << R"(Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school)";

        ofstream g( "G" );
    }

    /**************************** TASK 3 ****************************/

    else // Third task using Run-Length encoding
    {
        ofstream F( "blue.ppm" );
        F << "P3 50 50 ";

        /*
        L = set of all the lengths found during run-length encoding.
        R = vector containing the run-length encoding of "255" and "0" alternatingly.
                {1,"?") means 1 times print '255'/'0' "x" number of times where x = L[ASCII(?)-48] = L[15] = 469
        C = vector containing the two strings to be printed alternatingly.
        */

        vector<int> L = {1, 2, 4, 10, 13, 16, 19, 25, 28, 43, 76, 103, 109, 127, 190, 460};
        vector<string> R = {"1", "?", "43", "10", "6", "161=", "1", "14", "39", "10", "4", "1514121<", "1", "151412", "33", "10", "12", "1315141;", "1", "13151417", "30", "10", "1", "1514171", "7", ":1814171", "36", "01", "1", "41", "11", ";191", "35", "01", "1", ">"};
        vector<string> C = {"255", "0"};
        string r; // Contains the normal/expanded version of R
        i = j = 0;

        while ( i < R.size() ) // Expanding "R" into normal form and putting it into "r"
        {
            stringstream S( R[i] );
            S >> c; // Convert R[i] to its integer representation and put it in "c" with the help of stringstream.
            while ( c-- )
            {
                r += R[i + 1];
            }
            i += 2;
        }

        i = 0;
        while ( i < r.size() )
        {
            c = L[r[i] - 48];  // "c" is the number of times the current character has to be printed consecutively.
            while ( c-- )
            {
                F << C[j] << " ";
            }
            j = 1 - j; // Alternate "255" and "0"
            i++;
        }
    }
}
Anmol Singh Jaggi
sumber
1

PHP (1552 * 3) +2 = 4658

Ada BANYAK golf yang bisa dibuat.

Kode menulis 1 byte ke file lain bernama z, untuk memeriksa status.

Ini kodenya:

<?$Y=base64_decode;$Z=gzdecode;$r=file_put_contents;switch(include z){case 2:$M=Mary;$l=lamb;$L=ittle;$H="$M had a l$L $l,";echo"$H
L$L $l, l$L $l,
$H
Its fleece was white as snow
";$W="$M went";$H="verywhere that $W";echo"
And e$H,
$W, $W,
E$H
The $l was sure to go
";$S=chool;$O="$S one day";$I="
It followed her to s$O";echo"$I
S$O, s$O$I
Which was against the rules.";$L="augh and play";$I="
It made the children l$L";echo"$I,
L$L, l$L,$I
To see a $l at s$S";$r(z,3);break;case 3:$r($Z($Y("H4sIAAAAAAAAA+3ay63CMBSE4X2qSAkRKH3QfzXAmkf8mBOfiX9dRXcBfIJ47Ewwj/uyb+u+Lbd9fx+r4gACAgICApoO2l5/Jf+X0icCfT4gG7ka0DSQQMdPOopB9bv5BpqeG6D2F8tjQK6AImJAroAiYkCugCJiQK6AemKQ51bWF+oaxe6Rk2DhAQUKjIIEIU9Xg8gTkBIiT0BKKG+e8nXMcVBRDFr3oyQIq4ADVLW1JNnfbEYkafYcJR+oatZLtrebEfluPVAAVDNKkn3yZoQfazhAvXkaW4WNTvQkEIUcSAlRyIGUEIUcSApRyIGUEIUcSAlRyIGUEIUcSAlRyH+/w/H7qudDXUHMf+nhpq4NGlM28196KOFtx5iy6XPpyTdiyaEhZdPg3p0S3gaN+baOAnVViAKV6bz4QxSoTOflAhAF6v95yfdVTT7otOEPCSNQ+Sgl/1jc9RhAhrOfux8HyG/2Gy6xE0J+v+AyXGInhAxnv98SOyFkOPspWA6Q3+w3XGInhChYQBGQ4ez3W2InhAxnPwXLAfKb/RfYvQqH8o0aENBJ0BPXPoC/PXEAAA==")),'blue.ppm');$r(z,1);break;default:echo$Z($Y("H4sIAAAAAAAAAxXSuQHAMAwCwFUYIehF+y8WXCWWaDj7gw4ncA+Uv7eIOcQKIf/fIPuQI+QuUj5fo+pQLdQsagclz67QeegSuhc9g95Gy/NLTBwmhanF9GCmMVsYeXeB5WFD2FxsDbYbO4XdxMr7I/QdREGxUA5UDXVBk9AGJGfuw33CcXExuGxcFa4TN4FbuvIHfq/091p/rk26N+nipN7R1RnuznB5htsz9GbuzzQA0wJMEzBtwNRbWIFlBpYdWIZgWYJlCpbe1hhsa7DNwbYH2yBsi7BNwtaLGIVjFY5ZOHbhGIZjGY5pOLbh6OWswzUPl+8+DcS1ENdEXBtxjcS1kku+sJ0oQ1GWokxF2YoyFmUtylzG4HsbDt/n3NG5C+cunbty7tq5G7738/3WJLxlVAIAAA=="));$r(z,2);}

Saya tahu bahwa ini adalah kode yang SANGAT mengerikan dan saya bisa mencoba daftar golf.

Tapi hei, saya tidak dapat menemukan pola pada mereka: /

Ismael Miguel
sumber
Saya dapat melihat bahwa Anda telah mengompresi gambar di baris terakhir, dan meminimalkan ukuran lagu anak domba di baris lain, tapi saya tidak bisa melihat di mana urutan bilangan bulat. Saya butuh bimbingan.
Logic Knight
@CarpetPython Lebih banyak kompresi. Itu bagian terakhir.
Ismael Miguel
Terima kasih. Jika Anda mencari pola dalam urutan bilangan bulat, beberapa jawaban lain mungkin memberi Anda beberapa petunjuk. mis: digit angka memiliki properti yang menarik.
Logic Knight
@CarpetPython Saya bukan copy-cat. Tapi aku memang melihat jawaban yang lain, tetapi masih belum menemukan polanya.
Ismael Miguel
1

Ruby, 691 + 612 + 225 = 1528 byte

Lain jawaban memodifikasi diri, kali ini dalam ruby. Saya baru saja menabrak ini kemarin dan penekanan puisi itu menarik perhatian saya. Saya hanya bisa menghemat 92 byte dari pemikiran teks mentah.

puts (0..1970).select{|i|eval(i.to_s.gsub /\B/,'+')%17<1}*' '
File.write $0,%@
m='lamb:little 0,:Mary :2had a 1:2went:laugh and play:It made the children 5:It followed her to 10: was : that :11 one day:school:everywhere:3
1 1
3
Its fleece8white as snow

And 1294,
4, 4,
1294
The 08sure to go

7
10, 10
7
Which8against the rules.

6,
5, 5,
6
To see a 0 at 11'
12.downto(0){|i|m.gsub! i.to_s,m.split(':')[i]}
puts m.split(':')[13].gsub /^./,&:upcase
File.write $0,%!a=[1]
s=[16,13]
File.write 'blue.ppm',(' P3
50 50 '+[460,a*43,[19,127]*6,13,a*39,[s,4,109]*4,s,4,a*33,10,s,[103,10,s]*12,25,a*30,s,25,[76,28,13,25]*7,a*36,13,[103,43]*11,a*35,190].flatten.map{|i|('255 '*i)+'0 0 '}*' ')[1..-6]!@

Setiap menjalankan program menulis ulang program untuk menjalankan selanjutnya. Saya tidak mengetahui properti khusus dari angka-angka sampai melihat ke jawaban yang lain. Dan memang mengambil inspirasi yang sama dengan jawaban Martin, tetapi saya tidak menggunakan saran dari blutorange karena saya tidak tahu mengapa itu berhasil.

Mungkin ada beberapa byte lagi untuk mengais dari puisi tetapi tidak banyak. Ini pada dasarnya hanya subbing dalam urutan umum dan menggunakan urutan urutan sebagai bagian untuk mengganti.

Untuk bagian terakhir, saya mem-encode semua 255 byte ke dalam array dan menempelkannya bersama-sama dengan nol. Dan kemudian saya mengkodekan urutan berulang dalam array itu.

David Horne
sumber
0

JavaScript + HTML, 3909 byte

Ini adalah aplikasi HTML / JavaScript yang menggunakan pemuatan ulang halaman untuk menjalankan kembali file. Saya melakukan kesalahan pada penguraian PPM. Jika Anda tahu cara membaca file PPM, beri tahu saya. Stack Exchange tidak memungkinkan penyimpanan lokal. Jadi, Anda harus menjalankan JSFiddle.

Sekali lagi, saya tahu saya mengebom file ppm.

Namun pada akhirnya:

JavaScript : 1.232 byte * 3 = 3696

HTML : 71 byte * 3 = 213

Total : 3909

JSFiddle

var mary = '</br>\
Mary had a little lamb,</br>\
Little lamb, little lamb,</br>\
Mary had a little lamb,</br>\
Its fleece was white as snow</br>\
</br>\
And everywhere that Mary went,</br>\
Mary went, Mary went,</br>\
Everywhere that Mary went</br>\
The lamb was sure to go</br>\
</br>\
It followed her to school one day</br>\
School one day, school one day</br>\
It followed her to school one day</br>\
Which was against the rules.</br>\
</br></br>\
It made the children laugh and play,</br>\
Laugh and play, laugh and play,</br>\
It made the children laugh and play</br>\
To see a lamb at school\
';
var img = '<img src="http://i.stack.imgur.com/sHCba.png"/>'

function run() {
  var step = localStorage.getItem("step");
  step++;
  localStorage.setItem("step", step);
  $('#step').text(step);
  var r = $('#results')
  switch (step) {
    case 1:
      for (var i = 0; i < 133; i++) {
        r.append(i + 1 + ' ');
      }
      break;
    case 2:
      r.html(mary);
      break;
    case 3:
      r.html(img);
      localStorage.setItem("step", 0);
      break;
    default:
      localStorage.setItem("step", 0);
      break;
  }
}
run();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Step: <span id='step'></span>
</label>
<div id='results'></div>

Neoaptt
sumber
Hai @Neoaptt dan selamat datang di PPCG. Anda mungkin perlu membaca pertanyaan dengan hati-hati untuk memastikan jawaban Anda memenuhi persyaratan. Urutan integer Anda tidak cocok dengan urutan yang diperlukan, dan gambar tidak ditulis ke file dalam format PPM. Inti dari pertanyaan ini adalah untuk menantang Anda untuk menyimpan tiga output dengan cara terkompresi di dalam program Anda, dengan mengeksploitasi pola. Juga tidak mengunduh file dari jaringan adalah salah satu 'celah standar' yang dilarang dalam pertanyaan.
Logic Knight
Anda dapat membaca celah ini di meta.codegolf.stackexchange.com/questions/1061/… .
Logic Knight