Напишіть код, щоб визначити прийняту відповідь


14

Опублікуйте відповідь на це запитання, яка оцінить будь-яку відповідь на це питання і визначить, чи виграє вона.

Хто виграє:

  • Переможець - це відповідь, яка виграє за найбільш відповідями о 1700 UTC, неділя, 2 березня.
  • Запрошуємо вас і заохочувались змінити власну відповідь по мірі проходження змагань. Будь ласка, не змінюйте інших.
  • Зв'язки визначаються найкоротшим кодом.
  • Незалежно від того, скільки б ви могли нормально робити, якщо щось є рибним, я позбавлю вас дискваліфікації.
  • Я не прийму власної відповіді, але буду використовувати її для оцінки вашої.

Правила:

  • Ваш розрахунок повинен забезпечити числовий бал для будь-якої довільної відповіді (для спрощення, вхід до вашого алгоритму є або ідентифікатором відповіді, або розміткою відповіді на сторінці).
  • У вашому рахунку повинен бути принаймні один переможець, а також, крім вашої, має бути можливість виграти відповідь.
  • Ваш алгоритм не може використовувати щось дуже специфічне для вашої відповіді, а також ім'я користувача або часові позначки взагалі не можна використовувати. Я буду остаточним суддею того, що означає "дуже конкретний", але я заохочую громадську поліцію та громадську ганьбу.
  • Ваш код повинен компілювати, запускати та давати бали за будь-яку відповідь.
  • Будь ласка, включіть посилання на спосіб виконання коду, якщо він не вказаний на Ideone . Дивіться нижче.

Мови ідеалу


1
Якась особлива причина обмеження "Будь ласка, надішліть лише одну відповідь"? Якщо я розробляю два дуже різні алгоритми з двома дуже різними критеріями, чи не можу я розмістити обидва?
Віктор Стафуса

@Victor Я думаю, ти маєш рацію. Я можу полегшити це правило, але я закрию людей для укладання колоди.
Не те, що Чарльз

Чи повинен переможець правильно визначити, що саме він є переможцем? IE, якщо відповіді A, B і C кажуть, що D - переможець, але D каже, що A - переможець, чи D переможець, навіть якщо це неправильна відповідь?
Віктор Стафуса

@Victor Переможець не повинен бути правильним. Це було б занадто важко.
Не те, що Чарльз

З якого часу Ideone дозволяє доступ до мережі?
nyuszika7h

Відповіді:


6

R, 1 char

1

Ви можете надати ідентифікатор відповіді як аргумент командного рядка, якщо бажаєте. :) Посилання на ideone.

Подальше опрацювання

Оскільки відповіді на виконання інших відповідей (різних мов тощо) не є практичним, а оцінювати їх виходячи з їх результату, єдиний спосіб, який я бачу, щоб оцінити їх, - це використовувати деякий показник коду.

Я помітив, що всі інші відповіді поки що дають більш високий бал для коротших програм. Я вважаю, що це найкоротший можливий код, тому він повинен мати високий рейтинг за результатами інших відповідей.

Як і яку відповідь дає мій код, коли шви інших відповідей менш актуальні. Єдиний важливий аспект - це те, що інші оцінюють мою відповідь високо.


Будь ласка, докладно.
rahulroy9202

1
@ rahulroy9202 Оновлена ​​відповідь з моїми міркуваннями.
Андріс

2
: D хороший момент. Ваші припущення логічні. Якщо хтось не з'ясує спосіб надрукувати 1 без коду взагалі. : D
rahulroy9202

@ rahulroy9202 Я думаю, що неможливо опублікувати блок порожнього коду, тому навіть якщо це можливо мовою, яку ви не можете опублікувати тут "кодом". : D
Андріс

спробуйте <code> </code> всередині відповіді, і мій код прочитає його як 0 char відповідь. : D
rahulroy9202

3

R, 1 char

0

Після відповіді на відповідь @ Андріса, тепер є два коди, що мають єдиний символ: Андріс і мій. Оскільки ми зав'язуємо в очах інші відповіді, ніхто з нас не виграв прямо, тому моя відповідь не «переможе». :-)


2

Ruby, 368 char

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 char

Припущення: перший блок коду - це відповідь.

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 відкрийте консоль, перебуваючи на цій сторінці, вставте код і виконайте.


Він також працює в консолі IE 11 :)
ComFreek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.