Metapoem equinoccio

8

Objetivo:

  • Escriba un programa que genere código fuente para otro programa que genere palabras.

Información general:

  • Cualquier lenguaje de programación.

Reglas:

  1. Sus programas no deben tomar ninguna entrada. (del usuario, nombre de archivo, red o cualquier cosa).
  2. El código fuente del programa generado no debe estar en el mismo lenguaje de programación que el original.
  3. La salida del programa generado debe ser exactamente cada tercer carácter del código fuente original, comenzando en el carácter # 3 (el primer carácter en el código fuente es # 1).
  4. Restricciones del código fuente: máximo 1500 caracteres
  5. Restricciones del código fuente para el programa generado: máximo 250 caracteres

La puntuación se basa en la salida del programa generado, obtienes puntos por las siguientes palabras (cualquier combinación de mayúsculas / minúsculas):

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

Cada palabra puede repetirse pero pierde 1 punto por cada repetición. Por ejemplo:

  • cuatro de Equilibrium(en cualquier lugar) en la salida da: 29 + 28 + 27 + 26 puntos.

Las letras en la salida se pueden usar en más de una palabra, por ejemplo:

  • equipager= equipagey pager= 17 + 7 puntos.

Mejor puntaje gana. ¡Buena suerte, diviértete!

Plarsen
fuente
1
¡No entiendo la Regla 3! ¿Qué quieres decir? ¿Puedes escribir un ejemplo?
Vereos
Si el código fuente es el siguiente: print("hello")a continuación, la salida del código generado debe ser exactamente: i(eo. La salida del código generado puede tener un máximo de 500 caracteres (ya que el código fuente original está limitado a 1500 caracteres).
Plarsen
2
@Plarsen: ¿No deberías actualizar tu pregunta entonces? Ahora dice "Máximo 250 caracteres" para el programa generado, pero en su comentario dice "500 caracteres".
ProgramFOX
1
el tamaño máximo del código fuente para el programa generado es 250, pero puede generar hasta 500 caracteres (si el código fuente original es 1500 caracteres)
Plarsen
¿Estoy en lo cierto al pensar que 'mentor' y 'equipo' deberían obtener una bonificación de 2 puntos por contener 'yo'?
Kendall Frey

Respuestas:

2

Befunge-98, produce script zsh: 150 1053 1113 1139 puntos

El programa 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@#-

produce el script de shell zsh (127)

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

que a su vez produce (500)

questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-questionnairequipagerequipmentorequilibriumequipmentorequilibriumunubiquitousquestionnairequivalent-

cuando se ejecuta Esto vale 1139 puntos (suponiendo que mis cálculos sean correctos).

Versión temprana (guardada aquí porque es mucho más fácil de entender)

El programa 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#_

produce el script de shell Bourne (incluido un montón de espacios finales)

echo mentorequilibrumfrequestionnariequipmentriumphunubiquitous                  

Aquí está el mismo programa transpuesto, para facilitar la lectura.

: !!b9**jb9*:::2+,,5+,c+,84*,              :2+0g,3+:ff*`5 #
########################################################j@_
mentorequilibrumfrequestionnariequipmentriumphunubiquitous
Luciérnaga
fuente
Sabía que alguien iba a usar echo como el segundo paso eventualmente. :)
Kendall Frey
Pensé en dejarlo fuera y llamar al idioma de destino "inglés" o "/ bin / cat", pero eso probablemente sería un poco engañoso. : P
FireFly
2

Shellscript y Python - 514 puntos

Mi presentación está escrita en 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'"

Producirá el siguiente código de Python (249 caracteres):

print'h rthtquestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnairequestionnaireunubiquitousunubiquitousunubiquitousunubiquitousunubiquitousequilibriumequilibriumequilibriumentorequipmentorequipmentorequipmentor'

Cuya salida contiene:

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

para un total de 514 puntos.

No es muy sofisticado, estoy seguro de que otros pueden hacerlo mejor :)

cuasimodo
fuente
1
Tal vez puedas meter más cosas si reorganizas para que se convierta en "equipo de preguntas"
Justin
De acuerdo con Quincunx, además de eso, creo que uno puede tener la ventaja de crear un algoritmo en el código generado que aprovecha el uso frecuente de los caracteres q u i een las palabras que más valen para crear una salida de 500 caracteres. Pero no estoy seguro
Plarsen
2

JavaScript y REBELDE - 198

Programa inicial:

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 ;

Programa generado:

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

Salida:

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

Notas:

Cada palabra se emite exactamente una vez, excepto "yo", que se emite dos veces.

Notará que el programa generado tiene exactamente 250 caracteres de longitud. No me di cuenta de esto hasta que fue escrito. Me considero afortunado.

Kendall Frey
fuente
2

Python que genera 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)\\)");}'

Utilizo las palabras más largas (que dan la mejor puntuación) y las palabras superpuestas también (equipo-pager, como en el ejemplo). Así es como se calcula el puntaje:

me = 2 + 1 + 0 + 0 + 0 + 0 + 0 = 3
ore = 3 + 2 + 1 + 0 + 0 + 0 + 0 = 6
buscapersonas = 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28
mentor = 11 + 10 + 9 + 8 + 7 + 6 + 5 = 56
triunfo = 13 + 12 + 11 + 10 + 9 + 8 + 7 = 70 equipo
= 17 + 16 + 15 + 14 + 13 + 12 + 11 = 98
equipos = 19 + 18 + 17 + 16 + 15 + 14 + 13 = 112
equivalentes = 23 + 22 + 21 + 20 + 19 + 18 + 17 = 140 poco
frecuentes = 31 + 30 + 29 + 28 + 27 + 26 + 25 = 196
cuestionario = 37 + 36 + 35 + 34 + 33 + 32 + 31 = 238

El total es 947 .

Editar: ahora el programa generado debería generar "exactamente cada tercer carácter del código fuente original" :)

Gabriele D'Antona
fuente
¡Agradable! ¿Su código C generado realmente imprime exactamente cada tercer carácter de TODO su código Python? También creo que olvidó contar sus puntos por las palabras orey me:)
Plarsen
Supuse que el código generado no tiene que generar TODO el código de Python (tal vez interpreté mal la oración "exactamente cada tercer carácter del código fuente original"). Intentará arreglar eso.
Gabriele D'Antona
2

Javascript y Golfscript - 1074 puntos

Javascript (1500 caracteres):

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

Golfscript generado (128 caracteres): prueba GolfScript en línea

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

Salida (500 caracteres):

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

Puntuación:

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

ACTUALIZACIÓN: Logré ganar algunos puntos cambiando los bucles GolfScript de 3 * 3 a 5 * 2.

Plarsen
fuente