L'affaire curieuse de Steve Ballmer


46

Steve Ballmer est l'ex-PDG de Microsoft et, dans un article récent , affirme qu'il "ne sait toujours pas ce qu'il a mal fait avec le mobile".

Comme le souligne la lettre d'information de CodeProject , "le titre de cet article peut être terminé à de nombreux endroits tout en restant précis".

En l'absence d'entrée, indiquez ce qui suit:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

Ceci doit être sorti exactement comme indiqué et doit être le seul résultat de votre programme. Vous pouvez inclure un seul nouveau trait de fin.

C'est le donc le moins d'octets dans chaque langue gagne


59
Quand j'ai vu le titre / les tags, j'ai pensé que la sortie seraitdevelopers developers ...
Rod

15
tcl, 25 - while 1 {puts developers}- démo
sergiol

8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev

16
Et j'ai pensé à Ballmer Peak
ojdo

5
oui, 14 -yes developers
sergiol

Réponses:


26

Python 3 , 100 99 99 97 octets

-1 octet grâce à ovs
-1 octet grâce à Jonathan Allan
-1 octet grâce à Dennis

for i in b'!-3?':print('Steve Ballmer still does not know what he did wrong with mobile'[:i]+'.')

Essayez-le en ligne!


17

Haskell, 96 octets

(++".\n")=<<scanl(++)"Steve Ballmer still does not know"[" what he did"," wrong"," with mobile"]

Essayez-le en ligne!

scanlest semblable à foldl(ou réduit comme il est appelé dans d'autres langues), sauf qu'il renvoie une liste de tous les résultats intermédiaires au lieu du dernier. Chaque résultat intermédiaire est ajouté ".\n"et tous sont concaténés en une seule chaîne.


17

05AB1E , 50 49 45 44 octets

4 octets enregistrés avec l'inspiration de la réponse Java de Kevin

„€Ž†©'–Ñ…€À€½ƒ§“mer„â‚à€–ƒ€“”™¸ïß”[Žì'.«=¨ð«

Essayez-le en ligne!

Explication

„€Ž†©                                         # push "with mobile"
     '–Ñ                                      # push "wrong"
        …€À€½ƒ§                               # push "what he did"
               “mer„â‚à€–ƒ€“                  # push "mer still does not know"
                            ”™¸ïß”            # push "Steve Ball"
                                  [Ž          # loop until stack is empty
                                    ì         # prepend the top string to the 2nd top string
                                     '.«      # append a dot
                                        =     # print without popping
                                         ¨    # remove the dot
                                          ð«  # append a space

Oh bien, j'ai réussi à utiliser la compression du dictionnaire pour tout, mais Ballmer?
Skidsdev

@ Mayube: Ouais. Je l'ai en partie maintenant (balle) pour économiser un octet en restructurant la chaîne d'origine :)
Emigna

semble beaucoup mieux maintenant, si seulement vous pouviez compresser celamer
Skidsdev

@ Mayube: Je pourrais le cacher en le compressant, memais malheureusement, cela ne ferait économiser aucun octet: /
Emigna

2
@StigHemmer: C'est 44 octets dans la page de code
05AB1E

15

Retina , 82 à 75 octets

Merci à Neil pour la sauvegarde de 7 octets.

Le nombre d'octets suppose un codage ISO 8859-1.


Steve Ballmer still does not know what he did wrong with mobile.
 w
.¶$`$&

Essayez-le en ligne!

Explication


Steve Ballmer still does not know what he did wrong with mobile.

Initialise la chaîne de travail sur l'intitulé complet.

 w
.¶$`$&

Comme Neil l'a fait remarquer, les trois troncatures sont effectuées avant un mot commençant par w, et il n'y a pas d'autres mots commençant par w. Nous faisons donc correspondre un espace suivi d'un a wpour trouver les points de troncature. À ces points, nous insérons ce qui suit:

  • , un point et un saut de ligne pour tronquer la phrase et en commencer une nouvelle.
  • $`, la chaîne entière devant le match, de sorte que la phrase suivante recommence depuis le début.
  • $&, l'espace et wencore, de sorte qu'ils font également partie de la phrase suivante.

Nous n'avons pas besoin de faire correspondre mobileexplicitement le résultat, car ce sera simplement ce qui restera du troisième match.


3
Vous devez seulement faire correspondre sur <espace> w et remplacer par .¶$`$&.
Neil

@ Neil Oh, c'est vraiment chouette, merci. :)
Martin Ender


8

/// , 88 octets

8 octets enregistrés par @MartinEnder!

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong/1.
2.
3.
3 with mobile.

Essayez-le en ligne!


1
Vous pouvez économiser un peu plus en déplaçant le préfixe précédent dans chaque substitution: tio.run/…
Martin Ender

@MartinEnder C'est particulièrement intelligent. Merci!
Steenbergh

1
Oh, et un autre 5 en tombant 4complètement: tio.run/##DcLRDcMgDAXA/…
Martin Ender

5
@MartinEnder "Oui, j'aurai un n ° 3 avec téléphone portable, s'il te plaît."
Steenbergh


7

Java 8, 127 126 octets

()->{String t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile.";}

-1 octet grâce à @KonstantinCh .

Essayez ici.


1
J'espère que ça ne vous dérange pas que j'ai volé votre idée, c'est beaucoup mieux que mon approche en boucle.
TheLethalCoder

@TheLethalCoder Pas de problème, puisque je vois que vous m'avez crédité. :) Btw, stringvous ne pouvez pas être vardans votre lambda C #?
Kevin Cruijssen

Non parce que je déclare plusieurs à la fois.
TheLethalCoder

@TheLethalCoder Ah bien sûr, mon mauvais .. Et ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};est malheureusement trois octets de plus.
Kevin Cruijssen

1
Konstantin Ch suggère de changer le caractère "+dfinal pour ."sauvegarder un octet, le dernier saut de ligne étant facultatif.
Martin Ender


6

Gelée , 52 46 octets

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»;\p”.Y

Crédits pour ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓaller à @EriktheOutgolfer, qui l'a utilisé dans sa réponse .

Essayez-le en ligne!

Comment ça marche

La part du lion du travail est faite par la compression du dictionnaire de Jelly ici.

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ

encode

Steve| Ball|mer| still| do|es| no|t| know

il |indique les limites entre les mots que lorsque extraites du dictionnaire et des chaînes qui ont été le caractère codé par le caractère ( mer, eset t).

De même, £Ṿ⁴'Þḣ~ẉencode  what| he| did(étonnamment, hene vient pas du dictionnaire), ¥Ị)encode  wronget Ṡ8gÐ/encode  with| mobile.

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»

donne ainsi le tableau de chaînes

“Steve Ballmer still does not know“ what he did“ wrong“ with mobile”

;\ réduit cumulativement par concaténation, en construisant les phrases sur chaque ligne.

Enfin, p”.calcule le produit cartésien de ces phrases et du caractère de point et Ysépare les phrases résultantes par des retours à la ligne.


D'après mes comptes, c'est 97 octets.
Stig Hemmer

@StigHemmer En UTF-8, ce serait. Cependant, Jelly prend également en charge ce jeu de caractères codé sur un octet .
Dennis

6

JavaScript (ES6), 102 octets

_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`

L'essayer

o.innerText=(
_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`
)()
<pre id=o>


Belle approche je l'ai "emprunté" pour ma réponse C #.
TheLethalCoder

1
Peut-être que je ne comprends pas les règles du jeu, mais cette fonction ne fonctionne correctement que si vous êtes dans un navigateur et que vous utilisez la balise innertext comme vous l'avez fait. Donc, n'est-ce pas plus de 102 octets, car cela dépend de l'o.innerText = et du <pre id = "o"> et de l'obtention de l'élément?
Paul

@ Paul Je sais que c'est vieux, mais une fonction anonyme est une forme d'entrée / sortie acceptable. Par conséquent, tant qu'elle renvoie les données attendues, il n'est pas nécessaire de les afficher directement.
Dom Hastings

5

C (gcc) , 124 122 octets

#define A"Steve Ballmer still does not know"
#define B".\n"A" what he did"
f(){puts(A B B" wrong"B" wrong with mobile.");}

Essayez-le en ligne!


Vous pouvez supprimer les espaces entre Aet B, ainsi que les chaînes qui les définissent.
Dennis

4

Retina , 95 86 octets

:`
Steve Ballmer still does not know.
:`.$
 what he did.
:`.$
 wrong.
.$
 with mobile.

Essayez-le en ligne! Edit: Sauvegardé 9 octets en passant de la sortie de parties de la chaîne entière à la construction de la chaîne en morceaux. La :`est nécessaire sur les trois premières étapes pour les faire sortir.


ooh qui est intelligent, tout supprimer entre le wet e, puis de supprimer tout entre wret epuis wiet e. Pas super golfy en raison de la nouvelle ligne de Retina, mais vraiment cool non
sans

@Mayube s'est avéré ne pas être très drôle, alors j'ai changé de méthode. (Toujours pas aussi cool que la réponse de Martin Ender cependant.)
Neil

3

C #, 158 128 120 114 octets

()=>{var s="Steve Ballmer still does not know";return s+$@".
{s+=" what he did"}.
{s+=" wrong"}.
 with mobile.";};

Sauvegardé 30 octets grâce à @KevinCruijssen.
Sauvegardé 6 octets grâce à @Shaggy.


Version utilisant la sous-chaîne pour 120 octets:

s=n=>"Steve Ballmer still does not know what he did wrong with mobile".Substring(0,n)+".\n";()=>s(33)+s(45)+s(51)+s(63);

Version empruntée à @KevinCruijssen pour 128 octets:

()=>{string t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile"+d;};

Version utilisant la mise en boucle pour 158 octets:

()=>{var r="";for(int i=0;++i<5;)r+=$"Steve Ballmer still does not know{(i>1?$" what he did{(i>2?$" wrong{(i>3?" with mobile":"")}":"")}":"")}.\n";return r;};

Approche simple utilisant des instructions ternaires dans une boucle pour ajouter les nouvelles pièces à la chaîne à chaque fois.


En passant, il convient de noter que cela ne fonctionne que parce C# >= 6que les versions précédentes n'ont pas de chaînes interpolées
Skidsdev

@ Mayube C'est vrai, mais je joue de cette manière pour utiliser l'approche de Kevin pour le moment car c'est beaucoup mieux que le mien haha
TheLethalCoder

Gotta golf 2 octets de plus afin que vous puissiez battre la réponse java D:
Skidsdev

@ Mayube Les réponses Java ont généralement battu C # car elles n'incluent pas de point-virgule final. Est toujours agaçant!
TheLethalCoder

@Mayube Fait, au moins pour le moment ...
TheLethalCoder


3

Vim, 79 frappes

iSteve Ballmer still does not know.<CR><C-x><C-l><Backspace> what he did.<CR><C-x><C-l><Backspace> wrong.<CR><C-x><C-l><Left> with mobile

<C-x><C-l>se termine automatiquement avec la ligne précédente. Sinon, vous pouvez remplacer chaque occurrence de <CR><C-x><C-l>avec<Esc>o<C-a>



3

Ruby, 94 octets

"!-3Z".bytes{|i|puts"Steve Ballmer still does not know what he did wrong with mobile"[0,i]+?.}

Parcourt les 4 caractères de la première chaîne, convertissant chacun en valeur ASCII net produisant les premiers ncaractères de la deuxième chaîne à chaque fois. Le dernier caractère de la première chaîne importe peu tant que sa valeur ascii est égale ou supérieure à la longueur de la deuxième chaîne.


3

Fission, 299 291 269 ​​octets

MN"."                             ]              ]        ]
                                  W$]            W$$]     W$$$]
R"Steve Ballmer still does not know"%[" what he did"%[" wrong"%[" with mobile.";
                                    [W              [W        [W

Essayez-le en ligne!

Enfin un langage 2D que je comprends!

Explication

Le programme génère un atome avec 1 masse et 0 énergie (un 1:0atome) sur la Rligne 3 et commence à se déplacer vers la droite.

"Steve Ballmer still does not know" imprime chaque caractère.

% déplace l'atome vers le haut s'il a 0 énergie ou décrémente son énergie et le déplace vers le bas.

]déplace l'atome vers la gauche, $augmente l'énergie de Wl'atome , déplace l'atome vers le haut.

Une fois que l'atome est sur la rangée du haut, il se déplace vers la gauche jusqu'à atteindre ".", lequel affiche une période, Nune nouvelle ligne, et enfin M, qui déplace l'atome vers le bas R, ce qui le déplace ensuite vers la droite. .

Chaque boucle, l'énergie de l'atome est supérieure, signifiant qu'elle passera par une de plus %. Après la 4ème boucle, il atteint la ;fin de la troisième ligne qui détruit l'atome. Le programme se termine une fois tous les atomes détruits.


Pourriez-vous ajouter une explication?
Shaggy

@Shaggy va faire
Skidsdev

Vous pouvez compresser beaucoup plus haut: 209 octets .
KSmarts

3

Japt , 70 68 65 61 60 59 octets

Contient quelques caractères qui ne s'afficheront pas ici. suivez le lien ci-dessous pour voir le code complet.

`Sve Ba¥´r Ð]l º not know
 Ø  ¹d
 Ùg
 ØP ¶ßè`£'.iP±X}R

Essayez-le en ligne

  • 3 4 octets enregistrés grâce à ETH , plus 4 autres avec quelques invites.

Explication

Tout ce qui se trouve entre les 2 backticks est une chaîne compressée de ce qui suit:

Steve Ballmer still does not know
 what he did
 wrong
 with mobile
`...`             :Decompress the string.
     £       }R   :Map over the each line X in the string
         P±X      :   Append X to P (initially the empty string)
      '.i         :   Prepend that to the string "."

1
Agréable. Vous pouvez économiser quelques octets en faisant [`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}, puis quelques octets supplémentaires qui impliquent de supprimer le [et ](je vous laisse comprendre cela).
ETHproductions

Nice, @ETHproductions. Il m'a fallu quelques minutes pour déchiffrer le lien entre la compression et les caractères que SE n'affiche pas, mais j'y suis arrivé et je pense que je vois maintenant les autres économies que vous évoquez.
Shaggy

1
Vous serez peut-être mieux si vous supprimez la scission et la jonction, et que vous le faites £P±X +'.}Rà la fin
ETHproductions

@ETHproductions, il arrive toujours à 61 octets, mais c'est nettement plus net; se débarrasse de la nécessité de la nouvelle ligne de fuite. EDIT: Oh, attends, non, je peux économiser 1 octet avec cette approche :)
Shaggy



2

SOGL , 42 octets

⁹⁴<>‘υG‘Γω/w¹‘O‛Æw▓½0H(æ█◄K∆2Ξgh‘4{Tļ.@+;+

Explication:

..‘                    push "with mobile"
   ..‘                 push "wrong"
      ..‘              push "what he did"
         ..‘           push "Steve Ballmer still does not know"
            4{         4 times do
              T          output, not popping the top of stack
               ļ.        output "."
                 @+      append a space to the top thing in stack
                   ;+    reverse add (adding the next part to the top thing in stack)

Comment utilisez-vous SOGL? J'ai installé Processing et toutes les versions, bien que je ne sache pas comment vous l'exécuter.
Erik the Outgolfer

ouvrez le "P5Parser" sans étiquette de version et data/p.soglcollez le code dans son dossier . Ensuite, le code de traitement doit être exécuté et la sortie doit être dans la console
dzaima

J'ai essayé de faire fonctionner votre code, mais il n'a aucune sortie ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer

Ça marche pour moi. Essayez de lui donner le chemin complet au lieu de p.sogl. s'il n'y a rien dans STDOUT ou P5Parser/output.txt, je ne sais pas.
dzaima

C'est la sortie pour moi, séparée en STDOUT et STDERR.
Erik the Outgolfer



2

Nim , 100 octets

for i in " ,2>":echo "Steve Ballmer still does not know what he did wrong with mobile"[0..i.int],"."

voici la même chose dans un code plus lisible:

const str = "Steve Ballmer still does not know what he did wrong with mobile"

for i in [32, 44, 50, 62]:
  echo(str[0..i], ".")

La langue a le découpage en chaîne et les limites supérieures inclusives. Le reste devrait s’expliquer si vous connaissez la programmation.


1

Charbon de bois , 71 69 octets

A⟦⟧βF⪪”↓/‘ZQ≔'Wε}÷&’/↗∧μ~⎇²~ηρπ‖¢β\`σuσI⌀δ#″:§▶¬QγγQZ–” w⁺⪫⊞Oβι w¦.¶

Essayez-le en ligne! Link est une version verbeuse du code, avec quelques séparateurs omis car deverbosifier ne peut pas le faire automatiquement. Ceci est fondamentalement un port de la réponse de @ KevinCruijssen.


1

> <> , 135 octets

".wonk ton seod llits remllaB evetS"\
l?!\o99+2*1./"h tahw  "32p10pao     \
52p\".did e"/"   "53p33p
  /\".gnorw"/
1p/\".elibom htiw;"3

Cela passe essentiellement par la chaîne, imprime puis remplace l'arrêt complet et les conditions par des espaces pour continuer à avancer le long du code.

Il peut être préférable de le visualiser en utilisant le lien>>> étang ci-dessous;

> <> étang!

Essayez-le en ligne!


1
Je ne me suis jamais rendu compte que l' knowépeautre était à l'envers wonk.
Digital Trauma

8
@ DigitalTrauma Eh bien, maintenant vous avez gagné
ETHproductions

1

Mathematica, 108 104 octets

"Steve Ballmer still does not know what he did wrong with mobile"~StringTake~#~Print~"."&/@{33,45,51,63}


Essayez-le en ligne!

-4 octets de Martin


1

> <> , 126 octets

 \"elibom htiw \"10p";"15p
  "gnorw  "10p
  "did eh tahw \"11p
 \"wonk ton seod llits remllaB evetS\"12p04.
  l?!vo
oo00.>a"."
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.