var QUESTION_ID=165314,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Réponses:
Python 3 ,
2725 octetsEssayez-le en ligne!
la source
Gelée , 4 octets
Essayez-le en ligne!
Comment ça marche
la source
APL (Dyalog) , 5 octets
Essayez-le en ligne!
Référence utile
∧=⌊
: Retourne1
si le plus petit commun multiple est égal au minimum. Cela n'est vrai que si l'une des valeurs est zéro ou si les deux sont égaux. Sinon, je pourrais avoir=*⌊
⌈×
: Le maximum multiplié par ce qui précède.la source
Langage de programmation Shakespeare , 296 octets
Essayez-le en ligne!
Première participation à un défi de code-golf, commençons avec l'une de mes langues de blague préférées!
Explication: Déclaration des deux variables Ford et Ajax (noms de variables les plus courts disponibles)
Première scène: Mettez les deux valeurs dans la variable, puis testez-les pour égalité, puis testez Ajax contre 0. Si la valeur que nous devons renvoyer est stockée dans la variable Ford, passez à la scène C.
Si Ford vaut 0, imprimez Ajax, sinon définissez Ajax sur 0, puis imprimez Ajax. Ensuite, allez à la fin du programme.
Scène C: Print Ford
Scène V: Fin du programme.
la source
Ruby , 21 octets
Essayez-le en ligne!
Parce que ruby
Brève explication:
a|b
est bitwse OU, il nous donne donc le bon nombre si a == b ou l’un d’eux vaut zéro.Le nombre magique
531
est 2 ^ 9 + 2 ^ 4 + 2 ^ 1 + 2 ^ 0, et l'opérateur [] extrait un seul bit. Cela signifie: multipliez par 1 si a * b vaut 0, 1, 2, 4 ou 9, multipliez par 0 sinon.la source
Haskell , 25 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) , 17 octets, porte en quelque sorte depuis Python answer
Essayez-le en ligne!
JavaScript (Node.js) , 21 octets
Essayez-le en ligne!
la source
?0:
... Pourriez-vous faire||
ou la préséance gâche-t-elle cela??0:
moyenne renvoie zéro si cond n'est pas égal à zéro,||
retourne une valeur différente de zéro si cond n'est pas nulPyth ,
87 octetsEssayez-le en ligne!
Cas 1 - Les deux valeurs non nulles et égales
Cas 2 - Les deux valeurs non nulles et inégales
Cas 3 - Exactement une valeur zéro
Cas 4 - Les deux valeurs zéro
Solution alternative, également 7 octets
Essayez-le en ligne
Version précédente, 8 octets
la source
@{+0Q3
fonctionne pour 6 octets.Java 8, 20 octets
Lambda au curry. Volé d'ici .
la source
Stax , 8 octets
Exécuter et déboguer
Déballé, non golfé et commenté, cela ressemble à ceci.
Exécuter celui-ci
la source
Brain-Flak , 32 octets
Essayez-le en ligne!
la source
(première soumission alors s'il vous plaît ne donnez pas un coup de pied trop fort)
Python 2 ,
57 4443 octetsEssayez-le en ligne!
(compressé un peu après avoir regardé la première réponse python )
la source
C (gcc), 25 octets
f(a,b){a=a^b&&a*b?0:a|b;}
pseudo-code:
la source
C (gcc), 26 octets
Essayez-le en ligne!
Expanation / Ungolfed:
la source
MATL , 9 octets
Essayez-le en ligne!
Explication:
la source
t?td~*]X>
GNU sed, 23 bytes
(doit être couru avec
-r
flag)Essayez-le en ligne!
la source
QBasic, 34 octets
Une approche différente!
Observez que les valeurs non nulles dans la grille de sortie correspondent au bit à bit
OR
des deux nombres entrés. Ceci est justea OR b
dans QBasic. Nous voulons sortir cette valeur quanda*b=0 OR a=b
et0
autrement, ce que nous pouvons faire en multipliant par le négatif du conditionnel susmentionné (négatif, puisque la vérité est-1
en QBasic).la source
brainfuck, 25 octets
L'entrée est constituée de deux octets (pas de valeur ascii)
la source
Rapide , 118 octets
la source
!=
et le ternaire.n1
etn2
raccourcir les caractères; supprimer des espaces et des parenthèses, et supprimer des espaces. De plus,==0
peut être<1
et!=0
peut être>0
, puisque nous savons que seules les entrées0,1,2,3
sont possibles. Jamais programmé auparavant dans Swift non plus, mais je l’ai eu à 91 octets comme ceci:func c(a:Int,b:Int){a==b ?print("\(a)"):a*b>0 ?print("0"):a<1 ?print("\(b)"):print("\(a)")}
Essayez-le en ligne.func c(a:Int,b:Int){print(a==b||a*b<1 ?max(a,b):0)}
Essayez-le en ligne. Encore une fois, bienvenue à PPCG et profitez de votre séjour!{$0==$1||1>$0*$1 ?max($0,$1):0}
essayez-le en ligne!Lot,
38363530 octetsRéponse de Port of @ Dennis's Python, car les conditionnelles sont trop chères dans Batch.
la source
Brachylog , 10 octets
Essayez-le en ligne!
la source
J ,
87 octets1 octet enregistré par H.PWiz.
Essayez-le en ligne!
Port AJ de la solution APL de H.PWiz
=
les chiffres sont-ils égaux? (résultats en 1 ou 0)^
au pouvoir de<.
le plus petit nombre*
multiplié par>.
le plus grand nombrela source
>.*=^<.
pour 7 octets=
et^
!05AB1E ,
9 à8 octets-1 octet grâce à @MagicOctopusUrn .
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Explication généralisée:
la source
Ës0å~iZë0
était à moi; joli. Pas vraiment sûr que vous pouvez battre 9 octets de beaucoup.à®Ë®P_+*
ou_
est logiquement équivalent à>Θ
_
transforme 0 en 1, toutes les autres valeurs en 0.== 0
commande, je_
ne savais pas que c'était exactement ce que je faisais . Devrait également être utile pour d’autres défis à venir. TIL. :)Javascript, 35 octets
la source
05AB1E , 6 octets
Essayez-le en ligne!
Port (ish) de ma réponse Pyth .
En-tête / pied de page de TIO tiré de la réponse d' Emigna
la source
Javascript ES6,
25222120 octets1413 octets , si les arguments sont fournis dans l'ordre de trila source
Python 2 ,
3428 octetsEssayez-le en ligne!
-6 grâce à @Dennis
la source
[0<i!=j>0]
enregistre quelques octets.QBasic,
383635 octetsInspiré en partie par la
IF ... THEN ... ELSE
réponse d' Erik , voici une solution réservée aux mathématiques.Comment je suis arrivé ici
Remarque importante pour comprendre les mathématiques avec conditions: dans QBasic, les résultats des opérateurs de comparaison sont
0
et-1
, pas0
et1
.Nous commençons avec le code d'Erik:
En d'autres termes, si
a
etb
sont tous deux non nuls, alors printa*-(a=b)
(a
ifa=b
, sinon0
); else (au moins un dea
etb
est zéro), sortiea+b
(le nombre différent de zéro, ou0
s’ils sont tous deux nuls).Il y a déjà un peu de math avec des conditions conditionnelles ici. Allons un peu plus loin et voyons si nous pouvons éliminer
IF
complètement la déclaration. Nous devrons utilisera*b>0
pour la condition externe:a*b
peut avoir plusieurs valeurs de vérité différentes, ce qui est bien pourIF
mais cause des problèmes pour les mathématiques.C'est le truc standard de l'
IF
élimination. Quandc
est vrai,c*a*(a=b)
est-a*(a=b)
et(c+1)*(a+b)
est0
; quandc
est faux,c*a*(a=b)
est0
et(c+1)*(a+b)
esta+b
. Donc, cette expression donne les mêmes résultats que leIF ... THEN ... ELSE
. Le seul problème, c’est que notre programme a 40 octets au lieu de 38. Nous pourrions peut-être le raccourcir en réorganisant les calculs.Encore 40 octets ...
Notre programme est maintenant de retour à 38 octets. Mais comme nous n’utilisons qu’une
c
fois, nous n’avons plus à l’affecter à une variable:Il ne reste plus que 36 octets.
Mais attendez il y a plus ... Cette
a+b+a*(a=b)
expression semble un peu redondante.a*(a=b)
est-a
sia=b
et0
autrement. Lorsque nous ajoutons àa
, nous obtenons0
sia=b
eta
sinon. Peut-être pouvons-nous obtenir la même chose en moins d'octets en inversant la condition.Au début, cela ne semble pas plus court. Mais nous pouvons économiser un octet en soustrayant au lieu d’ajouter un négatif:
Et nous avons là notre solution à 35 octets.
la source
Propre ,
464342 octetsEssayez-le en ligne!
Composition anonyme
:: [Int] -> Int
, trie la paire puis associe le premier membre.Le faire comme un lambda composé a la même longueur:
la source
Gelée ,
7 à6 octetsEssayez-le en ligne! ou essayez toutes les combinaisons!
Comment?
En utilisant la méthode de la réponse APL , nous obtenons le même nombre d'octets. Un octet plus long que cette réponse, car le plus petit commun est deux octets.
6 octets
Essayez-le en ligne!
la source
∧=⌊
et=*⌊
. La seconde est préférée par Jelly=*⌊
-il?⌊
c'est minimum. Ou on pourrait utiliser×
dans les deux langues