Metapoem-Äquinoktium


8

Zielsetzung:

  • Schreiben Sie ein Programm, das den Quellcode ausgibt, für ein anderes Programm, das Wörter ausgibt.

Allgemeine Information:

  • Beliebige Programmiersprache.

Regeln:

  1. Ihre Programme sollten keine Eingaben annehmen. (von Benutzer, Dateiname, Netzwerk oder irgendetwas).
  2. Der generierte Programmquellcode darf nicht in derselben Programmiersprache wie das Original sein.
  3. Die Ausgabe des generierten Programms sollte genau jedes dritte Zeichen des ursprünglichen Quellcodes sein, beginnend mit Zeichen 3 (das erste Zeichen im Quellcode ist 1).
  4. Quellcode-Einschränkungen: Maximal 1500 Zeichen
  5. Quellcode-Einschränkungen für das generierte Programm: Maximal 250 Zeichen

Die Bewertung basiert auf der Ausgabe des generierten Programms. Sie erhalten Punkte für die folgenden Wörter (eine beliebige Kombination aus Groß- / Kleinbuchstaben):

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

Jedes Wort kann wiederholt werden, verliert jedoch 1 Punkt für jede Wiederholung. Zum Beispiel:

  • Vier von Equilibrium(an einer beliebigen Stelle) in der Ausgabe ergeben: 29 + 28 + 27 + 26 Punkte.

Buchstaben in der Ausgabe können in mehr als einem Wort verwendet werden, zum Beispiel:

  • equipager= equipageund pager= 17 + 7 Punkte.

Das beste Ergebnis gewinnt. Viel Glück und viel Spass!


1
Ich verstehe die Regel 3 nicht! Was meinst du? Können Sie ein Beispiel aufschreiben?
Vereos

Wenn der Quellcode folgendermaßen lautet: print("hello")Die Ausgabe des generierten Codes muss genau sein : i(eo. Die Ausgabe des generierten Codes kann daher maximal 500 Zeichen lang sein (da der ursprüngliche Quellcode auf 1500 Zeichen begrenzt ist).
Plarsen

2
@Plarsen: Solltest du deine Frage dann nicht aktualisieren? Jetzt heißt es "Maximal 250 Zeichen" für das generierte Programm, aber in Ihrem Kommentar sagen Sie "500 Zeichen".
ProgramFOX

1
Die maximale Quellcode-Größe für das generierte Programm beträgt 250, es können jedoch bis zu 500 Zeichen ausgegeben werden (wenn der ursprüngliche Quellcode 1500 Zeichen umfasst)
Plarsen,

Habe ich Recht, wenn ich denke, dass "Mentor" und "Ausrüstung" einen Bonus von 2 Punkten erhalten sollten, wenn sie "mich" enthalten?
Kendall Frey

Antworten:


2

Befunge-98, erzeugt zsh-Skript: 150 1053 1113 1139 Punkte

Das Befunge-98-Programm (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@#-

erzeugt das zsh-Shell-Skript (127)

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

was wiederum natürlich ausgibt (500)

questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-

wenn ausgeführt. Dies ist 1139 Punkte wert (vorausgesetzt, meine Berechnungen sind korrekt).

Frühe Version (hier gespeichert, weil es viel einfacher zu verstehen ist)

Das Befunge-98-Programm

:#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#_

erzeugt das Bourne-Shell-Skript (einschließlich einer Reihe von Leerzeichen)

echo mentorequilibrumfrequestionnariequipmentriumphunubiquitous                  

Hier ist das gleiche Programm transponiert, um das Lesen zu erleichtern.

: !!b9**jb9*:::2+,,5+,c+,84*,              :2+0g,3+:ff*`5 #
########################################################j@_
mentorequilibrumfrequestionnariequipmentriumphunubiquitous

Ich wusste, dass irgendwann jemand Echo als zweiten Schritt verwenden würde. :)
Kendall Frey

Ich überlegte, es wegzulassen und die Zielsprache "Englisch" oder "/ bin / cat" zu nennen, aber das wäre wahrscheinlich ein bisschen betrügerisch. : P
FireFly

2

Shellscript und Python - 514 Punkte

Mein Beitrag ist in Shellscript geschrieben:

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'"

Es wird der folgende Python-Code (249 Zeichen) ausgegeben:

print'h rthtquestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnaireunubiquitousunubiquitousunubiquitousunubiquitousunubiquitousequilibriumequilibriumequilibriumentorequipmentorequipmentorequipmentor'

Wessen Ausgabe enthält:

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

für insgesamt 514 Punkte.

Nicht sehr raffiniert, ich bin sicher, andere können es besser machen :)


1
Vielleicht können Sie mehr Sachen
Justin

Stimmen Sie mit Quincunx überein, außerdem glaube ich, dass man den Vorteil haben kann, einen Algorithmus im generierten Code zu erstellen, der die häufige Verwendung der Zeichen q u i ein den Wörtern nutzt, die am wertvollsten sind, um eine Ausgabe mit 500 Zeichen zu erstellen. Aber ich bin nicht sicher
Plarsen

2

JavaScript & REBEL - 198

Erstprogramm:

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 ;

Generiertes Programm:

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

Ausgabe:

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

Anmerkungen:

Jedes Wort wird genau einmal ausgegeben, außer "ich", das zweimal ausgegeben wird.

Sie werden feststellen, dass das generierte Programm genau 250 Zeichen lang ist. Ich habe das erst bemerkt, als es geschrieben wurde. Ich betrachte mich als glücklich.


2

Python, das C, 947 ausgibt

##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)\\)");}'

Ich verwende die längsten Wörter (die die beste Punktzahl ergeben) und auch überlappende Wörter (Equipage-Pager, wie im Beispiel). So wird die Punktzahl berechnet:

me = 2 + 1 + 0 + 0 + 0 + 0 + 0 = 3
Erz = 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
Triumph = 13 + 12 + 11 + 10 + 9 + 8 + 7 = 70
Ausrüstung = 17 + 16 + 15 + 14 + 13 + 12 + 11 = 98
Ausrüstung = 19 + 18 + 17 + 16 + 15 + 14 + 13 = 112
Äquivalent = 23 + 22 + 21 + 20 + 19 + 18 + 17 = 140 nicht
allgegenwärtig = 31 + 30 + 29 + 28 + 27 + 26 + 25 = 196
Fragebogen = 37 + 36 + 35 + 34 + 33 + 32 + 31 = 238

Insgesamt ist 947 .

Bearbeiten: Jetzt sollte das generierte Programm "genau jedes dritte Zeichen aus dem ursprünglichen Quellcode" ausgeben :)


Nett! Druckt Ihr generierter C-Code tatsächlich genau jedes dritte Zeichen ALLEN Ihrer Python-Codes? Ich denke auch, dass Sie vergessen haben, Ihre Punkte für die Wörter zu zählen oreund me:)
Plarsen

Ich nahm an, dass der generierte Code nicht den gesamten Python-Code ausgeben muss (möglicherweise habe ich den Satz "genau jedes dritte Zeichen aus dem ursprünglichen Quellcode" falsch interpretiert). Ich werde versuchen, das zu beheben.
Gabriele D'Antona

2

Javascript und Golfscript - 1074 Punkte

Javascript (1500 Zeichen):

/*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  '" ); 

Generiertes Golfscript (128 Zeichen): Testen Sie GolfScript online

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

Ausgabe (500 Zeichen):

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

Ergebnis:

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

Gesamt: 1074

UPDATE: Durch Ändern der GolfScript-Schleifen von 3 * 3 auf 5 * 2 konnten einige Punkte erzielt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.