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

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

1
JSでクランプ関数を3項より短くすることは可能ですか?
0から255の間の数値をクランプするこの短い関数を想像してください。 c = n => n > 0 ? n < 255 ? n : 255 : 0 これは、JavaScript(ES.Next機能なし)を使用したクランプ関数の最短バージョンですか? PS:関係があるかどうかはわかりませんが、0と255はランダムではありません。アイデアは数字を8ビット符号なし整数としてクランプすることです。

17
Inscriptio Labyrinthica
アストゥリアス王サイロの埋葬場所には、SILO PRINCEPS FECIT(サイロ王がこれを作った)と書かれた碑文があります。 最初の文字は真ん中にあり、そこから外側に向かって放射状に広がる非対角線方向に向かって読みます。最後の手紙は四隅すべてにあります。この課題では、プロセスを一般化してそれらを作成します。 入力 文字列(または同等のもの)、および整数。入力について次のことを想定できます。 文字列の長さは奇数になります。 整数は、1からストリングの長さの2倍未満の奇数です。 出力 高さまたは幅に整数を使用した、文字列のinscriptio迷路(高さの例についてはモデルを参照)。出力は、スペースを含まない各文字、システム/言語のデフォルトとして改行する必要があります。 テストケース 1または(長さ* 2-1)を入力すると、水平または垂直の回文が発生することに注意してください。 Input: FOO, 3 Input: BAR, 1 Input: BAR, 3 Input: BAR, 5 Output: OOO Output: RABAR Output: RAR Output: R OFO ABA A OOO RAR B A R Input: ABCDE, 5 Input: ABCDE, 3 Input: *<>v^, 5 …
22 code-golf  string 

16
どの大きな数字が大きいですか?
入力 整数a1、a2、a3、b1、b2、b3はそれぞれ1〜20の範囲です。 出力 True if a1^(a2^a3) > b1^(b2^b3) and False otherwise. ^は、この質問のべき乗です。 ルール これはコードゴルフです。標準のデスクトップPCで有効な入力を行うには、10秒以内にコードを正しく終了する必要があります。 Trueの場合はTruthy、Falseの場合はFalseyを出力できます。 回答で指定されていて、常に同じである限り、任意の入力順序を想定できます。 この質問では、コードは常に正しいはずです。つまり、浮動小数点の不正確さが原因で失敗することはありません。入力の範囲が制限されているため、これを達成するのはそれほど難しくないはずです。 テストケース 3^(4^5) > 5^(4^3) 1^(2^3) < 3^(2^1) 3^(6^5) < 5^(20^3) 20^(20^20) > 20^(20^19) 20^(20^20) == 20^(20^20) 2^2^20 > 2^20^2 2^3^12 == 8^3^11 1^20^20 == 1^1^1 1^1^1 == 1^20^20
22 code-golf 

18
Zip、Zap、Zopを再生する
少し即興のウォームアップゲームがあります。サークルに自分自身を配置し、ジップ、ザップ、およびゾップを人に向けて順番に次の単語を言うことで送信します。なんでも。 あなたの仕事は、入力単語を与えられた順番で次の単語を与えるプログラムを作成することです。(Zip-> Zap-> Zop-> Zip)これらの3つの単語とフレアを追加するさまざまな言い方があるため、プログラムは大文字と小文字の重複を模倣し、接尾辞を付ける必要があります。 詳しく説明すると、入力は1つ以上Zのs、1つ以上Iのs、As、またはOs(すべて同じ文字)、1つ以上Pのs(この時点までのすべての文字が大文字と小文字が混在する場合があります)に続きます任意のサフィックス(空の場合もあります)。ZsとPsの実行、および受け取ったサフィックスはそのままにしておく必要がありますが、IsをAsに、AsをOsに、またはOsをIsに変更して、各ステップで大文字と小文字を保持します。 テストケースの例 zip ==> zap zAp ==> zOp ZOP ==> ZIP ZiiP ==> ZaaP ZZaapp ==> ZZoopp zzzzOoOPppP ==> zzzzIiIPppP Zipperoni ==> Zapperoni ZAPsky ==> ZOPsky ZoPtOn ==> ZiPtOn zipzip ==> zapzip zapzopzip ==> zopzopzip zoopzaap ==> ziipzaap ルールと注意事項 すべてのASCII文字をサポートし、このチャレンジの前に作成されたものであれば、入出力に便利な文字エンコードを使用できます。 入力ワードは、Zip、Zap、またはZopのバリアントであると想定できます。他のすべての入力は、未定義の動作になります。 有効な入力は正規表現に完全に一致しますZ+(I+|A+|O+)P+.*(大文字と小文字が混在する場合) ハッピーゴルフ!
22 code-golf  string 

20
それは毎年の仕事です、申し分なく
1≤n≤365の数値を指定すると、年のn番目の日を「Day-numberth Month」形式で出力します。たとえば、1が与えられた場合、「of」なしで「1月1日」を出力する必要があります。 グレゴリオ暦が使用され、プログラムはうるう年を考慮すべきではないため、どのような状況でもプログラムが「2月29日」を出力することはありません。前述の「日番号月」形式に従う限り、任意の方法を使用できます。また、プログラムは序数を正しく出力する必要があります。つまり、1、2、または3を常に出力する必要があります。先行スペースまたは他のインデントが許可されます。 これはコードゴルフであるため、キャラクターによる最短の解決策が優先されます。 テストケース: 1 gives 1st January 2 gives 2nd January 3 gives 3rd January 365 gives 31st December 60 gives 1st March 11 gives 11th January
22 code-golf  date 

23
逆さまのピラミッドの追加…逆転!
逆さまピラミッド追加は、数字のリストを取得し、1つの数字に達するまで連続して追加するプロセスです。 番号を指定すると2, 1, 1、次のプロセスが発生します。 2 1 1 3 2 5 これは数字で終わり5ます。 あなたのタスク 上下ピラミッド(昇順)の右側を指定して、元のリストを返すプログラムまたは関数を作成します。 新しい追加チャレンジ:O(n ^ 2)未満でこれを試してください 例 f([5, 2, 1]) => [2, 1, 1] f([84,42,21,10,2]) => [4,7,3,8,2] 注:上下ピラミッドは空になることはなく、常に正の整数のみで構成されます。

13
公正な王のための8つのコイン
これは別のパズルの「カウンターパート」です。Puzzling.SEの公正な王のための8つのコインです。 上記のパズルの背景を読むことができます。このパズルの詳細は次のとおりです。 異なる値の8種類のコインのセットが作成されます。王は、0からNまでの任意の数の価格が8コイン以下の組み合わせで無料で支払われるように、最大​​Nを見つけることを望んでいます。 たとえば、(Glorfindelの回答から引用)。値1、2、5、13、34、89、233、610のコインのセットが与えられた場合、プログラムは1596を出力する必要があります。与えられたリストから8個以上の数字(数字は繰り返される可能性があります)、1597はそのようには表現できません。 数学的には、入力が8つの正の整数で構成される集合Sである場合、望ましい出力Nは、0からNまでの任意の数nに対して、x1、x2、x3、...、x8が存在することを満たします。 バツ1+ x2+ 。。。+ x8= nそしてバツ1、x2、。。。、x8∈ { 0 } ∪ Sバツ1+バツ2+。。。+バツ8=nそしてバツ1、バツ2、。。。、バツ8∈{0}∪Sx_1 + x_2 + ... + x_8 = n \quad\textrm{and}\quad x_1, x_2, ...,x_8 \in \{0\} \cup S あなたの目標は、入力として8つの数字を受け取り、上記のように最大Nを出力するプログラム、関数、またはスニペットを作成することです。 ルール: 柔軟なI / Oが許可されているため、プログラムは最適な形式で入力を取得できます。入力番号は、プログラムに最適な方法でソートされていると想定できます。 プログラムが入力順序に依存している場合は、回答にそれを明記してください 入力は、8つの異なる正の整数(ゼロなし)のセットです。出力は、1つの非負整数です。 入力セットに1がない場合、0〜0の任意の数が要件を満たすため、プログラムは0を出力する必要があります。 無効な入力(セットにゼロ、負の数、または重複する数が含まれる)の場合、プログラムは何でもできます。 標準的な抜け穴は禁止されています。 プログラムは、最新のコンピューターで数分以内に実行されるはずです。 テストケース(主にPuzzlingのリンクされた質問の下の回答から取得): [1, 2, 3, 4, 5, 6, 7, …

15
画像の出力視覚図
フレーム付きポートレートの絵画の寸法、マット幅、およびフレーム幅を入力するプログラムを作成します。プログラムはX、ペイントのシンボルを使用してダイアグラムを出力する必要があります。+マッ#フレーミングがあります。記号はスペースで区切る必要があります。出力が視覚的に基準に一致する限り、末尾の空白は問題ありません。入力はにすることができます0。 入力:3 2 1 2(幅、高さ、マット幅、フレーム幅) 出力: テキスト形式: # # # # # # # # # # # # # # # # # # # # + + + + + # # # # + X X X + # # # # + X X X + …

19
ビット浮動シーケンス
LSBからMSBにビットが浮き上がり、コンテナの上部に浮くまで毎回1ポジションずつ移動します。 0000 0001 0010 0100 1000 1ビットが最上部に浮かぶと、別のビットがその旅を開始し、他のビットに出会うと停止します。 1001 1010 1100 これは、コンテナがビットでいっぱいになるまで発生します。 1101 1110 1111 チャレンジ 整数を指定すると、そのビット数のコンテナの「ビット浮動シーケンス」を出力します。 シーケンスの各用語は、任意のセパレーターで区切ることができます。 編集:シーケンスは、最初のtherm:で始まる10進整数として表示する必要があります0。 コンテナのサイズはゼロより大きく、選択した言語でサポートされている最大の整数のビット数まででなければなりません。入力は常にこの要件に一致すると想定できます。 例 数値シーケンスのみが必要です。バイナリ表現が例として示されています。 以下のための1:0 1 0 -> 0 1 -> 1 以下の場合3:0 1 2 4 5 6 7 000 -> 0 001 -> 1 010 -> 2 100 -> 4 101 -> …

13
多くの色のコート
チャレンジ 入力として一意の色名のリストを指定し、JosephのAmazing Technicolor Dreamcoatに最初に表示される順序で並べ替えます。 例 Input: green, blue, red, brown Output: red, green, brown, blue 色の完全なリストは、順番に次のとおりです。 1. red 2. yellow 3. green 4. brown 5. scarlet 6. black 7. ochre 8. peach 9. ruby 10. olive 11. violet 12. fawn 13. lilac 14. gold 15. chocolate 16. mauve 17. cream …

24
三角形の数を数える
正の整数のリストが与えられたら、それらの辺の長さが入力リストの3つの異なるエントリによって表されるように形成できる三角形の数を見つけます。 (インスピレーションはCR。) 詳細 3つの辺の長さa 、b 、cのすべての順列が厳密な三角形の不等式a + b > cを満たす場合、三角形を形成できます。(これは、a + b > c、a + c > bおよびb + c > aがすべて成立しなければならないことを意味します。)a,b,ca,b,ca,b,ca+b>c.a+b>c.a + b > c.a+b>ca+b>ca+b > ca+c>ba+c>ba+c>bb+c>ab+c>ab+c>a 3辺の長さa,b,ca,b,ca,b,cは、リスト内の異なる位置に表示される必要がありますが、必ずしもペアごとに異なる必要はありません。 入力リスト内の3つの数字の順序は重要ではありません。リストaと3つの数値a[i], a[j], a[k](i,j,kペアワイズが異なる)を考慮すると、(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])などはすべて同じと見なされます三角形ます。 入力リストには、少なくとも3つのエントリが含まれると想定できます。 入力リストは昇順でソートされていると想定できます。 例 小さなテストプログラムは、オンラインで試してみてください。 Input, Output: [1,2,3] 0 [1,1,1] 1 [1,1,1,1] 4 [1,2,3,4] 1 …

22
重複する文字列ブロック
チャレンジ: 複数行の文字列のリストが与えられたら、それらを(左上で)オーバーラップし、結果を出力します。 例: 入力:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 出力: cbaa bbaa bbaa aaaa チャレンジルール: 入力形式は柔軟です。入力を行の2Dリスト(つまり[["aaaa","aaaa","aaaa","aaaa"],["bb","bb","bb"],["c"]])または文字の3Dリスト(つまり)として取得でき[[["a","a","a","a"],["a","a","a","a"],["a","a","a","a"],["a","a","a","a"]],[["b","b"],["b","b"],["b","b"]],[["c"]]]ます。STDINを使用して、すべての入力を1つずつ取得できます。等。 出力形式は厳密です。複数行の文字列を印刷するか返すかを選択できます。(言語に文字列がない場合は、代替として文字の2Dリストとして出力することができます。ただし、言語に文字列がまったくない場合のみです。) 入力リストの順序はもちろん重要です(ただし、必要に応じて入力を逆にすることもできます)。 入力は、ユニコード範囲で印刷可能なASCII文字を含むことになる[33,126][33,126][33,126](!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)。 入力は長方形のみです(したがって、奇妙な形はありません)。ただし、出力は必要な長方形ではありません。 末尾のスペースと単一の末尾の改行が許可されます。先行スペースや改行はありません。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーター、戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース: 入力:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 出力: cbaa bbaa bbaa aaaa 入力:["12345\n54321","00\n00\n00\n00","001\n011\n012"] 出力: 00145 01121 012 00 入力:["sm\noo\nmr\nee\nt!\nh_\ni_\nn_\ng_","!@#$%^\n&*()_+\nqwerty\nuiopas","this\nis_a\ntest"] 出力: this%^ is_a_+ testty uiopas t! h_ i_ n_ …

14
これらの数字は何ですか?
数字を書いている間、しばらくするとキーボードのShiftキーが押されてブロックされ、書いたものはすべて$%&文字のようなものであることに気付きました。さらに悪いことに、私は英語とスペイン語のキーボードレイアウトを切り替えていたため、各番号にどのキーボードレイアウトを使用したかわかりません。 チャレンジ 記号文字を含む文字列が与えられたら、私が書いた数字を推測してみてください。キーボードをShift押すと、数字に対して次の文字が生成されます。 1234567890 ---------- !"·$%&/()= Spanish layout !@#$%^&*() English layout 入力は、上記の記号で構成されたnull以外の空でない文字列になります。 文字列からキーボードレイアウトを推測できる場合(つまり、文字列に@英語のレイアウトが含まれてい"て、文字列にスペイン語のレイアウトが含まれている場合)、または番号が同じ場合、出力は単一の数字になります。両方のレイアウト(つまり、入力は両方のレイアウトに関して!$変換さ14れます); それ以外の場合、出力は推測できない場合と結果の数値が異なる場合、両方のレイアウトの2つの可能な数値になります。 入力文字列は常に単一のレイアウトで書き込まれます。したがって"@、入力として期待する必要はありません。 例 Input --> Output ------------------ /() 789 (Spanish layout detected by the use of /) $%& 456,457 (Layout cannot be inferred) !@# 123 (English layout detected by the use of @ and #) ()&! 8961,9071 …

23
アスキーアートオクタゴン
入力整数を指定するとn > 1、n文字で構成される辺の長さのASCIIアートオクタゴンを出力します。以下の例を参照してください。 n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

30
文字列の回転-最初の文字を最後まで繰り返し移動する出力文字列
ここでの課題は、最初の文字を最後まで繰り返して文字列を取得し、すべての回転を出力することです。文字列の文字ごとに1回、元の文字列で終了します。 john -> ohnj, hnjo, njoh, john また、反対方向に循環して、文字を最後から移動することもできます。 john -> njoh, hnjo, ohnj, john その前に元の単語に到達した場合でも、文字ごとに1つのローテーションを出力する必要があります。 heehee -> eeheeh, eheehe, heehee, eeheeh, eheehe, heehee 結果が上記のように機能する限り、文字配列を使用できます。 最短回答が勝ちます!
22 code-golf  string 

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