Schreiben Sie einen Code, um die akzeptierte Antwort zu ermitteln


14

Stellen Sie eine Antwort auf diese Frage, die eine Antwort auf diese Frage auswertet und feststellt, ob sie gewinnt.

Wer gewinnt:

  • Gewinner ist die Antwort, die nach den meisten Antworten um 1700 UTC, Sonntag, 2. März, gewinnt.
  • Sie sind herzlich eingeladen und ermutigt, Ihre eigene Antwort im Verlauf des Wettbewerbs zu ändern. Bitte ändern Sie nicht die der anderen.
  • Krawatten werden durch den kürzesten Code bestimmt.
  • Egal wie viel Sockenpuppen du normalerweise machst, wenn etwas faul ist, werde ich dich disqualifizieren.
  • Ich werde meine eigene Antwort nicht akzeptieren, aber ich werde sie verwenden, um Ihre zu bewerten.

Regeln:

  • Ihre Berechnung muss für jede beliebige Antwort eine numerische Punktzahl liefern (um dies zu vereinfachen, ist die Eingabe in Ihren Algorithmus entweder die ID der Antwort oder der Abschlag der Antwort auf der Seite).
  • Ihre Punktzahl muss mindestens einen Gewinner haben und es muss möglich sein, dass eine andere Antwort als Ihre gewinnt.
  • Ihr Algorithmus kann weder etwas verwenden, das für Ihre Antwort sehr spezifisch ist, noch können Benutzername oder Zeitstempel verwendet werden. Ich werde die endgültige Entscheidung darüber treffen, was "sehr spezifisch" bedeutet, aber ich ermutige die Gemeindepolizei und die öffentliche Schande.
  • Ihr Code muss kompiliert, ausgeführt und bei jeder Antwort bewertet werden.
  • Bitte fügen Sie einen Link zu einer Methode zur Ausführung Ihres Codes bei, wenn dieser nicht bei Ideone aufgeführt ist . Siehe unten.

Ideone Sprachen


1
Gibt es einen besonderen Grund für die Einschränkung "Bitte nur eine Antwort beisteuern"? Kann ich nicht beides posten, wenn ich zwei sehr unterschiedliche Algorithmen mit zwei sehr unterschiedlichen Kriterien entwickle?
Victor Stafusa

@ Victor Ich denke du hast recht. Diese Regel kann ich lockerer anwenden, aber ich werde die Leute ausschalten, um das Deck zu stapeln.
Nicht dass Charles

Sollte der Gewinner richtig feststellen, dass er selbst der Gewinner ist? IE, wenn die Antworten A, B und C sagen, dass D der Gewinner ist, aber D sagt, dass A der Gewinner ist, ist D der Gewinner, auch wenn es eine falsche Antwort ist?
Victor Stafusa

@Victor Der Gewinner muss nicht korrekt sein. Das wäre viel zu schwer.
Nicht dass Charles

Seit wann erlaubt Ideone den Netzwerkzugriff?
Nyuszika7h

Antworten:


6

R, 1 Zeichen

1

Sie können die ID einer Antwort als Befehlszeilenargument angeben, wenn Sie dies wünschen. :) Link zu ideone.

Weitere Ausarbeitung

Da es für eine Antwort nicht praktikabel ist, andere Antworten (verschiedene Sprachen usw.) auszuführen und sie auf der Grundlage ihres Ergebnisses zu bewerten, sehe ich für sie nur noch die Möglichkeit, eine Punktzahl anzugeben, indem Sie eine Codemetrik verwenden.

Ich habe festgestellt, dass alle anderen Antworten kürzeren Programmen eine höhere Punktzahl verleihen. Ich glaube, dies ist der kürzest mögliche Code, daher sollte er im Ergebnis anderer Antworten einen hohen Rang einnehmen.

Wie und welche Antwort mein Code gibt, damit andere Antwortnähte weniger relevant sind. Der einzige wichtige Aspekt ist, dass andere meine Antwort als hoch einstufen.


Bitte erläutern Sie.
Rahulroy9202

1
@ rahulroy9202 Aktualisierte Antwort mit meiner Begründung.
Andris

2
: D guter Punkt. Ihre Annahmen sind logisch. Es sei denn, jemand findet eine Möglichkeit, 1 ohne Code zu drucken. : D
rahulroy9202

@ rahulroy9202 Ich denke, es ist nicht möglich, einen leeren Codeblock zu posten. Selbst wenn dies in einer Sprache möglich ist, können Sie den "Code" hier nicht posten. : D
Andris

Versuchen Sie es mit <code> </ code> inside answer und mein Code liest es als 0 char answer. : D
rahulroy9202

3

R, 1 Zeichen

0

Nach der Antwort von @ Andris gibt es jetzt zwei Codes mit einem einzigen Zeichen: Andris und meinen. Da wir die Augen der anderen Antworten einbinden, hat keiner von uns direkt "gewonnen", so dass meine Antwort nicht "gewinnen" wird. :-)


2

Rubin, 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)

Viel Glück!


2

JavaScript - 190 Zeichen

Annahme: Der erste Codeblock ist die Antwort.

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);

Kann in der Browserkonsole getestet werden. Es wird davon ausgegangen, dass die kürzeste Antwort die richtige ist.

Ausführen - Öffnen Sie auf Chrome / Firefox die Konsole, während Sie sich auf dieser Seite befinden, und fügen Sie Code ein und führen Sie den Befehl aus.


Es funktioniert auch in der IE 11-Konsole :)
ComFreek
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.