Perguntas não respondidas do PPCG


9

Este site querido do StackExchange tem muitos desafios e muitas boas respostas. Mas e os desafios que nunca foram respondidos ?

Tarefa

Escreva um programa ou uma função que imprima um desafio aberto pseudo-aleatório sem resposta (como em uma pergunta com exatamente zero respostas) do PPCG. Todos os desafios possíveis devem ser produzidos com a mesma probabilidade.

Entrada

  • Nenhuma entrada será aceita.

Resultado

  • Deve ser apenas o título, as tags e o link que devem ser separados por novas linhas.
    • O título deve ser exatamente como está no desafio.
    • As tags não têm um formato de saída estrito, mas devem incluir todas as tags.
    • O link pode ou não incluir o question-nameID após a pergunta e deve levar ao desafio.
  • Pode ou não ser traduzido para um formato legível por humanos.
    • & para &
  • Os espaços em branco à esquerda e à direita são permitidos.

Exemplos

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

Pontuação

Como esse é o , a resposta mais curta em bytes vence.


8
Estou ficando muito cansado dos desafios da stack-exchange-api .
Rɪᴋᴇʀ

3
@Riker Uhm ... obrigado pelo seu feedback? Eu realmente não sei por que você votaria por esse motivo, mas mais poder para você, eu acho.
totallyhuman

6
Eu não votei por isso. Eu votei mal porque acho que a pergunta é chata. Além disso, as perguntas fechadas precisariam ter a mesma probabilidade de serem produzidas?
Rɪᴋᴇʀ

11
Embora eu não sinta tanto interesse pelo @Riker, parece haver muitos desafios relacionados à API recentemente; tanto que eu consegui me impedir de usar a API por ~ 21 horas !
Shaggy

4
Curiosamente, esse desafio será exibido durante os testes, mas, quando eu responder, não será mais exibido nos testes.
HyperNeutrino

Respostas:


7

JavaScript + HTML, 271 250 232 bytes

Aparentemente, você pode usar Dates como números pseudo-aleatórios. Eu roubei isso da resposta de Shaggy .

(Utiliza apenas cerca de 4 da sua cota)

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)

Ele cria uma matriz qe depois chama g(1), que busca a primeira página de resultados e a adiciona a q. Então, se a solicitação diz has_more, ela chama g(f+1), que busca a próxima página, até chegar ao final e grava no documento HTML (que desescapa automaticamente a resposta)

Se não nos importarmos com todas as perguntas não respondidas, apenas as 30 mais recentes (usa apenas 1 de sua cota):

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


Desculpe, @Artyer, eu estava tão focado em trabalhar em minha própria resposta que nunca percebi que você tinha me derrotado por alguns minutos. Fico feliz em excluir minha resposta, se você achar que é semelhante à sua.
Shaggy

@ Shagy Está tudo bem. Também escrevi a segunda resposta ao mesmo tempo em que você a escreveu, por isso é uma feliz coincidência que eles acabem parecendo.
Artyer

Você pode economizar alguns bytes codificando no número de páginas que precisam ser buscadas. Em vez de j.has_more?g(f+1), tente #++f<5?g(f)
1138 Shaggy

Você também pode substituir q=q.concat(j.items)por q=[...q,...j.items]. Parece que Tags: é opcional, então você pode soltar isso também. E não é necessário join q.tags, ele será coagido em uma string ao ser concatenado em uma string. Por fim, o uso de um literal de modelo para a final também poupará alguns bytes.
Shaggy

@ Shaggy Infelizmente, eu cumpri minha cota. Ele é redefinido em 425 segundos.
Artyer 12/05/19

6

Python + pedidos + json + aleatório + 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']]))

Acabou por mais tempo do que eu gostaria.

-10 bytes graças a @totallyhuman usando R.choicee não R.shuffleo primeiro elemento.


Você pode salvar alguns bytes usando random.shuffle?
totallyhuman

... Espere, ou melhor ainda random.choice()?
totallyhuman

11
@totallyhuman Alterar o nome da entrada realmente não faz diferença no bytecount: P Mas obrigado por .choice()!
HyperNeutrino

Você não precisa a biblioteca JSON, utilize r.get(url).json()vez
OVS

Isso não explica has_more. Ele escolhe apenas aleatoriamente os 30 primeiros.
Artyer 12/05

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 um resultado incorreto retorna para totais para não-respostas / sem resposta. Ideia geral - obtenha total, do que obtenha página aleatória com um item.

Bash 174 153 bytes

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

Ele seleciona uma pergunta aleatória dos últimos 30, e não de todas as perguntas. Funciona a partir da linha de comando. Onda necessária w3m, jq e recode.

resultado:

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

Tenho certeza de que você precisa escolher entre todos eles. Mas seja bem-vindo ao PPCG de qualquer maneira!
NoOneIsHere
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.