PPCGの未回答の質問


9

この親愛なるStackExchangeサイトには、非常に多くの課題と多くの良い答えがあります。しかし、答えられなかった課題についてはどうでしょうか?

仕事

PPCGから疑似ランダムオープンアンサー(正確にゼロ答えの質問など)チャレンジを表示するプログラムまたは関数を記述します。すべての可能な課題は同じ確率で生成されるべきです。

入力

  • 入力は行われません。

出力

  • タイトル、タグ、および改行で区切られたリンクのみである必要があります。
    • タイトルは、挑戦中のとおりでなければなりません。
    • タグには厳密な出力形式はありませんが、すべてのタグを含める必要があります。
    • リンクquestion-nameには質問ID の後に含まれる場合と含まれない場合があり、チャレンジにつながる必要があります。
  • 人間が読める形式に変換される場合とそうでない場合があります。
    • &&
  • 先頭と末尾の空白は許可されます。

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 2017年

回答:


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、私は自分の答えに取り組むことに集中していました。あなたの答えに似ていると思われる場合は、私の答えを削除して喜んでいます。
シャギー

@シャギー大丈夫です。私もあなたがあなたの答えを書いたと同時に2番目の答えを書いたので、彼らが同様に終わったのは幸せな偶然です。
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秒でリセットされます。
Artyer

6

Python +リクエスト+ json +ランダム+ html、249 239バイト

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

思ったより長くなりました。

@totallyhumanのおかげで、最初の要素R.choiceではなくを使用して-10バイトR.shuffle


を使用して数バイトを節約できますrandom.shuffleか?
完全に人間的な2017年

...待って、またはさらに良いrandom.choice()ですか?
完全に人間的な

1
@totallyhuman inpurtの名前を変更しても、実際にはバイト数に違いはありません:Pしかし、ありがとう.choice()ございます!
HyperNeutrino 2017年

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

無回答/無回答の合計に対して誤った結果が返されるようです。一般的なアイデア-1つのアイテムでランダムなページを取得するよりも、合計を取得します。

バッシュ174153バイト

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

すべての質問からではなく、過去30問からランダムな質問を1つ選択します。コマンドラインから動作します。必要な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.