Напишите код, чтобы определить принятый ответ

14

Опубликовать ответ на этот вопрос, который оценивает любой ответ на этот вопрос и определяет, победит ли он.

Кто выигрывает:

  • Победитель - это ответ, который побеждает в соответствии с большинством ответов в 17:00 UTC, воскресенье, 2 марта.
  • Мы приглашаем вас изменить свой ответ по ходу конкурса. Пожалуйста, не меняйте чужие.
  • Галстуки определяются по самому короткому коду.
  • Независимо от того, сколько вы обычно можете делать с носорой, если что-то подозрительно, я вас дисквалифицирую.
  • Я не приму мой собственный ответ, но я буду использовать его, чтобы оценить ваш.

Правила:

  • Ваше вычисление должно обеспечивать числовую оценку для любого произвольного ответа (чтобы упростить, вход в ваш алгоритм является либо идентификатором ответа, либо уценкой ответа на странице).
  • У вашего счета должен быть хотя бы один победитель, и должен быть возможен ответ, кроме вашего, чтобы выиграть.
  • Ваш алгоритм не может использовать что-то очень специфичное для вашего ответа, а также не может использоваться имя пользователя или временные метки. Я буду последним судьей того, что означает «очень конкретный», но я призываю общественную полицию и публичный позор.
  • Ваш код должен компилироваться, запускаться и давать оценку при любом ответе.
  • Пожалуйста, включите ссылку на способ выполнения вашего кода, если он не указан в Ideone . См. ниже.

Идеальные языки

Не тот Чарльз
источник
1
Есть ли какая-либо особая причина ограничения "Пожалуйста, внесите только один ответ"? Если я разработаю два совершенно разных алгоритма с двумя совершенно разными критериями, я не могу опубликовать оба?
Виктор Стафуса
@ Виктор, я думаю, ты прав. Я могу смягчить это правило, но я остановлю людей за то, что они складывают колоду.
Не то, что Чарльз
Должен ли победитель правильно определить, что он сам является победителем? То есть, если ответы A, B и C говорят, что D - победитель, а D говорит, что A - победитель, является ли D победителем, даже если это неправильный ответ?
Виктор Стафуса
@Victor Победитель не должен быть правильным. Это было бы слишком сложно.
Не то, что Чарльз
С каких пор Ideone разрешает доступ к сети?
nyuszika7h

Ответы:

6

R, 1 символ

1

При желании вы можете указать идентификатор ответа в качестве аргумента командной строки. :) Ссылка на ideone.

Дальнейшая разработка

Поскольку для ответов нецелесообразно выполнять другие ответы (на разных языках и т. Д.) И оценивать их на основе их результатов, единственный оставшийся способ, которым я могу их оценить, - это использовать некоторую метрику кода.

Я заметил, что все другие ответы до сих пор дают более высокие оценки более коротким программам. Я считаю, что это самый короткий код, поэтому он должен занимать высокое место в результате других ответов.

Как и что ответит мой код, чтобы другие ответы были менее актуальными. Единственный важный аспект - это то, что другие оценивают мой ответ высоко.

Андрис
источник
Пожалуйста, дополните.
rahulroy9202
1
@ rahulroy9202 Обновленный ответ с моими рассуждениями.
Андрис
2
: D подмечено. Ваши предположения логичны. Если кто-то не найдет способ напечатать 1 без кода вообще. : D
rahulroy9202
@ rahulroy9202 Я думаю, что невозможно опубликовать пустой блок кода, поэтому, даже если это возможно на языке, вы не можете разместить здесь «код». : D
Андрис
попробуйте <code> </ code> внутри ответа, и мой код будет читать его как 0-символьный ответ. : D
rahulroy9202
3

R, 1 символ

0

В ответ на ответ @ Andris теперь есть два кода с одним символом: Andris и мой. Поскольку мы связываем в глазах другие ответы, ни один из нас не «выиграл» сразу, поэтому мой ответ не «победит». :-)

jvriesem
источник
2

Рубин, 368 символов

require 'json'
require 'open-uri'
v='body';w="#{v}_markdown";s='comments'
x=if(d=JSON.parse(open("http://api.stackexchange.com/2.2/answers/#{ARGV[0]}?site=codegolf&filter=!%29r%28UkmOhmCPjXru-TDty").read)['items'][0]).include?(s) then d[s].map{|c|c[w].length*[1,c[w].index('`')||1,c[w].index('\n')||1].max}.reduce(:+) else -2 end
puts d['score']*150+5*(d[v].match(/<(..).*?\1.*?\1/m))[0].ord+x-$~.end(0)

Удачи!

Не тот Чарльз
источник
2

JavaScript - 190 символов

Предположение: первый блок кода является ответом.

var ans=$('.answer'),s=999,sa;
for(i=0;i<ans.length;i++){
    var x =  ans[i].getElementsByTagName('code');   
    var z = x[0].innerHTML.replace(/\s/g,'').length;
    if(s>z){
        s=z;
        sa=ans[i];
        }    
}
console.log(sa);

Можно проверить в консоли браузера. Предполагается, что самый короткий ответ будет правильным.

Как выполнить - В Chrome / Firefox откройте консоль, находясь на этой странице, вставьте код и выполните.

rahulroy9202
источник
Это также работает в консоли IE 11 :)
ComFreek