Le vrai Slim Shady


43

Écho les éléments suivants dans aussi peu d'octets que possible:

I'm Slim Shady. Yes, I'm the real Shady.
All you other Slim Shadys are just imitating.
So, won't the real Slim Shady please stand up?
Please stand up. Please stand up.

Les cinq mots suivants doivent apparaître EXACTEMENT UNE FOIS dans votre code:

I'm
Slim
Shady
real
stand


32
Maintenant cette chanson stupide est dans ma tête.
Dark Egregious

Est-ce que ça va si le programme produit plus que le texte intégral? C'est à dire. enfermant les paroles en parens.
Sylwester

@Sylwester Tant qu'il suit les règles, vous pouvez le coder comme vous le souhaitez.
rybo111

Est-ce vraiment kolmogorov-complexité ? Il est vrai que tout programme dont le résultat est correct limite la complexité de Kolmogorov ci-dessus, mais la contrainte supplémentaire semble forcer un programme non optimal.
Peter Taylor

@ PeterTaylor, vous avez peut-être raison. Je laisserai à la communauté le soin de la modifier ou non.
rybo111

Réponses:


28

Python: 176

print"{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other {1}{2}s are just imitating.\nSo, won't {3}{1}{2} p{4}?\nP{4}. P{4}.".format("I'm ","Slim ","Shady","the real ","lease stand up")

Naturellement, la même idée que d’autres solutions de compression (bien que obtenues indépendamment).


1
J'ai voté par erreur contre celui-ci. Désolé. (Si vous apportez un changement, je pense que je peux retirer le
vote négatif

@ edc65: Merci pour l'honnêteté :) J'ai édité la réponse.
nneonneo

Vous pouvez supprimer 3 octets simplement en réutilisant les espaces. print"{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other{1}{2}s are just imitating.\nSo, won't{3}{1}{2} p{4}?\nP{4}. P{4}.".format("I'm"," Slim"," Shady"," the real","lease stand up")
Feersum

25

Brainfuck 1923 octets

Prendre plaisir...

-[------->+<]>.+[-->+<]>++.---[->+++<]>+.
[->+++++<]>-.>-[--->+<]>--.--[--->++++<]
>.---.++++.[->+++++<]>-.>-[--->+<]>--.>+
[----->+++<]>+.-------.+++.+[--->+<]>++.
-----[++>---<]>.++[--->++<]>.--[->+++<]>-.
[->++++<]>+.[--->+<]>----.-[++>---<]>+.
------------.++++[->++<]>+.+[-->+<]>++.---
[->+++<]>+.[->+++++<]>-.---[->++++<]
>.------------.---.--[--->+<]>-.---[----->++<]
>.-------------.----.+++++++++++.[++>---<]
>--.>-[--->+<]>--.>+[----->+++<]>+.-------.
+++.+[--->+<]>++.-----[++>---<]>.>
++++++++++.+++[->+++++<]>.[--->+<]>+..
[++>---<]>--.--[->++++<]>+.----------.++++++.-
[---->+<]>+++.+++++[->+++<]
>.+++++.------------.---.+++++++++++++.
[-->+++++<]>+++.>-[--->+<]>--.--
[--->++++<]>.---.++++.[->+++++<]>-.>-
[--->+I'm<]>--.>+[----->+++<]>+.-------.+++.+
[--->+<]>++.------.+[---->+<]>+++.[->+++<]>+.--
[--->+<]>---.-------------.--[--->+<]>-.-
[--->++<]>.+++++++++++.--.+.
[---Slim->+<]>+++.-[--->++<]>-.++++.----.
+++++++++++.+[->+++<]>++.--[--->+<]
>-.-----------.+++++.-------.--[->+++<]>-.
>++++++++++.>-[--->+<]>--.[--->+<]>--.
[->+++++<]>+.------------.--[->++++<]>-.
--------.-.[++>---<]>++.[->+++<]>-.[---->+
<]>+++.---[->++++<]>.------------.---.--[---
>+<]>-.---[----->Shady++<]>.-------------.-
---.+++++++++++.[++>---<]>--.>-[--->+<]
>--.--[--->++++<]>.---.++++.[->+++++<]
>-.>-[--->+<]>--.>+[----->+++<]>+.-------.
+++.+[--->+<]>++.-[---->+<]>++.[-->+++++++<]
>.----.-------.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]
>-.---[->++++<]>+.-----.[--->++++<]>-.>
++++++++++.[->++++++++<]>.+[--->++++<]
>.---real----.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]>-.---
[->++++<]>+.-----.[->+++++<]>--.++[--->++<]
>.[-->stand+++++<]>.+[--->++++<]>
.-------.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]
>-.---[->++++<]>+.-----.[->+++++<]>--.

Trous de boucle standard


N'inclut pas les cinq mots.
nwp

6
Peut-être faites-vous défiler à droite, mais je vais éditer le post pour que vous n'ayez pas à vous aussi ...
Joshpbarron

J'ai fait défiler mais j'ai raté les mots, désolé.
nwp

MAINTENANT c'est clair!
Edc65

1
Je suis venu avec 1918 caractères, je ne sais pas que tous ces caractères sont hors de la norme où ils collent sur des octets supplémentaires. Je ne connais pas encore d'autre moyen de compter Bytes, alors je dirais: 1918
Malachi

17

Perl, 155

Avec les améliorations apportées par Martin Büttner et Thaylon :

$_="01. Yes, 02X.
All you other1s are just imitating.
So, won't21 p3?
P3. P3.";s/\d/("I'm"," SlimX"," the real","lease stand up")[$&]/ge;s/X/ Shady/g;print

@ MartinBüttner Excellentes suggestions. Merci :-)
ossifrage

Vous pouvez omettre le dernier; aussi.
Thaylon

2
J'adore la partie "Tous vous autres"
William Barbosa

Déplacement autour du "" pour 157: $ _ = "01. Oui, 032. Tous les autres ne font qu'imiter. Alors, ne voulez pas31 p4? P4. P4."; S / 0 / I'm / g; s / 1 / Slim2 / g; s / 2 / ombragé / g; s / 3 / réel / g; s / 4 / bail debout / g; imprimer
Thaylon

Mines si semblables maintenant, et j'étais plus tard, alors je vais simplement le supprimer. Vous pouvez obtenir un autre 2 octets avec: $ _ = "01. Oui, 02X. Tous vous autres ne faites qu'imiter. Alors, ce ne sera pas 21 p3? P3. P3."; S / \ d / ("Je suis", "SlimX", "le réel", "Bail stand up") [$] / ge; s / X / Shady / g; print
Thaylon

12

Ruby, 154 octets

$><<"012. Yes, 032.
All you other12s are just imitating.
So, won't312 p4?
P4. P4.".gsub(/\d/){%W{I'm \ Slim \ Shady \ the\ real lease\ stand\ up}[$&.hex]}

Après avoir aidé quelques personnes à diviser les chaînes de remplissage, j'ai décidé d'essayer leur idée de rappel de remplacement. ;)


1
Vous pouvez enregistrer certains caractères: #{h+a}est plus court que "+h+a+", et #{d+h+a}est plus court que "+d+h+a+".
ProgramFOX

1
@ProgramFOX oO ... J'ai honte de dire que je n'y avais pensé que #{h}#{a}.
Martin Ender

Peut économiser un peu plus avec h=" Slim"+a=" Shady", et un en remplaçant puts par $><<.
histocrat

154 avec.gsub(/\d/){%W{I'm \ Slim \ Shady \ the\ real lease\ stand\ up}[$&.hex]}
Ventero

@Ventero merci! :)
Martin Ender

9

JavaScript (E6) 165

C'est pareil dans une autre langue

alert("012. Yes, 05326All you other12s are just imitating6So, won't5312 p4?\nP4. P4."
.replace(/\d/g,x=>"I'm1 Slim1 Shady1real1lease stand up1 the 1.\n".split(1)[x]))

Explication: remplace chaque chiffre de la première chaîne par la chaîne correspondante du tableau ["I'm"," Slim"," Shady","real","lease stand up"," the ",".\n"]

Révisée avec les nouvelles règles ici chez PPCG (sortie renvoyée par une fonction, aucune contrainte sur les fonctionnalités plus récentes que le défi), cela pourrait être 158. Voir l'extrait

F=
_=>`012. Yes, 0532.
All you other12s are just imitating.
So, won't5312 p4?
P4. P4.`.replace(/\d/g,x=>"I'm, Slim, Shady,real,lease stand up, the ".split`,`[x])

console.log(F())


1
merde folle, j'aime ça
john Smith

Belle implémentation :) Vous pouvez enregistrer un octet en utilisant un modèle littéral dans la replacefonction et en le remplaçant \npar une nouvelle ligne.
Shaggy

@Shaggy Je pourrais faire mieux avec les modèles de littéraux, mais ils n'ont été implémentés dans aucun navigateur à la fois (août 2014)
edc65

Ah, je vois. Est-ce que cela invalide ma réponse , donc, vu que cette question a été postée avant que la spécification définissant les littéraux de gabarit soit normalisée?
Shaggy

1
@JacobPersi jeter un oeil
edc65

6

CJam - 133

"I'm| Slim| Shady| the real|lease stand up|432. Yes, 412.
All you other32s are just imitating.
So, won't132 p0?
P0. P0."'|/~5,{`/\*}/

Essayez-le sur http://cjam.aditsu.net/

Je pense que cela fonctionne également dans GolfScript si vous remplacez '|par"|"


7
Tous vos autres trente-deux ne font qu'imiter. Alors, un trois trois ne va-t-il pas faire pipi? Pee ze-ro. Pee ze-ro. C'est comme ça que ça va sonner dans ma tête à partir de maintenant. : P
Dennis

6

GolfScript, 162 154 152 144 octets

"I'm ":i"Slim ":|"Shady":y". Yes, "i"the real ":!y".
All you other "|y"s are just imitating.
So, won't "!|y" p""lease stand up":l"?
P"l". P"l"."

Testez en ligne


3
Vous pouvez économiser 8 octets en remplaçant \net npar un saut de ligne réel et en choisissant des noms de variable non alphanumériques (par exemple, &) pour éliminer les espaces blancs qui les entourent.
Dennis

@ Dennis Merci beaucoup! J'ai édité ma réponse.
ProgramFOX

La guerre a commencé.
Josiah Winslow

5

VBA 307 octets

Et masqué avec des séparateurs de lignes (juste pour le plaisir). Basé sur cette réponse

Function p()
e = "Slim ": m = "Shady": i = "I'm ": n = "lease stand up": s = "real ": a = "."
p = i & e & m & ". Yes, " & i & "the " & s & m & a & Chr(10) & "All you other " & e & m & "s are just imitating." & Chr(10) & "So, won't the " & s & e & m & " p" & n & Chr(10) & "P" & n & ". P" & n & a
End Function

Appelé de la fenêtre immédiate avec ?p.

Le 307 comprend le ?p.


1
Oh, P dans la fenêtre immédiate, je vois, +1
Alex

vous devriez vous débarrasser de a = "."Je pense que vous pourriez réduire quelques octets
Malachi

En fait, à bien y penser, je pense que c'est plus lisible avec les séparateurs de ligne par rapport aux nouvelles lignes ...
RubberDuck

ne pouvez-vous pas vous débarrasser des espaces entre opérateurs?
Malachi

1
@Malachi selon les spécifications, oui, mais les implémentations réelles forcent les espaces sur vous. Si je le faisais à la place dans VBScript, je pourrais probablement le raccourcir un peu.
RubberDuck

5

PHP - 151 octets

<?="I'm Slim Shady".gzinflate("]Œ1
„0E{Á;üÎFr…ÅÒNHe9à°F&‰d&,Þ~Avmßûï;̬=Æ.ÂVFaø•–ÃµÍ ‚#WäÓx    ñR
*Œ­ª!Ä`d!½Ï¹Ï=>9uöót7Ø…Ij”ÔýÕ6Ó?qx‚/");@realstand;

hexdump:

0000000 3f3c 223d 2749 206d 6c53 6d69 5320 6168
0000010 7964 2e22 7a67 6e69 6c66 7461 2865 5d22
0000020 318c 840a 1030 7b45 3bc1 cefc 7246 c585
0000030 4ed2 6548 e039 46b0 8926 2664 de2c 057e
0000040 7641 df6d effb cc3b 3dac 2ec6 56c2 6146
0000050 f812 9695 b5c3 20cd 2382 e457 14d3 0978
0000060 52f1 2a0a ad8c 21aa 60c4 2164 cfbd cfb9
0000070 3e3d 7539 f3f6 3774 85d8 1949 946a d416
0000080 d5fd d336 713f 8278 222f 3b29 7240 6165
0000090 736c 6174 646e 003b
0000097

Une autre réponse sans utiliser gzinflate (228 octets):

Lit les courts métrages (16 bits), extrait 3 entiers de 5 bits en tant qu'indices d'une table de correspondance.

<?$a=str_split(" .Yes,AlyouthrajimngSw'pP?
")+[27=>"I'm ",'Slim ',@Shady,'the real ','lease stand up'];$b=unpack(@v26,'o…~:tç       (ƒ-4€t£9ê`0BË-SBT $2U`Y{ÿXg |ác');foreach($b as$c)echo$a[$c>>10],$a[$c>>5&31],$a[$c&31];

hexdump:

0000000 3f3c 6124 733d 7274 735f 6c70 7469 2228
0000010 2e20 6559 2c73 6c41 6f79 7475 7268 6a61
0000020 6d69 676e 7753 7027 3f50 220a 2b29 325b
0000030 3d37 223e 2749 206d 2c22 5327 696c 206d
0000040 2c27 5340 6168 7964 272c 6874 2065 6572
0000050 6c61 2720 272c 656c 7361 2065 7473 6e61
0000060 2064 7075 5d27 243b 3d62 6e75 6170 6b63
0000070 4028 3276 2c36 9d27 026f 8504 7e0c 3a03
0000080 e774 0918 0901 8328 1c2d 8034 a374 ea39
0000090 6001 3011 cb42 532d 5442 a007 3224 6055
00000a0 9d59 ff7b 5802 2067 e17c 2763 3b29 6f66
00000b0 6572 6361 2868 6224 6120 2473 2963 6365
00000c0 6f68 6124 245b 3e63 313e 5d30 242c 5b61
00000d0 6324 3e3e 2635 3133 2c5d 6124 245b 2663
00000e0 3133 3b5d
00000e4

5

C, 374

En remuant la mémoire

Pas le plus court mais peut-il aller plus vite?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *s;
void m (int d, int f, int p)
{
    memmove (s+p+f, s+p, strlen(s)-p+1); // Shift a part of the string to make room for our insertion
    memcpy (s+p, s+d, f); // Copy the desired reference in place
}
int main ()
{
    s = malloc (168);
    strcpy (s,"I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ");

    m (0, 4, 21);
    m (8, 6, 33);
    m (3, 11, 54);
    m (28, 5, 100);
    m (3, 11, 105);
    m (118, 14, 135);
    m (134, 16, 151);
    puts (s);
}

Il reste 374 caractères longtemps après la minification.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*s;void m(int d,int f,int p){memmove(s+p+f,s+p,strlen(s)-p+1);memcpy(s+p,s+d,f);}int main(){s=malloc(168);strcpy(s,"I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ");m(0,4,21);m(8,6,33);m(3,11,54);m(28,5,100);m(3,11,105);m(118,14,135);m(134,16,151);puts(s);}

Bien, mais vous pouvez jouer au golf jusqu'à 278 octets:char s[168]="I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ";m(d,f,p){memmove(s+p+f,s+p,strlen(s)-p+1);memcpy(s+p,s+d,f);}main(){m(0,4,21);m(8,6,33);m(3,11,54);m(28,5,100);m(3,11,105);m(118,14,135);m(134,16,151);puts(s);}
Johan du Toit

5

Java, 247

Mon premier code golf, tout en apprenant Java. Posté parce qu'il bat l'autre entrée Java (entièrement fonctionnelle) et l'entrée Haskell.

class S{public static void main(String[]a){String s="I'm",t=" Slim",u=" Shady",v=" the real",w="lease stand up";System.out.print(s+t+u+". Yes, "+s+v+u+".\nAll you other"+t+u+"s are just imitating.\nSo, won't"+v+t+u+" p"+w+"?\nP"+w+". P"+w+".");}}

5

C # 209 205 201 197 209 212 217

class P{static void Main(){System.Console.Write("{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other {1}{2}s are just imitating.\nSo, won't {3}{1}{2} p{4}?\nP{4}. P{4}.", "I'm ","Slim ","Shady","the real ","lease stand up");}}

Maintenant avec une capitalisation appropriée et de nouvelles lignes


1
Vous pourriez probablement économiser encore plus de caractères en déplaçant des espaces d'une chaîne de format à des remplacements, par exemple WriteLine("{0}{1}","I'm ","Slim ").
NightElfik

1
La fin de la nouvelle ligne ne semble pas être une obligation, pensez donc à utiliser à la .Write()place de .WriteLine(). Même si c'est nécessaire, .Write()avec \nc'est plus court.
Bob

merci @Bob qui m'a sauvé encore 4 byes! même sur ma réponse VB aussi!
Malachi

Vous n'avez pas de P majuscule sur le S'il vous plaît, levez-vous deux fois
IEatBagels

@ TopinFrassi, je l'ai corrigé sur cette réponse et sur ma réponse VB également. Il me manquait aussi un espace. Je pose des questions sur les nouvelles lignes dans la sortie en ce moment ...
Malachi

5

VB 253 249 245 241 244 285 259 223

Je déteste la terminaison de New Line

Module M
Sub Main
Console.Write("{0}{1}{2}. Yes, {0}{3}{2}.{5}All you other {1}{2}s are just imitating.{5}So, won't {3}{1}{2} p{4}?{5}P{4}. P{4}.","I'm ","Slim ","Shady","the real ","lease stand up",vbCr)
End Sub
End Module

Maintenant avec une capitalisation appropriée et des retours à la ligne dans la sortie, et aucun onglet *

Merci VB pour vbCrLf

Merci @Taylor Scott!


Je me demande si cela fonctionnera sans les onglets et les nouvelles lignes ?????
Malachi

ça ne me laissera pas dans Visual Studio 2013
Malachi


1
@TaylorScott, cela vous permettra apparemment de le coder sans les indentations maintenant. ou peut-être que c'est juste Mono pour vous
Malachi

Autant que je sache, oui, ce que le compilateur peut analyser dépend fortement de la version sur laquelle vous vous trouvez - en particulier pour revenir à VB 6.0 et versions antérieures
Taylor Scott

4

VBA 343 octets

Sub EMINEM()
e = "Slim "
m = "Shady"
i = "I'm "
n = "lease stand up"
em = "real "

MsgBox i & e & m & ". Yes, " & i & "the " & em & m & "." & Chr(10) & "All you other " & e & m & "s are just imitating." & Chr(10) & "So, won't the " & em & e & m & " p" & n & Chr(10) & "P" & n & ". P" & n & "."

End Sub

1
Très belle mise en œuvre
Malachi

Merci Malachi, ne peut pas ignorer ce golf en tant que vieux fan d’Eminem.
Alex

Je travaille sur un en ce moment.
Malachi

2
C'est formidable de voir quelqu'un jouer au golf à VBA. Ne pouvez-vous pas imprimer dans la fenêtre immédiate avec ??
RubberDuck

1
@ ckuhn203 "?" change pour 'print' mais j’aurai besoin de debug.print pour que ce soit vicieux chaque fois que j’utilise "?". N'hésitez pas à préciser si je peux le faire ici, merci!
Alex


3

PHP - 196 171

<?$S="Shady";$P="lease stand up";$R="the real ";$I="I'm ";$s="Slim ";echo"$I$s$S. Yes, $I$R$S
All you other $s$S"."s are just imitating.
So, won't $R$s$S p$P?
P$P. P$P."

;


3

Lua 201 193 188 178

h=" Shady"i="I'm"s=" Slim"..h r=" the real"u="lease stand up"io.write(i,s,". Yes, ",i,r,h,".\nAll you other",s,"s are just imitating.\nSo, won't",r,s," p",u,"?\nP",u,". P",u,".")

Ungolfed & élargi certains

h=" Shady"
i="I'm"
s=" Slim"..h
r=" the real"
u="lease stand up"
io.write(i,s,". Yes, ",i,r,h,".\nAll you other",s,"s are just imitating.\nSo, won't",r,s," p",u,"?\nP",u,". P",u,".")

3

Common Lisp, 197

(let((a"I'm ")(b"Slim ")(c"Shady")(d"real ")(e"lease stand up"))(format t"~{~A~}"(list a b c". Yes, "a"the "d c".
All you other "b c"s are just imitating.
So, won't the "d b c" p"e"?
P"e". P"e"")))

3

Perl, 161 164 octets

Pas si court que la réponse de Squifish ossifrage , mais je voulais partager la CamelCaseCompression, que personne d’autre n’a utilisée et qui permet de supprimer de nombreux espaces et guillemets.

Il lui faut toutefois un texte légèrement plus long pour devenir vraiment bénéfique.

$_="0 1 2. Yes, 03 2.
AllYouOther 1 2sAreJustImitating.
So, won't3 1 24?
4. 4.";s/\d/qw(I'm Slim Shady TheReal PleaseStandUp)[$&]/ge;s/\B([A-Z])/ \L\2/g;print

Edit: Suivant la suggestion de Thaylon, la s/(\S)([A-Z])/\1 \L\2/gsubstitution a été raccourcie de quatre caractères. Cela ne concerne pas les digraphes à virgule, cependant, un espace supplémentaire a dû être inséré avant "not".


Intéressant. Un peu plus court avec "pas une limite de mot": s / \ B ([AZ]) / \ L \ 1 / g;
Thaylon

Merci @Thaylon. \ B est quelque chose que je vais devoir lire. C'est étrange.
comperendinous

3

PYTHON: 198 193 octets

i,s,h,r,t="I'm ","Slim ","Shady","real ","lease stand up"
print i+s+h+". Yes, "+i+"the "+r+h+".\nAll you other "+s+h+"s are just imitating.\nSo, won't the "+r+s+h+" p"+t+"?\n"+"P"+t+'. P'+t+'.'

déplacez-vous pleasedans la propriété variable et supprimez- vous stand upde votre gvariable, et éventuellement supprimez-en /nvous n'en avez pas besoin
Malachi

Si je supprime les \ n, les nouvelles lignes auront disparu et je suppose que celles-ci sont nécessaires à la sortie.
RageCage

3

Golfscript - 140 (tweetable)

"I'm"" Slim"" Shady"". Yes, "3$" the real"3$".
All you other"6$2$"s are just imitating.
So won't"5$3$3$" p""lease stand up""?
P"1$". P"1$"."

Je suis Slim Shady. Oui, 3 le vrai 3.

Tous les autres 62 ans ne font qu'imiter.

Alors, ne voulez-vous pas que le 533 se lève?

P1. P1.


3

Rust (programme complet), 183 180 178 173 173 172 octets

178 -> 173 octets, grâce à Sara J

fn main(){print!("{}{}{}. Yes, {0}{}{2}.
All you other{1}{2}s are just imitating.
So, won't{3}{1}{2} p{}?
P{4}. P{4}.","I'm"," Slim"," Shady"," the real","lease stand up")}

Essayez-le en ligne!



@SaraJ Ofc, évidemment! Merci :)
ruohola

2

C # 226

class P{static void Main(){System.Console.Write("{0}{1}{2}. Yes, {0} the{3} {2}.All you other{1}{2}s are just imitating.So, won't the{3}{1}{2} please{4}up?Please{4}up. Please{4}up.","I'm"," Slim ","Shady"," real"," stand ");}}

vous avez manqué des endroits où vous pouvez supprimer un tas de personnages, consultez le mien. codegolf.stackexchange.com/a/35557/9435
Malachi

2

Java, 308 301 298 292 258

Java est un peu bavard, mais voici mon essai:

class P{public static void main(String[]c){String s=" Shady",t=" the real",l="lease stand up",i=" Slim",m="I'm";System.out.format("%s%s%s. Yes, %s%s%s.\nAll you other%s%ss are just imitating.\nSo, won't%s%s%s p%s?\nP%s. P%s.",m,i,s,m,t,s,i,s,t,i,s,l,l,l);}}

1
Vous pouvez fusionner 1 'réel' et 'le', ils sont toujours ensemble. 2 - déplacez quelques blancs de la chaîne de grand format 3 - surtout: utilisez plus de variables simples, le tableau a ne sert à rien. Dans l'ensemble, vous pouvez aller à ~ 270
edc65

@ edc65 Je ne savais pas que je pouvais déclarer plusieurs chaînes en Java sans écrire Stringplusieurs fois. C'est pourquoi j'ai eu le tableau pour toutes les variables sauf une. Merci beaucoup pour les conseils.
tim

2

MySQL: 273 267

set @i="I'm", @s="Slim", @h="Shady", @r="real", @t="stand", @p="lease stand up";select concat(@i," ",@s," ",@h,". Yes, ",@i," the ",@r," ",@h,".\r\nAll you other ",@s," ",@h,"s are just imitating.\r\nSo, won't the ",@r," ",@s," ",@h," p",@p,"?\r\nP",@p,". P",@p,".");

2

Rubis: 211

Celui-ci est impressionnant car simplement imprimer le texte est plus efficace, mais c'est beaucoup plus cool.

puts Zlib.inflate("eJxdjDEKwzAQBHu9Yjs3Rl8ILt0FVKU88GErnCWhO2H8e6sIwUmzxQyz87AjSOyz0XJ6vFhHzB3axqhM8hFuEsGZG3IX9ZYoqDLeTQ1xj0YW0+pdyCOOnAa7/XwTFGFShhqlBa083PMXePyDC15NOP8=".unpack("m0")[0])#I'mSlimShadyrealstand

2

JavaScript 259 240 238 octets

Pas si bon que ça mais pourrait tout aussi bien poster une réponse.

b=String.prototype,b.a=b.replace,alert("123. Yes, 16537All you other 23s are just imitating7So, won't 6523 p4?\nP4. P4.".a(/1/g,"I'm ").a(/2/g,"Slim ").a(/3/g,"Shady").a(/4/g,"lease stand up").a(/5/g,"real ").a(/6/g,"the ").a(/7/g,".\n"))

Version plus lisible:

b=String.prototype
b.a=b.replace
alert("123. Yes, 16537All you other 23s are just imitating7So, won't 6523 p4?\nP4. P4."
    .a(/1/g,"I'm ")
    .a(/2/g,"Slim ")
    .a(/3/g,"Shady")
    .a(/4/g,"lease stand up")
    .a(/5/g,"real ")
    .a(/6/g,"the ")
    .a(/7/g,".\n")
    )

2

F #, 250 242

[1..21]|>List.iter((function|1|5->"I'm "|2|9|13->"Slim "|4->". Yes, "|6|12->"the real "|8->".\nAll you other "|11->"s are just imitating.\nSo won't "|15->" p"|16|18|20-> "lease stand up"|17->"?\nP"|19->". P"|21->"."|_->"Shady")>>printf "%s")

Version plus lisible avec sauts de ligne:

[1..21]|>List.iter((function
|1|5->"I'm "
|2|9|13->"Slim "
|4->". Yes, "
|6|12->"the real "
|8->".\nAll you other "
|11->"s are just imitating.\nSo won't "
|15->" p"
|16|18|20-> "lease stand up"
|17->"?\nP"
|19->". P"
|21->"."
|_->"Shady")>>printf "%s")

2

JavaScript (ES6), 165 163 octets

f=

_=>`${a="I'm"}${b=` Slim${c=` Shady`}`}. Yes, ${a+(d=" the real")+c}.
All you other${b}s are just imitating.
So, won't${d+b} p${e="lease stand up"}?
P${e}. P${e}.`

console.log(f());


2

PHP, 179 octets

<?
$i="I'm";
$s=" Slim";
$h=" Shady";
$p="lease stand up";
$r=" the real";
echo"$i$s$h. Yes, $i$r$h.\nAll you other$s$h"."s are just imitating.\nSo, won't$r$s$h p$p?\nP$p. P$p.";

Et joué au golf

<?$i="I'm";$s=" Slim";$h=" Shady";$p="lease stand up";$r=" the real";echo"$i$s$h. Yes, $i$r$h.\nAll you other$s$h"."s are just imitating.\nSo, won't$r$s$h p$p?\nP$p. P$p.";
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.