Questions sans réponse de PPCG

9

Ce cher site StackExchange a tant de défis et tant de bonnes réponses. Mais qu'en est-il des défis qui n'ont jamais été résolus ?

Tâche

Écrivez un programme ou une fonction qui imprimera un défi ouvert pseudo-aléatoire sans réponse (comme dans une question avec exactement zéro réponse) de PPCG. Tous les défis possibles devraient être produits avec la même probabilité.

Contribution

  • Aucune entrée ne sera prise.

Production

  • Ne doit être que le titre, les balises et le lien qui doivent être séparés par des retours à la ligne.
    • Le titre doit être exactement comme dans le défi.
    • Les balises n'ont pas un format de sortie strict mais doivent inclure toutes les balises.
    • Le lien peut inclure ou non l' question-nameidentifiant après la question et doit mener au défi.
  • Peut ou peut ne pas être traduit dans un format lisible par l'homme.
    • & à &
  • Les espaces blancs de début et de fin sont autorisés.

Exemples

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

Notation

Comme il s'agit de , la réponse la plus courte en octets l'emporte.

totalement humain
la source
8
J'en ai vraiment marre des défis de stack-exchange-api .
Rɪᴋᴇʀ
3
@Riker Uhm ... merci pour vos commentaires? Je ne sais vraiment pas pourquoi vous voteriez pour cette raison, mais plus de pouvoir pour vous, je suppose.
totalement humain
6
Je n'ai pas downvote pour cela. J'ai voté contre parce que je pense que la question est ennuyeuse. De même, les questions fermées devraient-elles avoir la même probabilité d'être émises?
Rɪᴋᴇʀ
1
Bien que je ne sois pas aussi convaincu que @Riker, il semble y avoir eu beaucoup de défis liés à l'API ces derniers temps; à tel point que j'ai réussi à m'empêcher d'utiliser l'API pendant environ 21 heures !
Shaggy
4
Chose intéressante, ce défi apparaîtra pendant les tests, mais une fois que j'y répondrai, il n'apparaîtra plus dans les tests.
HyperNeutrino

Réponses:

7

JavaScript + HTML, 271 250 232 octets

Apparemment, vous pouvez utiliser Dates comme des nombres pseudo-aléatoires. J'ai volé ça dans la réponse de Shaggy .

(Utilise seulement environ 4 de votre quota)

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)

Il fait un tableau q, puis appelleg(1) , qui récupère la première page de résultats et l'ajoute à q. Ensuite, si la demande le dit has_more, alors il appelle g(f+1), qui récupère la page suivante, jusqu'à ce qu'il atteigne la fin et écrit dans le document HTML (ce qui effacera automatiquement la réponse)

Si on s'en fout toutes les questions sans réponse, juste les 30 dernières (n'utilise que 1 de votre quota):

JavaScript + HTML, 213 196 179 octets

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
la source
Désolé, @Artyer, j'étais tellement concentré sur le travail sur ma propre réponse, je n'ai jamais remarqué que vous m'aviez battu au poinçon de quelques minutes. Je suis heureux de supprimer ma réponse, si vous pensez qu'elle est similaire à la vôtre.
Shaggy
@Shaggy Ça va. J'ai également écrit la deuxième réponse en même temps que vous avez écrit votre réponse, c'est donc une heureuse coïncidence qu'ils soient finalement similaires.
Artyer
Vous pouvez économiser quelques byes en codant en dur le nombre de pages à récupérer. Au lieu de j.has_more?g(f+1), essayez++f<5?g(f)
Shaggy
Vous pouvez également remplacer q=q.concat(j.items)par q=[...q,...j.items]. Il semble que ce Tags: soit facultatif, vous pouvez donc le supprimer également. Et pas besoin join q.tags, il sera contraint dans une chaîne lors de sa concaténation à une chaîne. Enfin, l'utilisation d'un littéral de modèle pour la finale devrait également vous faire économiser quelques octets.
Shaggy
@Shaggy Malheureusement, j'ai atteint mon quota. Il se réinitialise cependant en 425 secondes.
Artyer
6

Python + requêtes + json + aléatoire + html, 249 239 octets

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

S'est avéré plus long que je ne le voudrais.

-10 octets grâce à @totallyhuman en utilisant R.choiceplutôt que R.shuffleet en prenant le premier élément.

HyperNeutrino
la source
Pouvez-vous économiser quelques octets en utilisant random.shuffle?
2017 totalement humain
... Attendez, ou encore mieux random.choice(),?
2017 totalement humain
1
@totallyhuman Changer le nom d'entrée ne fait en fait aucune différence dans le nombre de bytecount: P Mais merci pour .choice()!
HyperNeutrino
Vous n'avez pas besoin de la bibliothèque json, utilisez r.get(url).json()plutôt
ovs
Cela ne tient pas compte has_more. Il ne choisit qu'au hasard parmi les 30 premiers.
Artyer
0

Bash 255232 octets

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

Il semble qu'un mauvais résultat renvoie des totaux pour les non-réponses / sans réponse. Idée générale - obtenir un total, puis obtenir une page au hasard avec un seul élément.

Bash 174153 octets

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

Il sélectionne une question aléatoire parmi les 30 dernières, pas parmi toutes les questions. Fonctionne à partir de la ligne de commande. Boucle requise w3m, JQ et Recode.

résultat:

Tips for golfing in Charcoal
code-golf, tips
/codegolf/117269/tips-for-golfing-in-charcoal
user1516873
la source
Je suis sûr que vous devez choisir parmi chacun d'eux. Mais bienvenue chez PPCG quand même!
NoOneIsHere