/* Configuration */
var QUESTION_ID = 63675; // Obtain this from the url
// It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 43444; // 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 "http://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 "http://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,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\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,
});
else console.log(body);
});
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;
lang = jQuery('<a>'+lang+'</a>').text();
languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang_raw.toLowerCase() > b.lang_raw.toLowerCase()) return 1;
if (a.lang_raw.toLowerCase() < b.lang_raw.toLowerCase()) 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/codegolf/all.css?v=83c949450c8b">
<div id="language-list">
<h2>Shortest Solution 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>
<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>
<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>
ಠ
ya
? ¿Es 1 (contandoಠ
como 1 char) o 2 (porque enಠ
realidad son 2 bytes)?Respuestas:
Japt ,
886866766725688669Las tareas 5 y 6 son asesinas. Quizás hay formas más cortas de hacerlas. Creo que las distancias de Levenshtein también podrían reducirse también.
!(U%#ۊ
7 bytes (el carácter árabe desordena la alineación)
U!=Uk'q
7 bytes, dist 11Us36 u
6 bytes, dist 14UmX=>Xc
7 bytes, dist 14"PPCG"
6 bytes, dist 18Ur"[Oo]",'ಠ
13 bytes, dist 27X=Uq f;XoU*X+1,X
16 bytes, dist 522oU fX=>2oX eY=>X%Y &&!(U%X)r(X,Y =>X+Y
39 bytes, dist 172UmX=>128o mY=>Yd)a k'A i#Z,'A k'a i#z,'a gXc
44 bytes, dist 216Aquí hay un fragmento que le indicará (una de) las formas más eficientes de organizar sus programas:
Mostrar fragmento de código
Con la última versión de Japt (que no compite en este desafío), la mayoría de las tareas se acortan:
s36 u
5 bytesmc
2 bytesv#ۊ
4 bytes
oq
2 bytes;B±B+C²UrF,@Bg1+BbX
19 bytesk â x
5 bytes"PPCG
5 bytesB=U¬f)oU*B+1B
13 bytesro'ಠ'i
6 bytes¡El orden óptimo ahora es 2,4,3,1,6,7,9,8,5, llegando a un puntaje enorme de 217 , menos de un tercio del original!
Sugerencias bienvenidas!
fuente
Pyth, puntuación 489
Conversión de la base: 15
Cifrado César: 13 + 11 ^ 1.5
Divisible por 1738: 7 + 11 ^ 1.5
Primeros N enteros positivos: 8 + 8 ^ 1.5
Suma de factores primos: 4 + 6 ^ 1.5
Apariencia de q en cadena: 4 + 4 ^ 1.5
Únete a todos los códigos ASCII: 5 + 4 ^ 1.5
Imprimir "PPCG": 5 + 5 ^ 1.5
Reemplazar con
ಠ
: 9 + 7 ^ 1.5fuente
Rubí, 1488
Probablemente hay mucho margen de mejora aquí. Pasé la mayor parte del tiempo calculando la puntuación ...
Suma de factores primos : 64 Base 36 : 30 + 47 1.5 = 352 Divisible por 1738 : 22 + 15 1.5 = 80 Imprimir PPCG : 9 + 18 1.5 = 85 ¿La cadena contieneq
? : 10 + 8 1.5 = 32 Reemplazaro
: 23 + 16 1.5 = 87 Cifrado César : 32 + 21 1.5 = 128 Códigos ASCII : 37 + 26 1.5 = 169 Enteros divisibles por raíz cuadrada : 72 + 56 1.5 = 491fuente
Java, puntaje 8331
Las distancias levenshtein están matando mi puntuación aquí.
(Estos programas toman la entrada como argumentos de línea de comando)
Programa 1 (119):
Programa 2 (120 + 56 1.5 = 539):
Programa 3 (101 + 49 1.5 = 444):
Programa 4 (108 + 20 1.5 = 197):
Programa 5 (186 + 107 1.5 = 1293):
Programa 6 (327 + 228 1.5 = 3747):
Programa 7 (336 + 10 1.5 = 368)
Programa 8 (351 + 34 1.5 = 549):
Programa 9 (305 + 84 1.5 = 1075):
fuente
Pyth, puntaje 817
número 1:24
número 2: (9 + 16 1.5 = 73)
número 3: (5 + 8 1.5 = 27)
número 4: (5 + 14 1.5 = 57)
número 5: (39 + 37 1.5 = 264)
número 6: (4 + 39 1.5 = 247)
número 7: (5 + 4 1.5 = 13)
número 8: (12 + 12 1.5 = 53)
número 9 (13 + 13 1.5 = 59)
No es lo mejor, comencé a aprender pyth hoy y pensé en intentarlo, el número 5 realmente mató mi puntaje, creo que puedo acortar algunos de ellos, pero eso me hará más daño en las distancias. Se agradece cualquier consejo de usuarios de Pyth más experimentados.
fuente
You must use one language to write programs that perform the following nine tasks, in any order.
Buena suerte!5 + 14^1.5
no es 19Python 3 (actualmente no válido), 621 bytes
Realmente no es un buen código, pero de alguna manera funciona: D. La suma de los factores primos no funciona. Siempre obtengo un resultado diferente de su ejemplo, así que lo eliminé. Además, Python no admite el carácter,
ಠ
por lo que reemplaza elo
s con0
sIO INFO:
Primera entrada: int en base 10 | Salida: ese número en la base 36
2da entrada: una cadena | Salida: números ASCII de la cadena
3ª entrada: entero | Salida: Verdadero o Falso dependiendo de si el número es divisible por 1738
4ta entrada: cadena | Salida: T o F dependiendo de si la cadena tiene "q"
5ta entrada: cadena | Salida: Caser Cipher +1 de la cadena
6to: simplemente imprime "PPCG" literalmente
7ma entrada: int n | Salida: primeros n ints divisibles por piso (sqrt (n))
8ª entrada: cadena | Salida: Reemplazó todas las
o
s con 0 (no con ಠ porque python no admite ese carácter, no te enojes demasiado :))fuente