Metapoem equinox

8

Objektif:

  • Tulis satu program yang menampilkan kode sumber untuk program lain yang mengeluarkan kata-kata.

Informasi Umum:

  • Bahasa pemrograman apa pun.

Aturan:

  1. Program Anda seharusnya tidak mengambil input apa pun. (dari pengguna, nama file, jaringan atau apa pun).
  2. Kode sumber program yang dihasilkan tidak boleh dalam bahasa pemrograman yang sama dengan aslinya.
  3. Output dari program yang dihasilkan harus persis setiap karakter ketiga dari kode sumber asli, mulai dari karakter # 3 (karakter pertama dalam kode sumber adalah # 1).
  4. Batasan kode sumber: Maksimum 1500 karakter
  5. Batasan kode sumber untuk program yang dibuat: Maksimum 250 karakter

Penilaian didasarkan pada output dari program yang dihasilkan, Anda mendapatkan poin untuk kata-kata berikut (kombinasi huruf besar / kecil):

me - 2 points
ore - 3 points
freq - 5 points
pager - 7 points
mentor - 11 points
triumph - 13 points
equipage - 17 points
equipment - 19 points
equivalent - 23 points
equilibrium - 29 points
unubiquitous - 31 points
questionnaire - 37 points

Setiap kata dapat diulang tetapi kehilangan 1 poin untuk setiap pengulangan. Sebagai contoh:

  • empat dari Equilibrium(di sembarang tempat) dalam output memberikan: 29 + 28 + 27 + 26 poin.

Huruf dalam output dapat digunakan dalam lebih dari satu kata, misalnya:

  • equipager= equipagedan pager= 17 + 7 poin.

Kemenangan skor terbaik. Semoga berhasil, selamat bersenang-senang!

Plarsen
sumber
1
Saya tidak mendapatkan Aturan 3! Apa maksudmu? Bisakah Anda menuliskan contoh?
Vereos
Jika source adalah ini: print("hello")maka output dari kode yang dihasilkan harus tepat: i(eo. Output dari kode yang dihasilkan dapat mencapai maksimum 500 karakter (karena kode sumber asli dibatasi hingga 1500 karakter).
Plarsen
2
@ Plarsen: Tidakkah seharusnya Anda memperbarui pertanyaan Anda? Sekarang tertulis "Maksimum 250 karakter" untuk program yang dihasilkan, tetapi dalam komentar Anda, Anda mengatakan "500 karakter".
ProgramFOX
1
ukuran kode sumber maksimum untuk program yang dihasilkan adalah 250, tetapi dapat menghasilkan hingga 500 karakter (jika kode sumber asli adalah 1500 karakter)
Plarsen
Apakah saya benar dalam berpikir bahwa 'mentor' dan 'peralatan' harus mendapatkan bonus 2 poin karena mengandung 'saya'?
Kendall Frey

Jawaban:

2

Befunge-98, menghasilkan skrip zsh: 150 1053 1113 1139 poin

Program Befunge-98 (1500)

:#q #u!#e!#sa#t7#i6#o*#n*#n*#aj#ib#r9#e*#q:#u:#i:#p:#a:#g:#e:#r:#e:#q3#u+#i,#pc#m+#e,#nf#t+#o,#r4#e8#q*#u,#i6#l+#i:#b,#r4#i8#u*#m,#e,#qb#u+#i:#p:#m:#e:#n:#t,#o4#r8#e*#q,#u,#i4#l8#i*#b,#r,#i4#u8#m*#u,#n,#u4#b8#i*#q,#u,#i4#t8#o*#u,#s,#q4#ua#e*#s-#t,#i2#o+#n,#n,#a5#i+#r,#ec#q+#u,#i4#v8#a*#l,#e9#n5#t*#-,#qb#ua#e*#s,#t4#i8#o*#n,#n #a #i #r #e #q #u #i #p #a #g #e #r #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #u #n #u #b #i #q #u #i #t #o #u #s #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #v #a #l #e #n #t #- #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #p #a #g #e #r #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #u #n #u #b #i #q #u #i #t #o #u #s #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #v #a #l #e #n #t #- #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #p #a #g #e #r #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #u #n #u #b #i #q #u #i #t #o #u #s #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #v #a #l #e #n #t #- #q #u #e #s #t #i #o #n #n #a #i #r #e #q #u #i #p #a #g #e #r #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #e #q #u #i #p #m #e #n #t #o #r #e #q #u #i #l #i #b #r #i #u #m #u #n #u #b #i #q #u #i #t #o #u #s:#q2#u+#e0#sg#t,#i3#o+#n:#n #a3#i9#rb#e*#q*#u #i`#v #a!#l #e1#n+jt@#-

menghasilkan skrip shell zsh (127)

for i in n n n n n;echo -n questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-

yang pada gilirannya tentu saja menghasilkan (500)

questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-

ketika dieksekusi. Ini bernilai 1139 poin (dengan anggapan kalkulasi saya benar).

Versi awal (disimpan di sini karena lebih mudah untuk mencoba memahami)

Program Befunge-98

:#m #e!#n!#tb#o9#r*#e*#qj#ub#i9#l*#i:#b:#r:#u2#m+#f,#r,#e5#q+#u,#ec#s+#t,#i8#o4#n*#n,#a #r #i #e #q #u #i #p #m #e #n #t #r #i #u:#m2#p+#h0#ug#n,#u3#b+#i:#qf#uf#i*#t`#o5ju @s#_

menghasilkan skrip Bourne shell (termasuk banyak spasi tambahan)

echo mentorequilibrumfrequestionnariequipmentriumphunubiquitous                  

Berikut adalah program yang sama ditransformasikan, agar lebih mudah dibaca.

: !!b9**jb9*:::2+,,5+,c+,84*,              :2+0g,3+:ff*`5 #
########################################################j@_
mentorequilibrumfrequestionnariequipmentriumphunubiquitous
FireFly
sumber
Saya tahu seseorang akan menggunakan gema sebagai langkah kedua pada akhirnya. :)
Kendall Frey
Saya mempertimbangkan untuk meninggalkannya dan memanggil bahasa target "Bahasa Inggris" atau "/ bin / kucing", tapi itu mungkin sedikit curang. : P
FireFly
2

Shellscript dan Python - 514 Poin

Kiriman saya ditulis dalam shellscript:

echo   print"'h rthtq""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""q""u""e""s""t""i""o""n""n""a""i""r""e""u""n""u""b""i""q""u""i""t""o""u""s""u""n""u""b""i""q""u""i""t""o""u""s""u""n""u""b""i""q""u""i""t""o""u""s""u""n""u""b""i""q""u""i""t""o""u""s""u""n""u""b""i""q""u""i""t""o""u""s""e""q""u""i""l""i""b""r""i""u""m""e""q""u""i""l""i""b""r""i""u""m""e""q""u""i""l""i""b""r""i""u""m""e""n""t""o""r""e""q""u""i""p""m""e""n""t""o""r""e""q""u""i""p""m""e""n""t""o""r""e""q""u""i""p""m""e""n""t""o""r'"

Ini akan menampilkan kode python berikut (249 karakter):

print'h rthtquestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnaireunubiquitousunubiquitousunubiquitousunubiquitousunubiquitousequilibriumequilibriumequilibriumentorequipmentorequipmentorequipmentor'

Output siapa berisi:

8 * questionnaire: 37+36+35+34+33+32+31+30
5 * unubiquitous: 31+30+29+28+27
3 * equipment: 19+18+17
4 * mentor: 11+10+9+8
3 * ore: 3+2+1
6 * me: 2+1

dengan total 514 Poin.

Tidak terlalu canggih, saya yakin orang lain bisa melakukan yang lebih baik :)

quasimodo
sumber
1
Mungkin Anda dapat memasukkan lebih banyak barang jika Anda mengatur ulang sehingga berbunyi "questionairequipmentor"
Justin
Setuju dengan Quincunx, selain itu saya percaya orang dapat memiliki keuntungan membuat algoritma dalam kode yang dihasilkan yang mengambil keuntungan dari seringnya menggunakan karakter q u i edalam kata-kata yang paling berharga untuk membuat output 500 karakter. Tapi saya tidak yakin
Plarsen
2

JavaScript & REBEL - 198

Program awal:

console.log( "nll(llf  r  e  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  u  n  u  b  i  q  u  i  t  o  u  s  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  v  a  l  e  n  t  r  i  u  m  p  h  e  q  u  i  l  i  b  r  i  u  m+.+ +.$0+;/ + +//.+/$>$0")+0 ;

Program yang dihasilkan:

nll(llf  r  e  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  u  n  u  b  i  q  u  i  t  o  u  s  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  v  a  l  e  n  t  r  i  u  m  p  h  e  q  u  i  l  i  b  r  i  u  m+.+ +.$0+;/ + +//.+/$>$0

Keluaran:

nll(llfrequestionnairequipagerunubiquitousequipmentorequivalentriumphequilibrium+.+ +.$0+;

Catatan:

Setiap kata adalah output tepat sekali, kecuali "saya" yang merupakan output dua kali.

Anda akan melihat bahwa program yang dihasilkan panjangnya tepat 250 karakter. Saya tidak memperhatikan ini sampai ditulis. Saya menganggap diri saya beruntung.

Kendall Frey
sumber
2

Python yang menghasilkan C, 947

##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s##q##u##e##s##t##i##o##n##n##a##i##r##e##q##u##i##p##a##g##e##r##e##q##u##i##p##m##e##n##t##o##r##e##q##u##i##v##a##l##e##n##t##r##i##u##m##p##h##u##n##u##b##i##q##u##i##t##o##u##s
print 'main(i,j){for (i=0;i<7;i++) printf("questionnairequipagerequipmentorequivalentriumphunubiquitous");printf("a(jf =i;+pn(utniqpeqpnruanipniiu)rt\"a(jf =i;+pn(utniqpeqpnruanipniiu)rt\"j=+(nppuii)\\)");}'

Saya menggunakan kata-kata terpanjang (yang memberikan skor terbaik) dan kata-kata yang tumpang tindih (equip-pager, seperti contohnya). Beginilah skornya dihitung:

saya = 2 + 1 + 0 + 0 + 0 + 0 + 0 = 3
ore = 3 + 2 + 1 + 0 + 0 + 0 + 0 = 6
pager = 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28
mentor = 11 + 10 + 9 + 8 + 7 + 6 + 5 = 56
kemenangan = 13 + 12 + 11 + 10 + 9 + 8 + 7 = 70
melengkapi = 17 + 16 + 15 + 14 + 13 + 12 + 12 + 11 = 98
peralatan = 19 + 18 + 17 + 16 + 15 + 14 + 13 = 112
setara = 23 + 22 + 21 + 20 + 19 + 18 + 17 = 140 tidak
sesuai = 31 + 30 + 29 + 29 + 28 + 27 + 26 + 25 = 196
kuesioner = 37 + 36 + 35 + 34 + 33 + 32 + 31 = 238

Totalnya adalah 947 .

Sunting: sekarang program yang dihasilkan harus menampilkan "persis setiap karakter ketiga dari kode sumber asli" :)

Gabriele D'Antona
sumber
Bagus! Apakah kode C yang Anda hasilkan benar-benar mencetak persis setiap karakter ketiga SEMUA kode Python Anda? Saya juga berpikir Anda lupa menghitung poin Anda untuk kata-kata oredan me:)
Plarsen
Saya berasumsi bahwa kode yang dihasilkan tidak harus mengeluarkan SEMUA kode Python (mungkin saya salah menafsirkan kalimat "persis setiap karakter ketiga dari kode sumber asli"). Akan mencoba memperbaikinya.
Gabriele D'Antona
2

Javascript dan Golfscript - 1074 poin

Javascript (1500 karakter):

/*e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  m  e  n  t  o  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  a  g  e  r  e  q  u  i  l  i  b  r  i  u  m  u  n  u  b  i  q  u  i  t  o  u  s  q  u  e  s  t  i  o  n  n  a  i  r  e  q  u  i  p  m  e  n  t  o  r*/console.log(  "5{ 2{'equilibriumunubiquitousquestionnairequip'   'ager'}*   'mentor' \\;}*  'cseo 52eibuniiuutniqp ar* eo ; co2biui *o 2u*22  '" ); 

Generated Golfscript (128 chars): Tes GolfScript online

5{ 2{'equilibriumunubiquitousquestionnairequip'   'ager'}*   'mentor' \;}*  'cseo 52eibuniiuutniqp ar* eo ; co2biui *o 2u*22  ' 

Output (500 karakter):

equilibriumunubiquitousquestionnairequipagerequilibriumunubiquitousquestionnairequipmentorequilibriumunubiquitousquestionnairequipagerequilibriumunubiquitousquestionnairequipmentorequilibriumunubiquitousquestionnairequipagerequilibriumunubiquitousquestionnairequipmentorequilibriumunubiquitousquestionnairequipagerequilibriumunubiquitousquestionnairequipmentorequilibriumunubiquitousquestionnairequipagerequilibriumunubiquitousquestionnairequipmentorcseo 52eibuniiuutniqp ar* eo ; co2biui *o 2u*22  

Skor:

10 * questionnaire (37+36+35+34+33+32+31+30+29+28)    = 325
10 * unubiquitous  (31+30+29+28+27+26+25+24+23+22)    = 265
10 * equilibrium   (29+28+27+26+25+24+23+22+21+20)    = 245
5  * equipage      (17+16+15+14+13)                   = 75
5  * pager         (7+6+5+4+3)                        = 25
5  * equipment     (19+18+17+16+15)                   = 85
5  * mentor        (11+10+9+8+7)                      = 45
4  * ore           (3+2+1)                            = 6
10 * me            (2+1)                              = 3

Total: 1074

UPDATE: Berhasil mendapatkan beberapa poin dengan mengubah loop GolfScript dari 3 * 3 ke 5 * 2.

Plarsen
sumber