Pytania PPCG bez odpowiedzi


9

Ta droga strona StackExchange ma tak wiele wyzwań i wiele dobrych odpowiedzi. Ale co z wyzwaniami, na które nigdy nie odpowiedziano ?

Zadanie

Napisz program lub funkcję, która wydrukuje pseudolosowe otwarte nieodebrane (jak w pytaniu z dokładnie zerowymi odpowiedziami) wyzwanie z PPCG. Wszystkie możliwe wyzwania powinny być tworzone z takim samym prawdopodobieństwem.

Wejście

  • Żadne dane nie zostaną pobrane.

Wynik

  • Musi to być tylko tytuł, tagi i link, które powinny być oddzielone znakami nowej linii.
    • Tytuł musi być dokładnie taki, jak w wyzwaniu.
    • Tagi nie mają ścisłego formatu wyjściowego, ale muszą zawierać wszystkie tagi.
    • Link może zawierać question-nameidentyfikator zapytania i może prowadzić do wyzwania.
  • Może, ale nie musi, być przetłumaczony na format czytelny dla człowieka.
    • & do &
  • Wiodące i końcowe białe znaki są dozwolone.

Przykłady

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

Punktacja

Jak to jest , najkrótsza odpowiedź w bajtach wygrywa.


8
Naprawdę mam dość wyzwań związanych z wymianą stosów API .
— Rɪᴋᴇʀ

3
@Riker Uhm ... dzięki za opinie? Naprawdę nie wiem, dlaczego głosujesz z tego powodu, ale wydaje mi się, że masz więcej mocy.
— całkowicie ludzki,

6
Nie głosowałem za tym. Głosowałem za tym, ponieważ myślę, że pytanie jest nudne. Czy zamknięte pytania powinny mieć jednakowe prawdopodobieństwo, że zostaną wypisane?
— Rɪᴋᴇʀ

1
Chociaż nie czuję się tak mocno jak @Riker, wydaje się, że ostatnio pojawiło się wiele wyzwań związanych z API; tak bardzo, że udało mi się zablokować korzystanie z API przez ~ 21 godzin !
— Kudłaty

4
Co ciekawe, wyzwanie pojawi się podczas testowania, ale kiedy odpowiem na to pytanie, nie pojawi się już podczas testowania.
— HyperNeutrino

Odpowiedzi:


7

JavaScript + HTML, 271 250 232 bajtów

Wygląda na to, że możesz użyć Dates jako liczb pseudolosowych. Ukradłem to z odpowiedzi Kudłatego .

(Wykorzystuje tylko około 4 twojego przydziału)

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)

Tworzy tablicę q, a następnie wywołuje g(1), która pobiera pierwszą stronę wyników i dodaje ją do q. Następnie, jeśli żądanie to mówi has_more, wywołuje g(f+1), co pobiera następną stronę, aż dotrze do końca i wypisze do dokumentu HTML (co automatycznie usunie scenę z odpowiedzi)

Jeśli nie przejmujemy się wszystkimi pytaniami, na które nie udzielono odpowiedzi, tylko 30 ostatnich (wykorzystuje tylko 1 z Twojego przydziału):

JavaScript + HTML, 213 196 179 bajtów

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


Przepraszam, @Artyer, byłem tak skoncentrowany na pracy nad własną odpowiedzią, że nigdy nie zauważyłem, że pokonałeś mnie o kilka minut. Z przyjemnością usunę moją odpowiedź, jeśli uważasz, że jest podobna do twojej.
— Kudłaty

@Shaggy W porządku. Napisałem również drugą odpowiedź w tym samym czasie, co ty napisałeś swoją odpowiedź, więc to szczęśliwy zbieg okoliczności, że skończyły się podobnie.
— Artyer

Możesz zaoszczędzić kilka bajtów, wpisując na stałe liczbę stron do pobrania. Zamiast tego j.has_more?g(f+1)spróbuj++f<5?g(f)
— Kudłaty

Można również wymienić q=q.concat(j.items)się q=[...q,...j.items]. Wygląda na to, że Tags: jest opcjonalny, więc możesz to również upuścić. I nie trzeba join q.tags, zostanie on przymuszony do łańcucha, gdy zostanie połączony z łańcuchem. Wreszcie, użycie literału szablonu w finale powinno również zaoszczędzić kilka bajtów.
— Kudłaty

@Shaggy Niestety, osiągnąłem limit. Jednak resetuje się po 425 sekundach.
— Artyer

6

Python + żądania + json + random + html, 249 239 bajtów

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

Okazało się dłużej, niż bym chciał.

-10 bajtów dzięki @totallyhuman przy użyciu R.choicezamiast R.shufflepierwszego elementu.


Czy możesz zaoszczędzić kilka bajtów, używając random.shuffle?
— całkowicie ludzki,

... Poczekaj, czy nawet lepiej random.choice()?
— całkowicie ludzki,

1
@ totallyhuman Zmiana nazwy inpurt faktycznie nie robi żadnej różnicy w liczbie bajtów: P Ale dziękuję za .choice()!
— HyperNeutrino

Nie potrzebujesz biblioteki json, użyj r.get(url).json()zamiast niej
— ovs

To nie dotyczy has_more. Wybiera tylko losowo z pierwszych 30.
— Artyer

0

Bash 255 232 bajty

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

Wygląda na to, że zwracane są błędne wyniki dla sum w przypadku braku odpowiedzi / braku odpowiedzi. Ogólny pomysł - uzyskaj sumę, niż zdobądź losową stronę z jednym przedmiotem.

Bash 174 153 bajty

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

Wybiera jedno losowe pytanie z ostatnich 30, a nie ze wszystkich pytań. Działa z wiersza poleceń. Wymagane curl w3m, jq i recode.

wynik:

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

Jestem pewien, że musisz wybierać spośród nich wszystkich. Ale i tak witamy w PPCG!
— NoOneIsHere
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.