/* 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'q7 bytes, dist 11Us36 u6 bytes, dist 14UmX=>Xc7 bytes, dist 14"PPCG"6 bytes, dist 18Ur"[Oo]",'ಠ13 bytes, dist 27X=Uq f;XoU*X+1,X16 bytes, dist 522oU fX=>2oX eY=>X%Y &&!(U%X)r(X,Y =>X+Y39 bytes, dist 172UmX=>128o mY=>Yd)a k'A i#Z,'A k'a i#z,'a gXc44 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 u5 bytesmc2 bytesv#ۊ4 bytes
oq2 bytes;B±B+C²UrF,@Bg1+BbX19 bytesk â x5 bytes"PPCG5 bytesB=U¬f)oU*B+1B13 bytesro'ಠ'i6 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.5no 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 elos con0sIO 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
os con 0 (no con ಠ porque python no admite ese carácter, no te enojes demasiado :))fuente