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

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

20
バケットを再スタックできますか?
私の小さな子供はこのようなおもちゃを持っています: このおもちゃは10個の積み重ね可能な小さなバケツで構成され、1(最小のもの)から10(最大のもの)まで番号を付けます。時々彼は小さな山を作り、おもちゃはこのようになります: このように山を概略的に表すことができます: 1 6 4 9 2 7 5 10 3 8 ---------- <-- Floor 1 2 3 4 <-- Pile # または、別の言い方をすれば: [[4,5],[9,10],[1,2,3],[6,7,8]] このバケットパイルのセットは、大きなバケットのパイル内に小さなバケットのパイルを連続して配置するだけで、元のセット(最初のイメージ)を再構築するために簡単に再スタックできます。 1 1 6 2 2 7 1 6 3 6 3 8 4 9 2 7 4 9 7 4 9 5 10 3 …

18
N次元のアイデンティティ「マトリックス」
正の整数を指定すると、インデックスのすべてのコンポーネントが等しい場合とそうでない場合の配列である-次元単位「マトリックス」をn出力します。は、N x N x N xを意味します...NN^N10N^N 1 -> [1] 2 -> [[1,0],[0,1]] 3 -> [[[1,0,0],[0,0,0],[0,0,0]],[[0,0,0],[0,1,0],[0,0,0]],[[0,0,0],[0,0,0],[0,0,1]]] 4 -> [[[[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,1,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]]] たとえば、aある4次元のアイデンティティ「マトリックス」、そして持つエントリのみを1だろうa[0][0][0][0]、a[1][1][1][1]、a[2][2][2][2]、とa[3][3][3][3]。 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

7
クインを書くためのヒント
QUINEは、プログラムのソースコードと同一の出力を生成するプログラムです。このWebサイトでは、通常、適切なクインだけを扱います(執筆時点では、現在の定義は「出力の一部はプログラムの別の部分によってエンコードされています」)。 適切なクイン、またはクインのような特性を持つプログラムを作成するためのアドバイスはありますか?いつものように、各ヒントは異なる答えにあるべきです。
30 tips  quine 

30
言葉の逆転
ソナは10歳の娘と一緒に家にいます。彼女は午後2時に学校が終わるので、学校から別の子供を連れ戻すために学校に行く必要があります。外は暑いので、彼女は小さな子供を家に置いておきたいと思っています。 彼女は、子供がいない間、忙しくしておくために、たくさんの紐を子供に与えました。彼女は、文字列の単語を逆にするように彼女に頼みました。文字列がたくさんあるので、この巨大な課題を解決するために娘を助ける必要があります。 したがって、単一のスペースで区切られた単語を含む文字列が与えられた場合、文字列内の単語を逆にします。先頭または末尾にスペースがないと仮定できます。 文字列にはのみが含まれる[a-zA-z ]ので、句読点を処理する必要はありません。 入力として文字列が与えられ、文字列を出力する必要があります。 サンプルテストケース: Input: Man bites dog Output: dog bites Man Input: The quick brown fox jumps over the lazy dog Output: dog lazy the over jumps fox brown quick The Input: Hello world Output: world Hello 得点 これはcode-golfです。バイト単位の最短回答が優先されます。

21
最も近い大きい数を見つける
タスク 整数の配列がある場合、例えば: [-1,476,578,27,0,1,-1,1,2] その配列のインデックス(この例では0ベースのインデックスを使用していますが、1ベースのインデックスも使用できます)。 index = 5 v [-1,476,578,27,0,1,-1,1,2] 次に、そのインデックスの要素より大きい最も近い数値を返します。この例では、1より大きい最も近い数は27です(2インデックス離れている)。 index = 5 v [-1,476,578,27,0,1,-1,1,2] ^ Nearest greater number Output = 27 仮定 Nearestにはラッピングは含まれません。 プログラムに長さ1の配列が与えられることはありません(例:)[55]。 あなたは常に与えられた要素よりも大きい数があると仮定する必要があります。 等距離にある要素よりも2つの数値が大きい場合、どちらかを返すことができます。 I / Oペア Input: Index = 45 Array = [69, 43, 89, 93, 62, 25, 4, 11, 115, 87, 174, 60, 84, 58, …

30
斜めにカウントアップ!
数字には横軸がたくさんありますが、正直言って退屈なものだと思います。今日のあなたの仕事は、入力として与えられた2つの異なる非負整数の間の対角軸の一部を構築することです。 対角軸を作成する方法は? inputを使用して例を見てみましょう0, 5。軸は次のようになります。 0 1 2 3 4 5 ただし、軸の桁数が多い場合は、軸がきれいに見えるはずです!たとえば、入力がの場合、0, 14新しい軸は次のようになります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 考え方は、軸上の次の数字の最初の数字は常に前の数字の最後の数字の直後に配置する必要があるということです。アイデアをさらによく理解するために、次の例を使用し997, 1004ます。 997 998 999 1000 1001 1002 1003 1004 ルール 入力は昇順または降順であると仮定できます(との間5,3で選択できます3,5)。 また、2つの整数の差が100より小さいと仮定することもできます。 先頭の改行または一貫した先頭のスペース(各行)がある場合があります。末尾のスペース/改行も同様に問題ありません。 デフォルトの抜け穴は禁止されています。 任意の標準的な手段で入力を取得し、出力を提供できます。 これはcode-golfなので、すべての言語でバイト単位の最短コードが勝ちます! その他のテストケース 1, 10: 1 2 3 …

29
それらの貪欲なローマ人!
厳密に正の整数を指定すると、加算ルールのみを使用して、可能な限り短いローマ数字を返します。出力はMDCLXVI、その順序の各文字のゼロ個以上で構成する必要があります。14したがって、番号はXIIIIでなくでなければなりませんXIV。 文字の数値は、M= 1000、D= 500、C= 100、L= 50、X= 10、V= 5、I= 1です。 例 3 → III 4 → IIII 9 → VIIII 42 → XXXXII 796 → DCCLXXXXVI 2017 → MMXVII 16807 → MMMMMMMMMMMMMMMMDCCCVII

30
トレントUIのASCIIアート
問題 トレントプログラムからUIを再作成する 入力がない場合、次を出力します。 +----------+----------+----------+ |a.exe |##########|seeding | +----------+----------+----------+ |b.exe 10% |# |leeching | +----------+----------+----------+ |c.exe |##########|seeding | +----------+----------+----------+ |d.exe 20% |## |leeching | +----------+----------+----------+ |e.exe |##########|seeding | +----------+----------+----------+ |f.exe 30% |### |leeching | +----------+----------+----------+ |g.exe |##########|seeding | +----------+----------+----------+ |h.exe 40% |#### |leeching | +----------+----------+----------+ |i.exe |##########|seeding | +----------+----------+----------+ |j.exe 50% …

18
ナンバートライアングルフリップ
正の整数を三角形にリストし、左から右に反転するとします。番号を指定して、送信先の番号を出力します。これは自己逆マッピングです。 1 1 2 3 3 2 4 5 6 <---> 6 5 4 7 8 9 10 10 9 8 7 11 12 13 14 15 15 14 13 12 11 これはA038722のn番目の要素で、インデックスが1つあります: 1, 3, 2, 6, 5, 4, 10, 9, 8, 7, 15, 14, 13, 12, 11, ... このシーケンスは、長さが増加する正の整数の連続したチャンクを逆にします。 …

30
長さNのランダムな英数字文字列の生成
与えられた長さで、英数字のみが許可されたランダムな文字列を生成する最短の方法は何ですか? ランダムな文字列の例:N = 9の出力は aZua7I0Lk 指定された長さNは、常に0より大きいと想定できます。 必要に応じて、Nの最大値として256を想定できますが、Nの上限が高く、計算時間が速いソリューションが推奨されます 許可される文字:0-9、azおよびAZ 文字が出力文字列に複数回出現する可能性があります 可能性のある各文字列は(言語の乱数ジェネレーターの精度に応じて)同様に発生する可能性があります。

4
2Dマトリックスの回転
次の(2D)マトリックスがあるとします。 [[1, 2, 3, 4 ], [5, 6, 7, 8 ], [9, 10, 11, 12], [13, 14, 15, 16]] マトリックスを反時計回りに R(90度単位ではなく、毎回1ずつ)回転させます。 1 2 3 4 2 3 4 8 3 4 8 12 5 6 7 8 --> 1 7 11 12 --> 2 11 10 16 9 10 11 …

8
私たちは友達になるべきですか?
これは主にデータ構造に焦点を当てた質問であることに注意してください 前書き Bacefookは、人々が友好的であることを望んでいます!そのため、彼らは友達を提案する新しいシステムを実装しています!あなたの仕事は、Bacefookが新しい提案システムを実装するのを支援することです。 仕様: あなたのプログラムは、コマンドの3種類をサポートしているREPL(read-eval-printループ)でなければなりませんFRIEND、SUGGESTとKNOW。 FRIEND X Y- ソーシャルネットワークの友人であることXを指定しYます。 XがYと友達なら、YはXと友達 可能ですが、出力する必要はありません Xは常にXと友達です KNOW X Y -XとYがフレンドの場合は真実の値を出力し、そうでない場合は偽の値を出力する KNOW X X 常に真実の値を出力します SUGGEST X Y-XとYがフレンドでなければならない場合は真実の値を出力し、そうでない場合は偽の値を出力します。次の場合、XとYは友達になります。 XとYは友達ではありません XとYには共通の友人が少なくとも1人います FRIEND、SUGGESTおよびKNOWを独自の文字列に置き換えることができますが、各コマンドを置き換えた文字列に言及する必要があります。 プログラムは、それがどのように機能するかを合理的に簡単に認識できる限り、望ましい方法で入力/出力を取り込むことができます。 ソーシャルネットワーク内の人の数は1〜100,000ですNが、「友人リンク」(エッジ)はいくつあってもかまいません。 まだ気づいていない場合、これはグラフ検索の問題です。これを実装するための(おそらく)最も簡単な(おそらく最速の)データ構造は、隣接行列です。 テストケース FRIEND A B FRIEND A C FRIEND B D SUGGEST A B -> Falsy, as they are friends SUGGEST A …

5
Life is a Maze:歩くことを学ぶ前に間違った道をたどる
入力: キャラクターを含む迷路: -- (水平壁); | (垂直壁); + (接続); (歩行スペース); I (エントランス); U (出口)。 つまり、入力は次のようになります。 +--+--+--+--+--+--+--+--+--+--+ I | | | + +--+--+--+ + + + +--+ + | | | | | | +--+--+--+ +--+--+ + + +--+ | | | | | + +--+--+ + +--+--+ +--+ + | | …

1
キューブネットの釣り
キューブは、側面として6つの正方形で作成できます。しかし、3つの2x1長方形を半分に折り、それらを接着して立方体を形成することもできます。この課題では、それぞれが正方形から作られたピースのセットを取得し、ユニットキューブを形成するためにピースを選択できるかどうかを判断する必要があります。すべてのピースを使用する必要はありませんが、いくつか残っている可能性があります。 詳細 ピースは、2つの異なる文字の文字列、白黒画像、または便利な2Dラスター形式として提供されます。以下では、ピースを形成するピクセルは黒で、背景は白であると仮定します。 辺を共有する2つのピクセルは、同じ部分に属すると見なされます。ピースは、ピクセルを分離するグリッド線に沿ってのみ折りたたむことができ、カットすることはできません。立方体の各辺のサイズは1ピクセルであり、立方体の各辺は1つのレイヤーでのみ作成できます。 出力がなければなりませんtruthyまたはfalsey値。 テストケース 以下では、スペースは背景であり、ハッシュ記号#はピースを表します。 (追加予定) 有効な ## ## ## # #### # # # # # # # # # ## ## # 無効 ### ### # # #### ### ## #### より多くのテストケースについては、次のスニペットを実行します。 コードスニペットを表示 document.getElementById("asdfasdf").style.display = "block"; <div id="asdfasdf" display="none"> <h3>Valid</h3> <pre><code> ## ## ## </code></pre> <hr> …

30
ASCIIの三角形
あなたの仕事は、ASCII三角形を印刷するプログラムまたは関数を書くことです。次のようになります。 |\ | \ | \ ---- プログラムはn、制約付きの単一の数値入力を受け取ります0 <= n <= 1000。上記の三角形の値はでしたn=3。 ASCIIの三角形にはnバックスラッシュ(\)と垂直バー(|)、n+1行とダッシュ(-)があり、各行には最終的な行のほかに行番号(0から始まる、つまり最初の行は行0)と等しいスペースがあります。 。 例: 入力: 4 出力: |\ | \ | \ | \ ----- 入力: 0 出力: このテストケースでは、出力は空でなければなりません。空白なし。 入力: 1 出力: |\ -- 入力と出力は、私が指定したとおりでなければなりません。 これはcode-golfなので、できるだけ短いコードを目指してください!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

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