プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

30
スリープソートを実装する
スリープソートは、インターネットで見つけた整数ソートアルゴリズムです。出力ストリームを開き、各入力番号に対して並列に、number秒遅延してその番号を出力します。遅延のため、最も大きい番号が最後に出力されます。私はそれがO(n + m)を持っていると推定します。ここで、nは要素の数であり、mは最大数です。 Bashの元のコードは次のとおりです。 #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait これが擬似コードです sleepsort(xs) output = [] fork for parallel x in xs: sleep for x seconds append x to output wait until length(output) == length(xs) return …
74 code-golf 

30
階乗を見つける!
非負整数の階乗を見つける最短のプログラムまたは関数を作成します。 で表される階乗は、!そのように定義されます n!:={1n⋅(n−1)!n=0n > 0n!:={1n=0n⋅(n−1)!n>0n!:=\begin{cases}1 & n=0\\n\cdot(n-1)!&n>0\end{cases} 平易な英語では、0の階乗は1であり、nの階乗は、nが0より大きい場合、nより小さい階乗の階乗のn倍です。 コードは、標準の方法を使用して入出力を実行する必要があります。 要件: 階乗を計算できる組み込みライブラリを使用しません(これにはの形式が含まれますeval) 125までの数値の階乗を計算できます 数値0(1に等しい)の階乗を計算できます 最大125の番号で1分以内に完了 最短の提出が勝ち、同点の場合は、その時点で最も票数の多い答えが勝ちます。

13
修道士シミュレーター
Tは、彼らが誰かが作る見るたびに、彼セントGolfusの順簡潔からの兄弟は短い祈りを暗唱の伝統を持っている十字架の印を。最近観光客の間で測定された罪のレベルが高いため、彼らは修道院にCCTVを設置し、AIの時代に古い伝統を生き続けるためにあなたを雇いました。 あなたの仕事は、兄弟の指追跡ソフトウェアからの出力を分析し、どれだけの祈りが必要かを伝えることです。入力は、0〜4の整数を含む行列です。1,2,3,4は、連続する瞬間の指の位置を表します。0は非指を表します。 自分自身を横断するOne True Way TMは次のとおりです。 .1. 3.4 .2. (「。」は任意の数字に一致します)。ただし、カメラの回転に関する不確実性と、群衆の中に敬意を表す東方正教会の同胞(One True Way TMは反対方向にある)の存在のため、すべての回転と反射もカウントする必要があります。 .4. .2. .3. .1. .3. .2. .4. 1.2 4.3 2.1 4.3 1.2 3.4 2.1 .3. .1. .4. .2. .4. .1. .3. 1つの数字が複数の十字の一部である場合があります。.pray()上記の3x3サブマトリックスがいくつ存在するかを数えることで、兄弟がAIの回数を判断するのを助けます。プログラムまたは関数を作成します。合理的で便利な形式で入力してください。 遺言の場合: // in [[0,4,2,0], [1,3,2,4], [2,3,1,0]] // out 2 // in [[4,3,3,2,4,4,1,3,2,2], [0,3,0,2,1,1,2,3,2,3], [0,3,1,3,2,4,3,3,1,1], [4,3,2,3,2,4,1,4,2,3], …
73 code-golf  matrix 

30
小さな「H」から「H」を作成する
チャレンジ 整数を指定するとsize、次のことを行う関数またはプログラムを作成します。 size1に等しい場合、出力 H H HHH H H 場合はsize1、出力よりも大きく、 X X XXX X X どこXのプログラム/関数の出力size - 1 (必要に応じて0、回答で指定する限り、ベースケースをに対応させることができます) 次の出力形式のいずれかが受け入れられますが、どちらがより便利です。 任意の二つの異なる文字に対応する必要な構造の文字列Hとspace 対応する任意の二つの別個の値を要求される構造を有する二次元アレイ、H及びspace 任意の二つの別個の値は、対応する各列における出力の一つの行と列/文字列のリスト、Hおよびspace 各行に一定量の先行スペースがある限り、先行スペースを使用できます。2つの異なる出力文字は、異なる限り、選択したものに依存します。 コードが返す出力形式を指定します。 テストケース 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

30
この関係は不気味ですか?
このXKCDコミックによれば、関係の年齢ギャップが「気味悪い」かどうかを判断する公式があります。この式は次のように定義されます: (Age/2) + 7 デートできる人の最低年齢であること。 したがって、上記の関係のいずれかの人が他方の最低年齢よりも若い場合、関係は不気味です。 二人の年齢を考えると、その関係が不気味かどうかを出力できますか? ルール プログラムは、関係にある2人の年齢である2つの整数を入力として使用する必要があります。これらは、適切な形式で取得できます。 その後、プログラムは、関係が「気味悪い」(真実=気味の悪い)かどうかを説明する真実または偽の値を出力する必要があります。 標準の抜け穴は許可されていません。 このパズルはCode Golfなので、バイト単位の最短ソースコードでの答えが勝ちます テストケース 40, 40 - Not Creepy 18, 21 - Not Creepy 80, 32 - Creepy 15, 50 - Creepy 47, 10000 - Creepy 37, 38 - Not Creepy 22, 18 - Not Creepy

30
レンガの壁を作ってください!
チャレンジ レンガの壁を作るのに助けが必要です!入力を使用せずにいくつかのコードをまとめて、以下に示す次の出力ウォールを生成します。 _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ 現在、この壁は10文字の高さと70文字の幅とまったく同じです。 上記のように、入力はなく、コードのみです。最小バイト数、このレンガの壁を効率的に構築する必要があります。明らかに、このプログラムは壁を構築するために機能する必要があります。または明らかにそれ自体を構築しません!幸運を! 勝者 勝者は、言語を使用してマリヌスに行きAPL、12バイトを必要とします! https://codegolf.stackexchange.com/a/99028/61857 参加してくれてありがとう!

24
ツイート可能なハッシュ関数チャレンジ
このコードチャレンジでは、140バイト1以下のソースコードでハッシュ関数を記述します。ハッシュ関数は、入力としてASCII文字列を受け取り、出力として24ビットの符号なし整数([0、2 24 -1])を返す必要があります。 ハッシュ関数は、この大きな英国英語辞書2のすべての単語に対して評価されます。スコアは、ハッシュ値を別の単語と共有する(衝突する)単語の量です。 最も低いスコアが勝ち、最初のポスターでタイが壊れます。 テストケース 送信する前に、次の入力でスコアリングスクリプトをテストしてください。 duplicate duplicate duplicate duplicate 4以外のスコアを与える場合、バグがあります。 明確化ルール: ハッシュ関数は、配列全体ではなく、単一の文字列で実行する必要があります。また、ハッシュ関数は入力文字列と出力整数以外のI / Oを実行しない場合があります。 組み込みのハッシュ関数または同様の機能(たとえば、スクランブルバイトへの暗号化)は許可されていません。 ハッシュ関数は決定的でなければなりません。 他のほとんどのコンテストとは異なり、得点入力用に最適化することは特に許可されています。 1 Twitterではバイトではなく文字が制限されていることは承知していますが、簡単にするために、この課題の制限としてバイトを使用します。 2 Debianのwbritish-hugeから変更し、非ASCIIワードを削除します。

18
未来の銃決闘
背景フューチャー 2017年、あなたとあなたの対戦相手は、1人だけが生き残ることができる未来の銃撃戦で対戦します。対戦相手を倒すのに十分な経験がありますか?今こそ、お気に入りのプログラミング言語で銃のスキルを磨き、あらゆる可能性と戦う時です! トーナメント結果 このトーナメントは2月2のUTCの午前中に終了ND、私たちの出場者に2017のおかげで、我々はエキサイティングな未来的なトーナメントがありました! CBetaPlayerおよびStudiousPlayerとの緊密な戦いの後、MontePlayerが最終的な勝者です。上位3名の決闘者が記念写真を撮りました。 MontePlayer - by TheNumberOne +------------+ CBetaPlayer | | - by George V. Williams +------------+ # 1 | StudiousPlayer - by H Walters | +----------------+ | # 2 # 3 | +------------------------------------------+ The Futurustic Gun Duel @ PPCG.SE 2017 受賞者の皆さん、おめでとうございます!詳細なリーダーボードは、この投稿の終わり近くで見られます。 一般的なガイダンス このトーナメントで使用されるソースコードの公式リポジトリをご覧ください。 C ++エントリ:Playerクラスを継承してください。 非C ++エントリ:セクション非C …

30
Stack Exchange Vote Simulator
文字のみを含む文字列を取り込みプログラムまたは機能書く^とv(あなたが他の文字がないと仮定することができますが)。左から右に読むと、この文字列は、Stack Exchangeの質問または回答を初めて表示しているときに1人のユーザーが行ったマウスクリックのシーケンスを表します。 すべては^をクリック表しupvoteボタンを、すべてはvをクリック表しdownvoteのボタンを。(実際の例については、左を少し見てください。) すべてのクリックが正しく登録されるように、投票制限が有効になっていないと仮定します。 印刷または返却: 1または+1投稿が最終的に投票される場合。 0投稿が最終的に投票されない場合。(-0そして+0無効です) -1 投稿がダウン投票された場合。 投稿はユーザーからのゼロ投票で始まり、ボタンは次のようにネット投票を変更します。 Net Votes Before Button Pressed Net Votes After 1 ^ 0 1 v -1 0 ^ 1 0 v -1 -1 ^ 1 -1 v 0 バイト単位の最短コードが優先されます。 テストケース: [empty string] -> 0 ^^ -> 0 ^v -> -1 ^ -> …

28
ファイを計算する(パイではない)
いいえ、私は意味しないϕ = 1.618...とπ = 3.14159...。私は機能を意味します。 φ(x)は、にx比較的素数であるかそれ以下の整数の数ですx。 π(x)は、以下の素数の数ですx。 「not pi」がπ̅(x)であり、それ以下の複合体の数になるように定義するとしましょうx。 仕事 厳密に正の整数を指定してx、φ(π̅(x))を計算しますます。スコアリングはバイト単位です。 例 各行は、入力(1〜100を含む)と、スペースで区切られた対応する出力で構成されます。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

30
Haskellでのゴルフのヒント
Haskellでゴルフをするための一般的なヒントは何ですか?私は、少なくともHaskellに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています。回答ごとに1つのヒントのみを投稿してください。 Haskellでゴルフをするのが初めての場合は、Haskellのゴルフ規則ガイドをご覧ください。また、専用のHaskellチャットルーム:Of Monads and Menもあります。

14
多言語のHello World
仕事 複数のプログラミング言語で有効なプログラムまたは関数を作成し、異なる言語としてコンパイル/解釈すると、「Hello、World!」と出力されます。別の自然言語で。 たとえば、有効なソリューションはHello World!、コンパイルしてCとして実行すると(英語)、Hallo Welt!C ++としてコンパイルして実行すると(ドイツ語)、你好世界!Pythonとして実行すると(中国語)を出力します。 ルール 回答の有効性に関するあいまいさを避けるために、いくつかの言語で使用できるフレーズのバージョンのリストを以下に示します。このリストは、Google Translateがコミュニティで検証したフレーズの翻訳を持っている言語のフレーズで構成されています(この記事の執筆時点)。 これらの翻訳の正確性については議論の余地がありますが、この課題で使用されるものです。印刷される文字列は、以下の形式に正確に従う必要があります(先頭または末尾の空白を除く)。 Afrikaans: Hello Wêreld! Albanian: Përshendetje Botë! Amharic: ሰላም ልዑል! Arabic: مرحبا بالعالم! Armenian: Բարեւ աշխարհ! Basque: Kaixo Mundua! Belarussian: Прывітанне Сусвет! Bengali: ওহে বিশ্ব! Bulgarian: Здравей свят! Catalan: Hola món! Chichewa: Moni Dziko Lapansi! Chinese: 你好世界! Croatian: Pozdrav svijete! Czech: …

30
数字を折りたたみません
仕事 次のように、数字の英語名の文字列が一緒に「折りたたまれ」ている場合: zeronineoneoneeighttwoseventhreesixfourtwofive 文字列を分割して数字に戻します。 zero nine one one eight two seven three six four two five ルール 入力は常に文字列です。常に1つ以上の小文字の英語の数字名で構成され、一緒に折りたたまれ、それ以外は何もありません。 英語の数字の名前はzero one two three four five six seven eight nineです。 出力は、文字列のリスト、または数字がアルファベット以外の空でない文字列で区切られた新しい文字列です。(あなたの出力もあり、必要に応じて最初または最後にこのような文字列があり、区切り文字は一貫している必要はない。だから、のようにも何かが{{ zero0one$$two );ために有効な(不合理な場合)の答えですzeroonetwo。) バイト単位の最短回答が優先されます。 テストケース three -> three eightsix -> eight six fivefourseven -> five four seven ninethreesixthree -> nine three six …
72 code-golf  string 

16
世界最小のWebブラウザ
バックストーリー: メガマルチコーポレーションで新しいプログラミングの仕事を楽しんでいます。ただし、コンピューターにはCLIしかないため、Webを閲覧することはできません。また、全従業員のハードドライブのスイープも実行するため、大きなCLI Webブラウザーを単純にダウンロードすることはできません。できる限り小さく、毎日一時ファイルに入力できるように、できるだけ小さいシンプルなテキストブラウザーを作成することにしました。 チャレンジ: あなたの仕事は、コマンドラインインターフェイス内でゴルフWebブラウザーを作成することです。そうすべき: argsまたはstdin経由で単一のURLを取得します URLのコンポーネントdirectoryとhostコンポーネントを分割します 単純なHTTPリクエストを送るhostと要求しますdirectory <p>段落</p>タグの内容を印刷します 終了するか、別のページを要求します 詳細: 単純なHTTPリクエストは次のようになります。 GET {{path}} HTTP/1.1 Host: {{host}} Connection: close \n\n 改行の強調。 典型的な応答は次のようになります。 HTTP/1.1 200 OK\n <some headers separated by newlines> \n\n <html> ....rest of page ルール: ポート80でのみ動作する必要があります(SSLは不要です) netcatは使用できません どのプログラミング言語が使用されていても、低レベルのTCP APIのみが許可されます(netcatを除く) GUIを使用することはできません。CLIであることに注意してください 組み込みのものを除き、HTMLパーサーは使用できません(BeautifulSoupは組み込みではありません) ボーナス!!プログラムがループバックし、終了する代わりに別のURLを要求する場合、-40文字(再帰を使用しない限り) サードパーティのプログラムはありません。何もインストールできないことを忘れないでください。 code-golfなので、最短バイト数が勝ちます

27
ますます少なくなります
誰もが文字を追加することでプログラムの出力を大きくすることができますので、正反対を行いましょう。 次の基準を満たす任意の言語で、REPL環境の完全なプログラム、内部関数、またはスニペットを記述します。 コードは少なくとも1文字の長さが必要です。 元のコードを実行すると、STDOUT(または最も近い代替)への出力のx文字が生成されます。ここで、0≤x <+∞です。 元のコードから任意の1文字を削除すると、有効なコードが再び生成され、少なくともx + 1文字のSTDOUTへの出力が生成されます。 元のコードも修正も、STDOUT、STDERR、syslog、または他の場所へのエラー出力を生成しない可能性があります。この規則の唯一の例外は、コンパイラの警告です。 プログラムでは、エラー出力を抑制するためにフラグや設定を必要としない場合があります。 プログラムが出力を生成しない場合でも、プログラムに致命的なエラーが含まれていない可能性があります。 元のコードと変更の両方が確定的であり、最終的に終了する必要があります(無限ループなし)。 元のコードも修正も、いかなる種類の入力も必要としないかもしれません。 関数またはスニペットは、実行間で状態を維持できません。 このタスクは些細なことであり、他の言語ではまったく不可能であると考えると、これは人気コンテストです。 投票するときは、コードの「相対的な短さ」を考慮に入れてください。つまり、同じ言語で長い回答よりも短い回答の方が創造的であると考えるべきです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.