/* Configuration */
var QUESTION_ID = 132558; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 8349457; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(-?\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (! /<a/.test(lang)) lang = '<i>' + lang + '</i>';
lang = jQuery(lang).text().toLowerCase();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link, uniq: lang};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.uniq > b.uniq) return 1;
if (a.uniq < b.uniq) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
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/Sites/codegolf/all.css?v=617d0685f6f3">
<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><a href="{{LINK}}">{{SIZE}}</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr>
</tbody>
</table>
5
. Si vous doublez, votre source est `` (programme vide) et cela produit5
aussi, peu importe ce que vous faites. Cela étant dit, un programme vide dupliqué est toujours le programme vide et produit toujours la même sortie, sauf dans le cas où le programme vide signifie autre chose (un générateur de nombres aléatoires, par exemple), qui ne pourrait de toute façon pas être valide.Réponses:
Python 2 , 33 octets
Essayez-le en ligne!
Essayez-le doublé
Python 3 , 28 octets
Essayez-le en ligne!
Essayez-le doublé
Explication
Cela ouvre le code source à l' aide
open(__file__)
et obtient sa longueur à l' aidelen
les#
empêche tout code supplémentaire d'être lu. Lorsque la source est doublée, la longueur l'est aussi.la source
tell()
renvoie la position actuelle dans le fichierGelée , 1 octet
Essayez-le en ligne!
ou essayez le double!
Je ne sais pas du tout comment cela fonctionne, mais apparemment, c'est le cas.
la source
Feuilles Google,
115 octetsFormule anonyme de la feuille de calcul qui n'utilise ni entrée ni sortie dans la cellule contenant la formule
En tant que formule unique, cela équivaut à une pile d'appels qui ressemble un peu à quelque chose comme
Cependant, lorsque cette formule de la feuille de calcul est doublée, la pile d'appels est évaluée à
Bien sûr, l’utilisation de cette méthode implique qu’une fois que cela est répété plus d’une fois, à la troisième et à toutes les itérations suivantes du problème, la pile d’appels va atteindre
=4/(2=4)
et donc évaluer jusqu’à=4/0
lancer une#DIV/0!
erreur.-6 octets en basculant en algèbre loin de la
=DIVIDE(4,2
formulela source
)
, cette réponse est la seule réponse Google Sheets que j'ai jamais vue qui ne se traduise pas en réponse Excel05AB1E , 2 octets
Original
Essayez-le en ligne!
Doublé
Essayez-le en ligne!
Explication
X pousse 1 à la pile.
O résume la pile.
la source
1O
!C (gcc), 37 octets
Le fichier ne contient pas de nouvelle ligne de fin.
Version doublée, pour la coloration syntaxique:
Liens TIO: simple , double .
la source
/*
est mis en commentaire par le//
, ce qui signifie que lei=1
texte suivant est non commenté. Il est plus facile de voir si vous mettez la version doublée du code dans un surligneur de syntaxeHexagonie , 7 octets
Imprime 1 régulièrement puis 2 doublé.
Essayez-le en ligne! ou essayez-le doublé en ligne!
Versions étendues:
Ordinaire:
Doublé:
Le programme normal suit le chemin:
/)!.@
ce qui incrémente un bord de la mémoire (tous sont initialisés à zéro) puis imprime sa valeur numérique. Le programme doublé suit:/.)/)!@
incrémente le bord deux fois avant l'impression.la source
[@!)
(et quelque 570 solutions à 5 octets). Étant donné que vous avez réellement pris la peine de trouver une solution manuellement, je suis parfaitement heureux que vous publiiez la solution à 4 octets.Python 2 , 21 octets
Essayez-le en ligne!
Doublé:
Essayez-le en ligne!
la source
Braingolf , 1 octet
Essayez-le en ligne!
Maintenant nous parlons!
Sorties
20
, ou40
lorsque la source est doublée.Explication
+
est bien entendu l'opérateur "sum", "add" ou "plus" de Braingolf, mais il a des fonctions dyadiques, monadiques et niladiques.Quand il y a au moins 2 objets sur la pile, c'est dyadique et la somme des 2 premiers articles de la pile est ajoutée.
Lorsqu'il n'y a qu'un seul élément sur la pile, il est monadique et le double.
Quand il n'y a pas d'objets sur la pile, c'est niladique et pousse 20!
Pourquoi ça pousse 20? Parce qu’un programme Braingolf vide imprime simplement une nouvelle ligne et que la valeur ASCII d’une nouvelle ligne est de 10, j’ai donc pensé que je ferais niladic
+
push 20, c’est comme si elle était en réalité monadique sur la nouvelle ligne implicite (même si ce n’est pas le cas). tout)Donc:
Et quand doublé:
la source
Haskell ,
26 à18 octetsEssayez-le en ligne!
Doublé:
Essayez-le en ligne!
J'ai trouvé cette version en répondant à la version triple du défi .
Version de 26 octets sans abus de commentaires:
Essayez-le en ligne! Impressions
1
.Dans la protection des motifs, l'identificateur
n
est défini sur1
etnmain
sur2
, puis estprint n
imprimé1
.Double programme:
Essayez-le en ligne! Impressions
2
.Dans le premier motif, la protection
n
est à nouveau définie sur1
etnmain
sur2
. Toutefois, l'instruction d'impression est devenueprint nmain
, elle2
est donc imprimée. Étant donné que les déclarations d'identificateur dans un modèle de garde sont évaluées sur true, le deuxième modèle de garde ne peut jamais être atteint.la source
Mathematica, 5 octets
sorties 2 et (1 + 1) (1 + 1) sorties 4
et bien sûr (comme beaucoup d'entre vous l'ont demandé)
Mathematica, 3 octets
la source
(2)
marche?2
et un espace fonctionneraient, comme+1
il se doit, mais il convient de noter que tous ces éléments assument l'environnement de cahier de Mathematicax
tel que les2
sorties2
et2 2
devient2x2
celui qui imprime 4. Vous pouvez l'ajouter comme solution alternative.(2)
fonctionne aussi bien.2
fonctionne aussi bien.Brain-Flak , 6 octets
Essayez-le en ligne!
Explication
Ce que cela devrait être assez clair.
{}
récupère une valeur de la pile, qui commence implicitement à zéro,()
ajoute une valeur à celle-ci et la(...)
pousse. Lors de la deuxième manche, puisqu'il y a déjà un 1 sur la pile, cela ne fait qu'ajouter un autre 1 pour en faire deux. En fait, si vous copiez le coden
fois, il sera toujours imprimén
.la source
> <> ,
76 octets-1 octet grâce au pélican de sarcelle
Essayez-le en ligne!
Essayez-le doublé!
Explication
J'ai utilisé a
0
mais j'aurais aussi pu utiliser1
-9
,a
-f
car ils insèrent tous une seule valeur dans la pile.Non doublé:
Doublé:
la source
Rétine , 3 octets
Essayez-le en ligne!
Impressions
2
. En doublant les impressions4
.Le
1
peut être remplacé par à peu près tout le reste.Explication
Remplace l'entrée vide par
1
.Compte le nombre de correspondances vides dans
1
lequel est égal à deux (une avant1
et une après).Si nous doublons le programme, nous obtenons une étape supplémentaire comme la première. Cette fois, il insère un
1
avant et un après le premier, donnant111
. Lorsque nous comptons maintenant le nombre de correspondances de la regex vide, nous en obtenons quatre.la source
Python REPL, 2 octets
Fonctionne également en Pip, Dyalog APL, JavaScript, J et R
Je fais un TIO en ce momentje ne pouvais pas obtenir de python repl pour travailler sur TIOla source
+1
est exactement ce que je vais faire: P mais zut, tu m'as ninja par environ une minute> <Neim , 1 octet
Incrémente simplement le haut de la pile.
La pile peut être imaginée comme une quantité infinie de zéros pour commencer. Cela incrémente donc zéro pour en obtenir un, et le double, l'incrémente à nouveau pour en obtenir deux.
Essayez-le en ligne!
Une solution alternative:
Ajoute 2, au lieu de 1.
la source
JavaScript, 38 octets
la source
i++
?Java8,
135118110 octetsSingle , empreintes 8
Doublé , empreintes 16
Les aperçus répondent, 118 octets
Single , empreintes 1
Doublé , empreintes 2
Comment ça marche
Le compilateur Java crée un fichier unique pour chaque classe du fichier source. Par conséquent, je peux simplement vérifier si une ressource portant le nom B.class existe.
Réponse originale, 135 octets
Single , empreintes 1
Doublé , empreintes 2
la source
Python 2 , 32 octets
Essayez-le en ligne!
Double code source
Explication
Cela ouvre le fichier de code source en mode ajout
Nous trouvons ensuite la position actuelle dans le fichier, ce sera à la fin du fichier car elle est ouverte en mode append
Nous imprimons cette longueur
Et ajoutez un commentaire, de sorte que doubler le code source n'exécute pas plus de code
la source
Excel VBA, 12 octets
Fonction de fenêtre immédiate VBE anonyme qui prend les entrées et les sorties à portée
[A1]
. La valeur par défaut de la plage[A1]
est""
(chaîne vide) et après une exécution, ce qui suit le définit1
et l'incrémente1
avec toutes les exécutions suivantes.Entrée sortie
Version unique
Version doublée
la source
Japt , 1 octet
Essayez-le en ligne!
Essayez-le doublé!
Répète encore plus longtemps, aussi!
Plutôt simple. Japt transpile vers JS, et
Ä
transpile vers+ 1
, donc,ÄÄ
transpile vers+ 1 + 1
, etc.la source
É
- heureusement, j'ai d'abord numérisé les réponses.Husk , 3 octets
Essayez-le en ligne!
Une idée originale, pour ce que j'ai vu dans d'autres réponses.
Explication
|
dans Husk est un opérateur "ou" qui renvoie son deuxième argument s'il est thruthy, sinon le premier argument. Appliquée à des arguments de types différents, elle les convertit d’abord en nombres: la transformation des chaînes (et des listes en général) s’effectue en calculant leur longueur.Dans le programme d'origine, nous appliquons
|
à 1 et à une chaîne vide convertie en 0: le résultat est 1.Dans le programme doublé, nous appliquons
|
à 1 et la chaîne "| 1", qui est convertie en 2: le résultat est 2.la source
Braingolf, 1 octet
Essayez-le en ligne!
Essayez-le doublé!
Je ne sais pas comment ça marche, le plus important!
la source
CJam, 3 octets
Essayez-le en ligne
Encapsuler 5 dans un tableau. Retourne la longueur du tableau. Lorsque vous dupliquez du code, la longueur précédemment renvoyée, 1, est déjà sur la pile. Vous obtenez donc un tableau de [1,5], qui renvoie la longueur 2.
la source
Ruby, 16 octets
Essayez-le en ligne!
Doublé:
Essayez-le en ligne! Essayez-le en ligne!
la source
Wumpus , 4 octets
Essayez-le en ligne!
Essayez-le en ligne!
Le code normal est imprimé
32
et le double est imprimé64
.Explication
"
fonctionne comme dans beaucoup d’autres Fungeoids: il bascule en mode chaîne, où chaque code de caractère est poussé dans la pile au lieu d’exécuter la commande. Cependant, contrairement à la plupart des autres Fungeoids, le champ de jeu de Wumpus n’est pas complet, de sorte que l’IP reflètera plutôt la fin et rebondira dans le code.Donc, pour le programme unique, le code suivant est réellement exécuté:
La ficelle pousse
32, 79, 64, 79, 32
. Ensuite, l'espace ne fait rien, lesO
impressions32
et le@
termine le programme.Pour le programme doublé, la chaîne est terminée à la place avant que l'adresse IP ne rebondisse. Le code n'est donc parcouru qu'une fois:
Cette fois, la chaîne pousse
32, 79, 64
, laO
imprime64
et la@
termine le programme.Cela semble être la seule solution à 4 octets.
la source
,,, 2 octets
Explication
la source
∑
tous les éléments de la pile apparaissent.Lot, 13 octets
Explication:
%~z0
s'étend à la longueur du fichier source. Doubler le fichier en double donc simplement la longueur. La deuxième ligne définit une étiquette vide, qui ne fait rien. Lorsque le fichier est doublé, il devient une étiquette nommée à la@echo %~z0
place, tandis que la troisième ligne est une autre étiquette vide.la source
QBasic,
4428 octetsIl n'y a pas de nouvelle ligne à la fin. Sorties
4
quand elles sont simples,8
quand doublées.Explication
Pour la version unique:
4
est un numéro de ligne.READ x,y
prend les deux premières valeurs de l'DATA
instruction et les stocke dansx
ety
. Ainsi,x
obtient4
ety
obtient0
.?x+y
ajoute les deux nombres et les imprime.END
quitte le programme.Dans la version doublée, l'
DATA
énoncé devientDATA 4,04
, ce qui attribue4
à tous les deuxx
ety
, rendant ainsix+y
égal à la8
place.la source
Befunge-98 , 5 octets
Essayez-le en ligne!
g
obtient la valeur du caractère à la coordonnée (9, 0) dans Funge-Space;.
l’imprime sous forme d’entier et@
arrête le programme. Dans la version non doublée, (9, 0) est en dehors du programme et Funge-Space en dehors du programme est initialisé à la valeur par défaut d'un espace, nous en imprimons donc 32. Dans la version doublée, (9, 0) est le@
caractère, nous imprimons donc 64.la source
Perl 5 , 7 octets
Avec
-M5.10.0
Essayez-le en ligne!
Doublé :
-2 grâce à Ton Hospel
la source
say
pour gagner 2 octets supplémentaires (-M5.10.0
ou-E
au lieu de-e
est gratuit)