Tulis kode untuk menentukan jawaban yang diterima

14

Posting jawaban untuk pertanyaan ini yang mengevaluasi jawaban untuk pertanyaan ini dan menentukan apakah itu menang.

Yang menang:

  • Pemenang adalah jawaban yang menang menurut jawaban terbanyak pada 1700 UTC, Minggu, 2 Maret.
  • Anda dipersilakan dan didorong untuk mengubah jawaban Anda sendiri saat kontes berlangsung. Tolong jangan mengubah yang lain.
  • Ikatan ditentukan oleh kode terpendek.
  • Terlepas dari berapa banyak sockpuppeting yang biasa Anda lakukan, jika ada sesuatu yang mencurigakan, saya akan mendiskualifikasi Anda.
  • Saya tidak akan menerima jawaban saya sendiri, tetapi saya akan menggunakannya untuk mengevaluasi jawaban Anda.

Aturan:

  • Perhitungan Anda harus memberikan skor numerik untuk jawaban sembarang (agar mudah, input ke algoritme Anda adalah id jawaban atau penurunan jawaban pada halaman).
  • Skor Anda harus memiliki setidaknya satu pemenang, dan harus ada kemungkinan jawaban selain Anda untuk menang.
  • Algoritme Anda tidak dapat menggunakan sesuatu yang sangat spesifik untuk jawaban Anda, juga tidak dapat menggunakan nama pengguna atau cap waktu sama sekali. Saya akan menjadi hakim terakhir dari arti "sangat spesifik", tetapi saya mendorong pemolisian masyarakat dan mempermalukan publik.
  • Kode Anda harus mengkompilasi, menjalankan, dan memberikan skor dengan jawaban apa pun.
  • Harap sertakan tautan ke cara untuk mengeksekusi kode Anda jika tidak terdaftar di Ideone . Lihat di bawah.

Bahasa ideone

Bukan itu Charles
sumber
1
Adakah alasan khusus untuk pembatasan "Harap hanya berkontribusi satu jawaban"? Jika saya mengembangkan dua algoritma yang sangat berbeda dengan dua kriteria yang sangat berbeda, tidak bisakah saya memposting keduanya?
Victor Stafusa
@ Viktor Saya kira Anda benar. Saya bisa mengurangi aturan itu, tapi saya akan menutup orang untuk menumpuk dek.
Bukannya Charles
Haruskah pemenang menentukan dengan benar bahwa itu sendiri adalah pemenang? Yaitu, jika jawaban A, B dan C mengatakan bahwa D adalah pemenangnya, tetapi D mengatakan bahwa A adalah pemenangnya, apakah D pemenangnya meskipun itu adalah jawaban yang salah?
Victor Stafusa
@ Viktor Pemenang tidak harus benar. Itu akan terlalu sulit.
Bukan karena Charles
Sejak kapan Ideone mengizinkan akses jaringan?
nyuszika7h

Jawaban:

6

R, 1 char

1

Anda dapat memberikan id jawaban sebagai argumen baris perintah jika diinginkan. :) Tautan ke ideone.

Elaborasi lebih lanjut

Karena tidak praktis untuk jawaban untuk mengeksekusi jawaban lain (bahasa yang berbeda, dll.) Dan mengevaluasinya berdasarkan hasil mereka, satu-satunya cara yang bisa saya lihat bagi mereka untuk memberikan skor adalah dengan menggunakan beberapa metrik kode.

Saya perhatikan bahwa semua jawaban lain sejauh ini memberikan skor lebih tinggi untuk program yang lebih pendek. Saya percaya ini adalah kode terpendek yang mungkin jadi harus peringkat tinggi dalam hasil jawaban lain.

Bagaimana dan apa jawaban yang diberikan kode saya untuk jawaban lain yang kelihatannya kurang relevan. Satu-satunya aspek penting adalah bahwa orang lain menilai jawaban saya tinggi.

Andris
sumber
Tolong jelaskan.
rahulroy9202
1
@ rahulroy9202 Jawaban yang diperbarui dengan alasan saya.
Andris
2
: D poin bagus. Asumsi Anda logis. Kecuali jika seseorang menemukan cara untuk mencetak 1 tanpa kode sama sekali. : D
rahulroy9202
@ rahulroy9202 Saya pikir tidak mungkin memposting blok kode kosong jadi walaupun ini mungkin dalam bahasa Anda tidak dapat memposting "kode" di sini. : D
Andris
coba <code> </code> jawaban dalam dan kode saya akan membacanya sebagai 0 jawaban char. : D
rahulroy9202
3

R, 1 char

0

Menindaklanjuti jawaban @ Andris, sekarang ada dua kode yang memiliki karakter tunggal: Andris dan saya. Karena kita terikat di mata jawaban yang lain, tidak ada di antara kita yang "menang", jadi jawaban saya tidak akan "menang". :-)

jvriesem
sumber
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)

Semoga berhasil!

Bukan itu Charles
sumber
2

JavaScript- 190 karakter

Asumsi: Blok kode pertama adalah jawabannya.

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

Dapat diuji di konsol browser. Itu mengasumsikan jawaban terpendek menjadi jawaban yang benar.

Cara mengeksekusi- Pada Chrome / Firefox buka konsol saat berada di halaman ini dan tempel kode dan jalankan.

rahulroy9202
sumber
Ini juga berfungsi di konsol IE 11 :)
ComFreek