Preguntas sin respuesta de PPCG

9

Este querido sitio de StackExchange tiene tantos desafíos y tantas buenas respuestas. ¿Pero qué pasa con los desafíos que nunca fueron respondidos ?

Tarea

Escriba un programa o una función que imprima un desafío pseudoaleatorio abierto sin respuesta (como en una pregunta con exactamente cero respuestas) de PPCG. Todos los posibles desafíos deben producirse con la misma probabilidad.

Entrada

  • No se tomará ninguna entrada.

Salida

  • Solo deben ser el título, las etiquetas y el enlace que deben estar separados por nuevas líneas.
    • El título debe ser exactamente como está en el desafío.
    • Las etiquetas no tienen un formato de salida estricto, pero deben incluir todas las etiquetas.
    • El enlace puede incluir o no question-namela identificación posterior a la pregunta y debe conducir al desafío.
  • Puede o no traducirse a un formato legible por humanos.
    • & a &
  • Se permiten espacios en blanco iniciales y finales.

Ejemplos

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

Puntuación

Como se trata de , gana la respuesta más corta en bytes.

totalmente humano
fuente
8
Me estoy hartando de los desafíos de api de intercambio de pila .
Rɪᴋᴇʀ
3
@Riker Uhm ... ¿Gracias por tus comentarios? Realmente no sé por qué votarías por esa razón, pero supongo que tienes más poder.
Totalmente humano
66
No voté por eso. Voté en contra porque creo que la pregunta es aburrida. Además, ¿las preguntas cerradas deben tener la misma probabilidad de ser emitidas?
Rɪᴋᴇʀ
1
Si bien no estoy tan convencido de ello como @Riker, parece haber muchos desafíos relacionados con API últimamente; ¡Tanto que logré bloquear mi uso de la API durante ~ 21 horas !
Shaggy
44
Curiosamente, este desafío aparecerá durante las pruebas, pero una vez que lo responda, ya no aparecerá en las pruebas.
HyperNeutrino

Respuestas:

7

JavaScript + HTML, 271 250 232 bytes

Aparentemente puedes usar Dates como números pseudoaleatorios. Robé esto de la respuesta de Shaggy .

(Solo usa alrededor de 4 de su cuota)

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)

Crea una matriz q, luego llama g(1), que recupera la primera página de resultados y la agrega a q. Luego, si la solicitud lo dice has_more, llama g(f+1), que recupera la página siguiente, hasta que llega al final y escribe en el documento HTML (que automáticamente liberará la respuesta)

Si no nos interesan todas las preguntas sin respuesta, solo las 30 más recientes (solo usa 1 de su cuota):

JavaScript + HTML, 213 196 179 bytes

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
fuente
Lo siento, @Artyer, estaba tan concentrado en trabajar en mi propia respuesta que nunca vi que me hubieras golpeado por unos minutos. Me complace eliminar mi respuesta, si cree que es muy similar a la suya.
Shaggy
@ Shaggy Está bien. También escribí la segunda respuesta al mismo tiempo que escribiste tu respuesta, por lo que es una feliz coincidencia que terminaron siendo similares.
Artyer
Podrías ahorrar unos pocos byes codificando en la cantidad de páginas que hay que buscar. En lugar de j.has_more?g(f+1), intente++f<5?g(f)
Shaggy
También podría reemplazar q=q.concat(j.items)con q=[...q,...j.items]. Parece que Tags: es opcional, por lo que también puede dejarlo. Y no es necesario join q.tags, se convertirá en una cadena cuando se concatena a una cadena. Finalmente, usar un literal de plantilla para el final también debería ahorrarle algunos bytes.
Shaggy
@ Shaggy Desafortunadamente, he cumplido mi cuota. Sin embargo, se restablece en 425 segundos.
Artyer
6

Python + solicitudes + 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']]))

Resultó más de lo que me gustaría.

-10 bytes gracias a @totallyhuman usando en R.choicelugar de R.shuffley tomando el primer elemento.

Hiperneutrino
fuente
¿Puedes guardar algunos bytes usando random.shuffle?
Totalmente humano
... Espera, o incluso mejor random.choice()?
Totalmente humano
1
@totallyhuman Cambiar el nombre de la entrada en realidad no hace ninguna diferencia en el bytecount: P ¡Pero gracias por .choice()!
HyperNeutrino
No necesita la biblioteca json, r.get(url).json()
úsela
Esto no tiene en cuenta has_more. Solo elige al azar entre los primeros 30.
Artyer
0

Bash 255 232 bytes

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

Parece que los resultados incorrectos devuelven los totales de no respuestas / sin respuesta. Idea general: obtener total, que obtener una página aleatoria con un elemento.

Bash 174153 bytes

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

Selecciona una pregunta aleatoria de las últimas 30, no de todas las preguntas. Funciona desde la línea de comando. Curl requerido w3m, jq y recode.

resultado:

Tips for golfing in Charcoal
code-golf, tips
/codegolf/117269/tips-for-golfing-in-charcoal
usuario1516873
fuente
Estoy bastante seguro de que debes elegir entre todos. ¡Pero bienvenido a PPCG de todos modos!
NoOneIsHere