Pertanyaan PPCG yang Tidak Dijawab


9

Situs StackExchange sayang ini memiliki banyak tantangan, dan begitu banyak jawaban yang baik. Tetapi bagaimana dengan tantangan yang tidak pernah dijawab ?

Tugas

Tulis program atau fungsi yang akan mencetak tantangan pseudo-random terbuka yang tidak dijawab (seperti dalam, pertanyaan dengan jawaban nol persis) dari PPCG. Semua tantangan yang mungkin harus dihasilkan dengan probabilitas yang sama.

Memasukkan

  • Tidak ada input yang akan diambil.

Keluaran

  • Harus hanya judul, tag, dan tautan yang harus dipisahkan oleh baris baru.
    • Judulnya harus persis seperti yang ada di tantangan.
    • Tag tidak memiliki format output yang ketat tetapi harus menyertakan semua tag.
    • Tautan mungkin atau mungkin tidak menyertakan question-nameid pertanyaan setelah dan harus mengarah ke tantangan.
  • Mungkin atau mungkin tidak diterjemahkan ke format yang dapat dibaca manusia.
    • & untuk &
  • Ruang putih terkemuka dan tertinggal diizinkan.

Contohnya

Encode a steganographic encoder into a package
code-challenge,unicode,steganography
/codegolf/65159/encode-a-steganographic-encoder-into-a-package

Simple predictive keyboard CG
code-golf
/codegolf/76196/simple-predictive-keyboard-cg

Mencetak gol

Karena ini adalah , jawaban tersingkat dalam byte menang.


8
Saya mulai muak dengan tantangan stack-exchange-api .
Rɪᴋᴇʀ

3
@Riker Uhm ... terima kasih atas tanggapan Anda? Saya benar-benar tidak tahu mengapa Anda akan downvote untuk alasan itu, tetapi lebih banyak kekuatan untuk Anda, saya kira.
Sepenuhnya manusiawi

6
Saya tidak memilih untuk itu. Saya turun karena saya pikir pertanyaannya membosankan. Juga, akankah pertanyaan tertutup perlu memiliki probabilitas yang sama untuk dikeluarkan?
Rɪᴋᴇʀ

1
Meskipun saya tidak merasa sekuat itu tentang @Riker, tampaknya ada banyak tantangan terkait API akhir-akhir ini; sangat banyak sehingga saya berhasil membuat saya diblokir dari menggunakan API selama ~ 21 jam !
Shaggy

4
Cukup menarik, tantangan ini akan muncul selama pengujian, tetapi begitu saya menjawabnya, itu tidak akan muncul dalam pengujian lagi.
HyperNeutrino

Jawaban:


7

JavaScript + HTML, 271 250 232 byte

Tampaknya Anda dapat menggunakan Dates sebagai angka pseudo-acak. Saya mencuri ini dari jawaban Shaggy .

(Hanya menggunakan sekitar 4 kuota Anda)

q=[]
g=f=>fetch('//api.stackexchange.com/questions/unanswered?site=codegolf&page='+f).then(r=>r.json().then(j=>(q=[...q,...j.items])^j.has_more?g(f+1):document.write(`<pre>${(q=q[new Date%q.length]).title}
${q.tags}
`+q.link)))
g(1)

Itu membuat array q, lalu memanggil g(1), yang mengambil halaman hasil pertama dan menambahkannya ke q. Kemudian, jika permintaan mengatakannya has_more, maka ia memanggil g(f+1), yang mengambil halaman berikutnya, hingga mencapai akhir dan menulis ke dokumen HTML (Yang secara otomatis akan menghapus respons)

Jika kami tidak peduli dengan semua pertanyaan yang belum terjawab, hanya 30 yang terbaru (Hanya gunakan 1 dari kuota Anda):

JavaScript + HTML, 213 196 179 byte

fetch`//api.stackexchange.com/questions/unanswered?site=codegolf`.then(r=>r.json().then(j=>document.write(`<pre>${(j=j.items[new Date%j.items.length]).title}
${j.tags}
`+j.link)))


Maaf, @Artyer, saya begitu fokus mengerjakan jawaban saya sendiri, saya tidak pernah melihat bahwa Anda akan mengalahkan saya sampai beberapa menit lagi. Saya senang menghapus jawaban saya, jika Anda merasa mirip dengan jawaban Anda.
Shaggy

@ Shaggy Tidak apa-apa. Saya juga menulis jawaban kedua pada saat yang sama ketika Anda menulis jawaban Anda, jadi itu kebetulan kebetulan bahwa mereka akhirnya sama.
Artyer

Anda dapat menyimpan beberapa bye dengan melakukan hardcoding pada jumlah halaman yang perlu diambil. Alih-alih j.has_more?g(f+1), coba++f<5?g(f)
Shaggy

Anda juga bisa mengganti q=q.concat(j.items)dengan q=[...q,...j.items]. Sepertinya Tags: ini opsional, jadi Anda bisa menjatuhkannya juga. Dan tidak perlu join q.tags, itu akan dipaksa menjadi string ketika digabungkan ke string. Akhirnya, menggunakan templat literal untuk final juga akan menghemat beberapa byte.
Shaggy

@Shaggy Sayangnya, saya telah memenuhi kuota saya. Ulang dalam 425 detik.
Artyer

6

Python + permintaan + json + acak + html, 249 239 byte

import requests as r,json,random as R,html
j=R.choice(json.loads(r.get('http://api.stackexchange.com/questions/no-answers?site=codegolf').text)['items'])
print('\n'.join([html.unescape(j['title']),'Tags: '+', '.join(j['tags']),j['link']]))

Ternyata lebih lama dari yang saya inginkan.

-10 byte terima kasih kepada @totallyhuman dengan menggunakan R.choicealih - alih R.shuffledan mengambil elemen pertama.


Bisakah Anda menyimpan beberapa byte dengan menggunakan random.shuffle?
Sepenuhnya manusiawi

... Tunggu, atau bahkan lebih baik random.choice(),?
totallyhuman

1
@totallyhuman Mengubah nama inpurt kebetulan benar-benar tidak membuat perbedaan dalam bytecount: P Tapi terima kasih untuk .choice()!
HyperNeutrino

Anda tidak perlu perpustakaan json, menggunakan r.get(url).json()bukan
ovs

Ini tidak masuk akal has_more. Hanya dipilih secara acak dari 30 pertama.
Artyer

0

Pesta 255 232 byte

a="api.stackexchange.com/questions/";b="?site=codegolf";c=$(w3m $a"unanswered"$b"&filter=total"|tr -cd 0-9);w3m $a"no-answers"$b"&pagesize=1&page="$((RANDOM%c))|jq -r ".items[0]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Sepertinya hasil yang salah mengembalikan untuk total tanpa jawaban / tidak dijawab. Gagasan umum - dapatkan total, daripada dapatkan halaman acak dengan satu item.

Pesta 174 153 byte

w3m api.stackexchange.com/questions/no-answers?site=codegolf|jq -r ".items[$RANDOM%(.items|length)]|.title,(.tags|join(\", \")),.link"|recode html..utf-8

Itu memilih satu pertanyaan acak dari 30 terakhir, bukan dari semua pertanyaan. Bekerja dari baris perintah. Diperlukan ikal w3m, jq dan recode.

hasil:

Tips for golfing in Charcoal
code-golf, tips
/codegolf/117269/tips-for-golfing-in-charcoal

Saya cukup yakin Anda harus memilih dari semuanya. Tapi selamat datang di PPCG!
NoOneIsHere
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.