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

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

2
一般化ポリオミノのカウント
この課題では、スナブスクエアタイル上の擬似ポリフォームを数える必要があります。 このシーケンスはまだOEISに存在しないため、このシーケンスのできるだけ多くの項を計算するという課題があります。 更新:これはOEISにA309159として追加されました。n個のセルを持つスナブ正方形タイル上の一般化されたポリフォームの数。 定義 スナブ正方形タイルは、正三角形と正方形で構成される平面の半規則的なタイルです。 スナブ正方形タイル上の擬似ポリフォームは、ポリオミノに似た、共有された辺に沿ってこれらの三角形と正方形を結合することによって構築された平面図です。6セルおよび8セルの擬似ポリフォームの例を次に示します。 例 以下のためにn = 12つの1セル擬似polyforms、すなわち正方形および三角形があります。 以下のためにn = 22つの2セル擬似polyforms、三角形及び二つの三角形を有する、すなわち正方形があります。 以下のためにn = 34つの3セル擬似polyformsがあります。 チャレンジ この課題の目標は、このシーケンスで可能な限り多くの項を計算することです。この2, 2, 4, ...項では、n番目の項は回転と反射までのnセルの擬似ポリフォームの数です。 好きなだけコードを実行します。このチャレンジの勝者は、シーケンスのほとんどの用語とコードを投稿するユーザーです。2人のユーザーが同じ数の用語を投稿すると、最後の用語を最も早く投稿した人が勝者となります。 (このシーケンスがOEISにまだ存在しないことを証明するのに十分な既知の用語があれば、OEISにエントリを作成し、必要に応じて共著者として貢献者をリストします。)

3
強力なDarboux関数を実装する
ウィキペディアによると、強力なダルブー関数は すべての(空ではない)オープン間隔のイメージが実ライン全体であるもの 言い換えれば、関数fffは、3つの任意の実数aaa、bbb、およびyyy与えられた場合に強くDarboux であり、f (x )= yであるような(別個の)aとbの間のxxxを常に見つけることができます。aaabbbf(x)=yf(x)=yf(x) = y この課題の目的のために、代わりに有理数よりも強力にダルブー関数を検討します。 あなたの課題は、次のようなプログラムまたは関数を作成することです。 有理数入力ごとに有理数を出力として与えます。 与えられた入力に対して常に同じ出力を与える 強くDarbouxプロパティを持っています。 入力と出力は次のいずれかです。 言語に1つ(またはGMPなどの1つのライブラリー)がある場合、任意精度の数値型。 数字の文字列表現。常に小数点と両側に少なくとも1桁の数字が含まれると想定できます。これは、任意のベースであってもよく、b≥2b≥2b \geq 2が、入力と出力が同じ塩基でなければなりません。数字と小数点には任意の文字セットを使用できます(ただし、入力と出力の間で一貫している必要があります)。 入力には常に終端bbb展開があります。機能の選択に応じて、理論的には終了しないbase bbb展開を持つ出力については、次のいずれかを選択できます。 数字を永久に出力します。 少なくともその数の数字を入力および出力として追加の整数を取ります。 入力と少なくとも同じ桁数を出力します(末尾にゼロが含まれる場合があります)。 この課題の性質によって、ことが慣例そのノート番号は、標準的な数の種類によって表現可能であると仮定することができるがないではない上記のオプション2で説明した第2の入力を除いて、適用します。 非終端の有理数でのみ定義される関数の抜け穴を避けるために、実際には、サブミットは目的の値に近い任意の出力を生成できる必要があります。正式には、有理数与えられ、B、Y、およびε、合理的な数が存在しなければならxは、選択したベースでの終了は、そのことを&lt; X &lt; Bと| f (x )− y | &lt; ε。aaabbbyyyεε\varepsilonxxxa&lt;x&lt;ba&lt;x&lt;ba<x<b|f(x)−y|&lt;ε|f(x)−y|&lt;ε|f(x)-y|<\varepsilon いくつかのアイデアを提供するために、Conwayベース13機能の説明を以下に示します。 変換xxxを基数13に、小数点を削除します。 結果は次の形式である場合[x]A[y]C[z]13[x]A[y]C[z]13[x]A[y]C[z]_{13}、[y][y][y]および[z][z][z] 0から9までの数字のみで構成し、f(x)=[y].[z]f(x)=[y].[z]f(x) = [y].[z]。 結果は次の形式である場合[x]B[y]C[z]13[x]B[y]C[z]13[x]B[y]C[z]_{13}、[y][y][y]および[z][z][z]次に、0から9までの数字のみで構成f(x)=−[y].[z]f(x)=−[y].[z]f(x) = -[y].[z]。 それ以外の場合、f(x)=0f(x)=0f(x) = 0。 この関数は強くDarbouxです。例えば、f (x …
12 code-golf  number 

7
単語グラフの直径を見つける
前書き 人気のある単語パズルは、1つの文字だけを置き換え、常に有効な単語を生成する一連のステップを介して、ある単語を別の単語に変換することです。たとえば、BAGは5つのステップのパスを介してDOGに変換できます。 BAG-&gt; BAT-&gt; CAT-&gt; COT-&gt; COG-&gt; DOG この場合、短いパスも存在します。例えば: BAG-&gt; BOG-&gt; DOG 頂点が単語でラベル付けされたグラフを描いた場合、単語のペア間のエッジが1文字だけ異なる場合、「BAG」から「DOG」への最短パスは2つのエッジで構成されます。 チャレンジ パスに沿ったステップとして現れる可能性のあるすべての単語を表す、すべて同じ長さの単語の「辞書」を入力として受け取るプログラムを作成します。少なくとも1つの「最長最短パス」、つまり、次の2つの単語間のパスを出力する必要があります。 これら2つの単語間の他のどのパスよりも長くありません。 少なくとも、リスト内の他の単語のペア間の最短パスと同じ長さ。 上記のグラフのコンテキストでは、このようなパスの長さはグラフの直径です。 入力語のいずれも他の語に変換できない縮退の場合、長さゼロの少なくとも1つのパス、つまり1つの語を出力します。 例 入力["bag"、 "bat"、 "cat"、 "cot"、 "dot"、 "dog"]は、6つの単語すべてをその順序(または逆順)で通過するパスを生成する必要があります。この辞書内の「バッグ」から「犬」は、達成可能な最長の5つのステップです。 入力["bag"、 "bat"、 "bot"、 "cat"、 "cot"、 "dot"、 "dog"]は、パス "bag、bat、bot、dot、dog"および/またはその逆転。 入力["code"、 "golf"、 "male"、 "buzz"、 "mole"、 "role"、 "mold"、 "cold"、 "gold"、 "mode"]は、 "code"そして「ゴルフ」。 入力["one"、 "two"、 "six"、 "ten"]はエッジのないグラフに対応するため、1つ以上の単一ワード(長さゼロ)のパスを出力します。 入力に長さが等しくない2つのワードが含まれる場合、出力は未定義です。 …
12 code-golf 

7
すべての「引用符付き」文字の合計長を印刷します
ルール この課題では、「引用」の定義を少し再定義します。 引用符(別名quotes)は、さまざまな書記体系でペアで使用される同一の文字で、直接のスピーチ、引用、またはフレーズを引き立たせます。このペアは、開始引用符と終了引用符で構成され、同じ文字(大文字と小文字が区別されます)です。 互いに重なる引用符ペアがある場合、 ペアが別のペアをネストしている場合、両方のペアはまだ有効です。 ペアが別のペアをネストしていない場合、最初の開始ペアは有効なままです。もう一方はペアとは見なされなくなりました。 引用符で囲まれた文字(引用符のペアの長さ)をカウントする場合、 引用自体は考慮されません。 各ペアの長さは独立してカウントされます。重複は他に影響しません。 ゴール あなたの目標は、すべての有効な引用符の全長を印刷することです。これはコードゴルフであるため、バイト数が最も少ないコードが勝ちます。 例 Legend: &lt;foo&gt;: Valid quotes ^ : Cannot be paired character Input : ABCDDCBA `A` (6): &lt;BCDDCB&gt; `B` (4): &lt;CDDC&gt; `C` (2): &lt;DD&gt; `D` (0): &lt;&gt; Output : 12 Input : ABCDABCD `A` (3): &lt;BCD&gt; `B` (0): ^ ^ …

30
オーストラリアのサッカーの試合の勝者を決定する
オーストラリアのフットボールでは、ゴールは6ポイントの価値があり、背後は1ポイントの価値があります。スコアには、目標と背後の数、および合計スコアが含まれる場合があります。2つの異なるチームの目標と背後の数を考慮して、ゲームに勝ったチームを決定します。 g1, b1, g2, b2入力として4つの整数を受け取り、入力された最初のチームまたは2番目のチームが勝ったかどうかについて2つの異なる値を出力します。入力形式は柔軟ですが、入力順序はどのチームが最初であるかを明確にする必要があります。たとえば、g1, g2, b1, b2許可されますが、許可されb1, g2, g1, b2ません。 テストケース テストケースはtrue、最初のチームの勝利とfalse2番目のチームの勝利に使用します。入力の形式はです(g1,b1),(g2,b2)。 (1,0),(0,1) true (2,0),(0,11) true (10,8),(11,1) true (0,0),(1,0) false (100,100),(117,0) false (7,7),(5,12) true (2,0),(0,13) false 例として、入力では(10,8),(11,1)、チーム1が10ゴールと8ビハインドで合計ポイント、チーム2がポイントを獲得したため、チーム1が勝利します。 。10∗6+8∗1=6810∗6+8∗1=6810*6+8*1=6811∗6+1∗1=6711∗6+1∗1=6711*6+1*1=67 入力はドローになりません-ドロー入力に対するプログラムの動作は重要ではありません。

2
誰がノナリーゲームから逃れることができますか?
Nonary Gameは、同じ名前のビデオゲーム3部作で行われる架空のゲームです。あなたの目標は、可能な限り数バイトのコードで、特定のゲームから何人のプレイヤーが脱出できるかを見つけることです。 ゲームのルール 1から9までの9人のプレイヤーがいます。 すべてのプレイヤーは同じ部屋で始まります。 任意の数のドアがあり、各ドアには1〜9の番号が付いています。ドア番号が重複または欠落している可能性があります。 ドアは部屋間の片道接続です。各ドアは一度しか使用できません。 3〜5人のプレイヤーのグループのみがドアを通過できます。 グループは、9を法とする数値の合計が9を法とするドアの数と一致する場合にのみドアを通過できます。 9ドアを通過したプレイヤーはすべて逃げます(勝ちます)。 例 ┌───┬───┬───┐ │ 6 4 9 │ &lt; │ | | │ 3 5 9 └───┴───┴───┘ &lt;開始点を表します。すべてのプレイヤーがそこから始まります。 この設定では、誰もが脱出できます。これを実現するにはさまざまな方法がありますが、そのうちの1つは [1、2、3、4、5]はドア6((1 + 2 + 3 + 4 + 5)%9 = 6)を通過し、[6、7、8、9]はドア3を通過します((6 + 7 + 8 + 9)%9 = 3)。全員が2番目の部屋で会います。 [1、2、3、7]はドア4を通り、[4、5、6、8、9]はドア5を通ります。 [1、2、3、4、8]は9つのドアの1つを通り、[5、6、7、9]はもう1つのドアを通ります。 ┌───┬───┐ …
12 code-golf  game 

4
大使と翻訳者
国連会議の2人の大使はお互いに話したいと思っていますが、残念なことにそれぞれが1つの言語しか話せません。彼らは同じ言語ではありません。幸いなことに、彼らはそれぞれが少数の言語を理解し話す複数の翻訳者にアクセスできます。あなたの仕事は、2人の大使が互いに話すことを可能にする翻訳者の最短チェーンを決定することです(できるだけ翻訳で失われないようにするため)。 コーディング 入力: 2文字の小文字の文字列としての2つの言語(各大使の言語)と言語のリストのリスト(利用可能な翻訳者ごとに1つのリスト) または、2文字のコードの代わりに整数を使用することもできます。 出力: 2人の大使が通信できる最短の翻訳者チェーンのいずれかであるインデックスまたは値による翻訳者のシーケンス。有効な翻訳者のチェーンがない場合、動作は未定義です。(クラッシュしたり、任意の値を出力したり、エラーを示したりする場合があります) 有効な翻訳者チェーンとは、最初の翻訳者が1人の大使の言語を話し、2番目以降の翻訳者が少なくとも1つの言語を前の翻訳者と共有し、最後の翻訳者がもう1人の大使の言語を話すものです。 例 ゼロベースのインデックス作成の使用: es, en, [ [es, en] ] ==&gt; [0] en, en, [] ==&gt; [] en, jp, [ [en, zh, ko, de], [jp, ko] ] ==&gt; [0, 1] es, ru, [ [gu, en, py], [po, py, ru], [po, es] ] ==&gt; [2, …

5
地形到達可能性
Advance Wars、Wargroove、Fire Emblemなどのターンベースの戦術ゲームは、地形のタイプごとに異なるコストを必要とする異なる移動クラスのユニットを持つ、さまざまな地形の正方形グリッドで構成されています。その問題のサブセットを調査します。 チャレンジ あなたの仕事は、地形コストと移動速度のグリッドを考慮して、ある場所が別の場所から到達可能かどうかを判断することです。 ユニットは、正方形に移動するコストがグリッド上の対応するセルの値である場合にのみ直交移動できます(移動は無料です)。たとえば、3の値のセルから1の値のセルに移動するには1回の移動が必要ですが、他の方法で移動するには3が必要です。一部の正方形にはアクセスできない場合があります。 例 1 [1] 1 1 1 1 2 2 3 1 2 3 3 3 4 1 3 &lt;1&gt; 3 4 から[1]に移動するに&lt;1&gt;は、右に1マス、次に下に3マス移動することにより、最低7つの移動ポイントが必要です。したがって、移動速度として6以下を指定した場合、偽の答えを出力する必要があります。 テストケースの例 これらは、解析を容易にするために、開始と終了に角かっこで囲まれたセルではなく、左上の原点のゼロインデックス(行、列)座標を使用します。到達不能なセルはX ケース1a 1 1 2 1 X 1 2 2 1 1 2 1 1 2 1 X X X 1 …

13
(m)文字を使用せずにŋarâþcrîþアルファベットの歌を出力する
あなたの目標は、入力を取らずに次のテキストを出力するプログラムを作成することです。 ca e na ŋa va o sa; þa ša ra la ła. ma a pa fa ga ta ča; în ja i da ða. ar ħo ên ôn ân uħo; carþ taŋ neŋ es nem. elo cenvos. ただし、問題がありLます。ソースの各文字(Unicodeの一般的なカテゴリがで始まる文字)ごとに、20文字のペナルティが発生します。(参照用に、印刷されるテキストは81文字です。) 以下のPerl 6コードは145バイトと84文字であるため、1,845のスコアを取得します。 say "ca e na ŋa va o sa; þa …

3
マトリックス回転ソート
次のように、一意の番号を持つ空ではなく、並べ替えられていない有限行列を定義します N= { 415376}N={457136}N = \begin{Bmatrix} 4&5&7\\1&3&6 \end{Bmatrix} 4つのマトリックスの動きを次のように定義します。 ↑*(上):列を上に移動します ↓*(下):列を下に移動します →*(右):行を右に移動します ←*(左):行を左に移動します アスタリスク(*)は、移動の影響を受ける列/行を表します(0インデックスまたは1インデックスにすることができます。あなた次第。答えの1つを明記してください)。 課題は、上記の動きを使用して、マトリックスを昇順でソートすることです(左上隅が最も低く、右下隅が最も高い)。 例 N={412536}N={423156}N=\begin{Bmatrix}4&2&3\\1&5&6 \end{Bmatrix}↑0↓0 N={243516}N={231456}N=\begin{Bmatrix}2&3&1\\4&5&6 \end{Bmatrix}→0 N={415376}N={457136}N = \begin{Bmatrix} 4&5&7\\1&3&6 \end{Bmatrix}↑0↑1←1↑2 N=⎧⎩⎨⎪⎪581927643⎫⎭⎬⎪⎪N={596824173}N = \begin{Bmatrix} 5&9&6\\ 8&2&4\\ 1&7&3 \end{Bmatrix}↑0↑2→0→2↑0→2↑1↑2←1 N= ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪110171526302727111622283812212329413181924659142025⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪N={127282961023451778139151112181426162119203022232425}N = \begin{Bmatrix} 1 & 27 & 28 & 29 & 6 \\10 & 2 & 3 …

10
新しい注文#1:これはどう感じますか?
前書き すべての正の数を規則正しい順序(1、2、3、...)で並べるのは少し退屈ですよね?したがって、すべての正の数の順列(再編成)に関する一連の課題があります。 このシリーズの最初の課題は、のための出力(N)にある所定のN(N)は、入力としてA064413その値のグラフは、心電図(したがって似ているため、また、EKG配列として知られている「どのようにこの「参照」と感じます。このシーケンスの興味深い特性は、すべての正の整数が一度だけ現れることです。もう1つの注目すべき機能は、すべての素数が昇順で発生することです。 仕事 整数入力nが与えられると、a(n)を出力します。 a(n )a(n)a(n)は次のように定義されます。 a (1 )= 1 ; a (2 )= 2;a(1)=1;a(2)=2;a(1) = 1; a(2) = 2; 以下のためにn &gt; 2n&gt;2n > 2、(nが)、すでに使用されていない最小の数である株式を有する因子(N - 1 )a (n )a(n)a(n)a (n − 1 )a(n−1)a(n-1) 注:ここでは、1ベースのインデックス付けが想定されています。0ベースのインデックスを使用できるためa(0)=1;a(1)=2a(0)=1;a(1)=2a(0) = 1; a(1) = 2など。これを使用することを選択した場合、これを回答に記載してください テストケース Input | Output -------------- 1 | 1 5 …

18
ジャンプ番号
ジャンプ番号は、連続する10進数のすべてのペアが1異なる正の数nとして定義されます。また、すべての1桁の番号はジャンプ番号と見なされます。例えば。3、45676、212はジャンプ数ですが、414と13はそうではありません。9と0の差は1とは見なされません 課題 次のいずれかの結果を出力するプログラムを作成します。 入力が与えられたn場合、最初のnジャンプ番号。 入力が与えられnた出力をn目シーケンスの用語。 注意 有効なI / O形式はすべて許可されます 1インデックスまたは0インデックスが許可されます(指定してください) ここにいくつかのジャンプ番号があります: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98, 101, 121, 123, 210, 212, 232, 234, 321, 323, 343, 345, 432, 434, …

18
ロッコ番号を見つける
インタビューでこの質問をされましたが、解決策を見つけることができませんでした。質問が正しかったかどうかはわかりません。私は多くのことを試みましたが、解決策に到達できませんでした。正直に言って、何も思い浮かばなかった。 ロッコ番号 正の整数nnnは、n=p(p+14)n=p(p+14)n=p(p+14)またはn=p(p−14)n=p(p−14)n=p(p-14)いずれかで表現できる場合、ロッコ数です。ここで、pppは素数です。 最初の10個のRocco番号は次のとおりです。 32,51,95,147,207,275,351,435,527,62732,51,95,147,207,275,351,435,527,62732, 51, 95, 147, 207, 275, 351, 435, 527, 627 仕事 コードは入力として正の整数を受け入れ、それがRocco番号かどうかを判断する必要があります。 ブラウニーポイント 100万以下のRocco数のカウントを計算して印刷する関数を作成します。 ボーナス質問(1つ以上)の素数であるRocco数のカウントを計算して出力する関数を作成します。

14
クロック(音訳)暗号
前書き: 私は子供の頃にコンパイルしたドキュメントにさまざまな暗号を大量に保存しています。チャレンジに最も適していると思われるものをいくつか選んで(簡単すぎず、難しくありません)、チャレンジに変換しました。それらのほとんどはまだサンドボックス内にあり、それらすべてを投稿するのか、それともほんの少数を投稿するのかはまだわかりません。3番目の最も簡単な方法は次のとおりです(以前に投稿したComputer CipherおよびTrifid Cipherの後)。 Clock Cipherでは、次の画像を使用してテキストを暗号化します。 したがって、次のような文は次のようthis is a clock cipherになります。 t h i s i s a c l o c k c i p h e r (without additional spaces of course, but added as clarification) 19:7:8:18:00:8:18:00:AM:00:2:11:14:2:10:00:2:8:15:7:4:17 チャレンジ: stringを指定するとsentence_to_encipher、上記のように暗号化します。 チャレンジルール: あなたが仮定することができます sentence_to_encipherは文字とスペースのみが含まれるます。 完全な小文字または完全な大文字のいずれかを使用できます(回答で使用したものを明記してください)。 をb介して1桁の暗号化文字に先行ゼロを追加することはできませんが、スペースにはj2つのゼロ00が必須です。 :区切り文字として使用する必要があり、先頭または末尾に追加する:ことはできません。 一貫性がある限り、大文字との代わりに小文字amとを使用できpmます。AMPM 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 …

1
法案を分割する
仕事 人pが法案を分割しなければならないと仮定します。それらのそれぞれは、以下(Name, n, k)で構成されるトリプルによって識別されます。 Name:名前 ; n:彼女/彼が支払わなければならない量。 k:彼女/彼が実際に支払った金額。 ここでの課題は、誰が誰に負っているのかを知ることです。 仮定 入力と出力は、任意の便利な形式にすることができます。 p ∈ N、∈N、\in \mathbb{N}, \,\;\;n ∈ N+、∈N+、\in \mathbb{N}^{+},\; k ∈ N。∈N。\in \mathbb{N}. p &gt; 1。&gt;1。\gt 1. 名前は、小文字のアルファベット文字で構成される任意の長さの一意の文字列です。 解決 ソリューションは、p人々の間の最小のトランザクションセットで表されます。特にトリプルです(from, to, amount) from:nameお金を与える人の to:nameお金を受け取る人の amount:トランザクションの金額。 注:すべての負債の合計(n)は、すでに支払われたすべての金額の合計()と異なる場合がありますk。この場合、出力('owner', Name, amount)または選択(Name, 'owner', amount)した形式で追加する必要があります。名前は、すべてになることはありませんowner【選択文字列「所有者は」柔軟です。 複数の最小セットが存在する場合は、すべてのトランザクション量(絶対値)の合計が最小のものを選択します。同点の場合は、いずれかを選択します。 テストケース: inputs(Name,n,k): [('a',30,40),('b',40,50),('c',30,15)] [('a',30,30),('b',20,20)] [('a',30,100),('b',30,2),('c',40,0)] [('a',344,333),('b',344,200),('c',2,2)] [('a',450,400),('b',300,300),('c',35,55)] outputs(from, to, …
12 code-golf 

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