Câu hỏi chưa được trả lời của PPCG


9

Trang web StackExchange thân yêu này có rất nhiều thách thức và rất nhiều câu trả lời hay. Nhưng những gì về những thách thức không bao giờ được trả lời ?

Bài tập

Viết chương trình hoặc một chức năng sẽ in một câu trả lời mở ngẫu nhiên giả ngẫu nhiên (như trong câu hỏi với câu trả lời chính xác bằng 0) từ PPCG. Tất cả các thách thức có thể nên được tạo ra với cùng một xác suất.

Đầu vào

  • Không có đầu vào sẽ được thực hiện.

Đầu ra

  • Chỉ phải là tiêu đề, thẻ và liên kết nên được phân tách bằng dòng mới.
    • Tiêu đề phải chính xác như trong thử thách.
    • Các thẻ không có định dạng đầu ra nghiêm ngặt nhưng phải bao gồm tất cả các thẻ.
    • Liên kết có thể có hoặc không bao gồm question-namecâu hỏi sau id và phải dẫn đến thử thách.
  • Có thể hoặc không được dịch sang định dạng có thể đọc được.
    • & đến &
  • Khoảng trắng hàng đầu và dấu được cho phép.

Ví dụ

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

Chấm điểm

Vì đây là , câu trả lời ngắn nhất bằng byte thắng.


8
Tôi đang thực sự phát ốm với những thách thức stack-exchange-api .
Rɪᴋᴇʀ

3
@Riker Uhm ... cảm ơn phản hồi của bạn? Tôi thực sự không biết tại sao bạn lại downvote vì lý do đó nhưng nhiều sức mạnh hơn cho bạn, tôi đoán vậy.
hoàn toàn là

6
Tôi đã không downvote cho điều đó. Tôi đánh giá thấp bởi vì tôi nghĩ rằng câu hỏi là nhàm chán. Ngoài ra, các câu hỏi đóng có cần phải có xác suất xuất ra như nhau không?
Rɪᴋᴇʀ

1
Mặc dù tôi không cảm thấy mạnh mẽ như @Riker, nhưng dường như gần đây có rất nhiều thách thức liên quan đến API; nhiều đến nỗi tôi đã tự mình ngăn chặn việc sử dụng API trong ~ 21 giờ !
Xù xì

4
Thật thú vị, thử thách này sẽ xuất hiện trong quá trình thử nghiệm, nhưng một khi tôi trả lời, nó sẽ không xuất hiện trong thử nghiệm nữa.
HyperNeutrino

Câu trả lời:


7

JavaScript + HTML, 271 250 232 byte

Bạn có thể sử dụng Dates làm số giả ngẫu nhiên. Tôi đã đánh cắp điều này từ câu trả lời của Shaggy .

(Chỉ sử dụng khoảng 4 hạn ngạch của bạn)

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)

Nó tạo một mảng q, sau đó gọi g(1), tìm nạp trang kết quả đầu tiên và thêm nó vào q. Sau đó, nếu yêu cầu nói ra has_more, thì nó sẽ gọi g(f+1), trang này sẽ tìm nạp trang tiếp theo, cho đến khi nó kết thúc và ghi ra tài liệu HTML (Sẽ tự động hủy bỏ phản hồi)

Nếu chúng tôi không quan tâm đến tất cả các câu hỏi chưa được trả lời, chỉ 30 câu hỏi gần đây nhất (Chỉ sử dụng 1 trong số hạn ngạch của bạn):

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


Xin lỗi, @Artyer, tôi đã rất tập trung vào làm việc với câu trả lời của riêng mình, tôi không bao giờ phát hiện ra rằng bạn sẽ đánh tôi tới cú đấm trong vài phút. Tôi rất vui khi xóa câu trả lời của tôi, nếu bạn cảm thấy nó giống với câu trả lời của bạn.
Xù xì

@Shaggy Không sao đâu. Tôi cũng đã viết câu trả lời thứ hai cùng lúc với bạn viết câu trả lời của bạn, vì vậy thật trùng hợp khi chúng kết thúc tương tự nhau.
Artyer

Bạn có thể lưu một vài bye bằng cách mã hóa số lượng trang cần tìm nạp. Thay vì j.has_more?g(f+1), hãy thử++f<5?g(f)
Shaggy

Bạn cũng có thể thay thế q=q.concat(j.items)bằng q=[...q,...j.items]. Có vẻ như Tags: là tùy chọn, vì vậy bạn cũng có thể bỏ nó. Và không cần join q.tags, nó sẽ bị ép thành một chuỗi khi được nối với một chuỗi. Cuối cùng, sử dụng một mẫu bằng chữ cho trận chung kết cũng sẽ giúp bạn tiết kiệm một vài byte.
Xù xì

@Shaggy Thật không may, tôi đã đạt được hạn ngạch của mình. Nó đặt lại trong 425 giây mặc dù.
Artyer

6

Python + request + json + Random + 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']]))

Hóa ra lâu hơn tôi muốn.

-10 byte nhờ @totallyhuman bằng cách sử dụng R.choicechứ không phải R.shufflelấy phần tử đầu tiên.


Bạn có thể lưu một vài byte bằng cách sử dụng random.shuffle?
con người

... Đợi đã, hay thậm chí tốt hơn , random.choice()?
con người

1
@totallyhuman Thay đổi tên inpurt thực sự không tạo ra sự khác biệt trong bytecount: P Nhưng cảm ơn vì .choice()!
HyperNeutrino

Bạn không cần thư viện json, r.get(url).json()thay vào đó hãy sử dụng
ovs

Điều này không tính đến has_more. Nó chỉ chọn ngẫu nhiên từ 30. Đầu tiên
Artyer

0

Bash 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

Có vẻ như một kết quả sai trả về tổng số cho câu trả lời không có / không được trả lời. Ý tưởng chung - nhận tổng số, hơn là lấy trang ngẫu nhiên với một mục.

Bash 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

Nó chọn một câu hỏi ngẫu nhiên từ 30 câu hỏi trước, không phải từ tất cả các câu hỏi. Hoạt động từ dòng lệnh. Yêu cầu curl w3m, jq và recode.

kết quả:

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

Tôi khá chắc chắn rằng bạn cần phải chọn từ tất cả chúng. Nhưng dù sao cũng chào mừng bạn đến với PPCG!
NoOneIsHãy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.