คำถามที่ไม่มีคำตอบของ PPCG


9

เว็บไซต์ StackExchange ที่รักมีความท้าทายมากมายและคำตอบที่ดีมากมาย แต่แล้วความท้าทายที่ไม่เคยได้รับคำตอบล่ะ?

งาน

เขียนโปรแกรมหรือฟังก์ชั่นที่จะพิมพ์แบบเปิดหลอกที่ยังไม่ได้ตอบ (เช่นในคำถามที่มีคำตอบตรงศูนย์) จาก PPCG ความท้าทายที่เป็นไปได้ทั้งหมดควรสร้างขึ้นด้วยความน่าจะเป็นเดียวกัน

อินพุต

  • จะไม่มีการป้อนข้อมูลใด ๆ

เอาท์พุต

  • ต้องเป็นชื่อแท็กและลิงก์ที่ควรคั่นด้วยบรรทัดใหม่
    • ชื่อจะต้องเหมือนในความท้าทาย
    • แท็กไม่มีรูปแบบเอาต์พุตที่เข้มงวด แต่ต้องรวมแท็กทั้งหมด
    • ลิงก์อาจรวมหรือไม่มีquestion-nameรหัสคำถามและจะต้องนำไปสู่ความท้าทาย
  • อาจแปลเป็นรูปแบบที่มนุษย์อ่านหรือไม่ก็ได้
    • & ถึง &
  • อนุญาตช่องว่างนำหน้าและต่อท้าย

ตัวอย่าง

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

เกณฑ์การให้คะแนน

เช่นนี้คือ คำตอบสั้นที่สุดเป็นไบต์ชนะ


8
ฉันเบื่อกับความท้าทายของstack-exchange-api
Rɪᴋᴇʀ

3
@Riker Uhm ... ขอบคุณสำหรับคำติชมของคุณ? ฉันไม่รู้จริงๆว่าทำไมคุณถึงลงคะแนนด้วยเหตุผลนั้น แต่ฉันคิดว่าคุณมีพลังมากขึ้น
สิ้นเชิงมนุษย์

6
ฉันไม่ได้ลงคะแนนให้ ฉันลงคะแนนเพราะฉันคิดว่าคำถามน่าเบื่อ นอกจากนี้คำถามที่ปิดจะต้องมีความน่าจะเป็นที่เท่ากันของการถูกเอาท์พุท?
Rɪᴋᴇʀ

1
ในขณะที่ผมไม่รู้สึกเป็นอย่างมากเกี่ยวกับมันเช่น @Riker มีไม่ดูเหมือนจะมีเป็นจำนวนมากของความท้าทาย API ที่เกี่ยวข้องเมื่อเร็ว ๆ นี้; มากเสียจนฉันสามารถบล็อกตัวเองจากการใช้ API เป็นเวลา ~ 21 ชั่วโมง !
Shaggy

4
น่าสนใจพอความท้าทายนี้จะปรากฏขึ้นระหว่างการทดสอบ แต่เมื่อฉันตอบแล้วมันจะไม่ปรากฏในการทดสอบอีกต่อไป
HyperNeutrino

คำตอบ:


7

JavaScript + HTML, 271 250 232 ไบต์

เห็นได้ชัดว่าคุณสามารถใช้Dates เป็นตัวเลขสุ่มหลอก ฉันขโมยนี้จากคำตอบของปุย

(ใช้โควต้าของคุณประมาณ 4 เท่านั้น)

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)

มันสร้างอาร์เรย์qจากนั้นเรียกg(1)ซึ่งเรียกหน้าแรกของผลลัพธ์และเพิ่มลงใน q จากนั้นหากคำขอบอกว่ามันhas_moreจะเรียกg(f+1)ซึ่งดึงข้อมูลหน้าถัดไปจนกว่าจะถึงจุดสิ้นสุดและเขียนลงในเอกสาร HTML (ซึ่งจะยกเลิกการตอบสนองโดยอัตโนมัติ)

หากเราไม่สนใจคำถามที่ยังไม่ได้ตอบทั้งหมดล่าสุด 30 ข้อเท่านั้น (ใช้โควต้าของคุณเพียง 1):

JavaScript + HTML, 213 196 179 ไบต์

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


ขออภัย @Artyer ฉันมุ่งเน้นไปที่การตอบคำถามของตัวเองฉันไม่เคยเห็นว่าคุณจะทุบตีฉันให้ชกได้ในเวลาไม่กี่นาที ฉันยินดีที่จะลบคำตอบของฉันถ้าคุณรู้สึกว่ามันคล้ายกับของคุณ
Shaggy

@Shaggy ไม่เป็นไร ฉันยังเขียนคำตอบที่สองในเวลาเดียวกันกับที่คุณเขียนคำตอบของคุณดังนั้นมันจึงเป็นเรื่องบังเอิญที่พวกเขามีความสุข
Artyer

คุณสามารถบันทึกได้สองสามไบต์โดยการเข้ารหัสในจำนวนหน้าที่ต้องดึงข้อมูล แทนที่จะj.has_more?g(f+1)ลองใช้++f<5?g(f)
Shaggy

นอกจากนี้คุณยังสามารถใช้ทดแทนด้วยq=q.concat(j.items) q=[...q,...j.items]ดูเหมือนว่าTags: จะเป็นตัวเลือกดังนั้นคุณสามารถวางได้เช่นกัน และไม่จำเป็นต้องใช้join q.tagsมันจะถูกรวมเข้ากับสตริงเมื่อทำการต่อเชื่อมกับสตริง ในที่สุดการใช้เทมเพลตตัวอักษรสำหรับรอบสุดท้ายก็ควรช่วยคุณสองสามไบต์เช่นกัน
Shaggy

@Shaggy น่าเสียดายที่ฉันพบโควต้าแล้ว มันรีเซ็ตใน 425 วินาทีแม้ว่า
2560

6

Python + ร้องขอ + json + random + html, 249 239 bytes

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

เปิดออกนานกว่าที่ฉันต้องการ

-10 ไบต์ขอบคุณ @tallynhuman โดยใช้R.choiceแทนR.shuffleและรับองค์ประกอบแรก


คุณสามารถบันทึกไม่กี่ไบต์โดยใช้random.shuffle?
สิ้นเชิงมนุษย์

... รอหรือดียิ่งขึ้นrandom.choice()?
สิ้นเชิงมนุษย์

1
@tallyallyhuman การเปลี่ยนชื่อ inpurt เกิดขึ้นจริง ๆ แล้วไม่ได้สร้างความแตกต่างในจำนวน bytecount: P แต่ขอบคุณสำหรับ.choice()!
HyperNeutrino

คุณไม่จำเป็นต้องห้องสมุด JSON ใช้r.get(url).json()แทน
OVS

has_moreนี้ไม่ได้บัญชีสำหรับ มันสุ่มเลือกจาก 30 วันแรกเท่านั้น
Artyer

0

Bash 255 232 ไบต์

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

ดูเหมือนว่าผลลัพธ์ที่ผิดจะส่งคืนผลรวมของคำตอบ / ไม่มีคำตอบ แนวคิดทั่วไป - รับทั้งหมดกว่ารับหน้าสุ่มด้วยหนึ่งรายการ

Bash 174 153 ไบต์

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

มันเลือกคำถามสุ่มหนึ่งข้อจาก 30 ข้อล่าสุดไม่ใช่จากคำถามทั้งหมด ทำงานจากบรรทัดคำสั่ง ต้องการcurl w3m, jq และ recode

ผลลัพธ์:

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

ฉันค่อนข้างมั่นใจว่าคุณต้องเลือกจากพวกเขาทั้งหมด แต่ยินดีต้อนรับสู่ PPCG ต่อไป!
NoOneIsHere
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.