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

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

3
アイデンティティサンドパイルを見つける
この質問はアーベルサンドパイルに関するものです。読むこの前の挑戦をしてこのnumberphileのビデオを見て多くを学ぶために。 サイズのアーベル砂山NによってNは番号0、1、2及び3(砂の粒の数を表す)を含むグリッドです。2 sandpilesを追加すると、最初の要素で要素を追加し、その後で働く転倒 3.あなたがいない問題で、最終結果は同じであるん打倒する順番以上になる任意の要素を。セルが転倒すると、その数は4減少し、直接隣接するセルはそれぞれ1増加します。これにより、連鎖反応が発生する可能性があります。セルがグリッドの端にある場合、転倒中にグリッドから落ちる粒子はすべて消えます。 たとえば、2 x 3のサンドパイルを追加しています(かなり極端な連鎖反応を与えます)。 3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2 3 3 3 + 2 1 2 …

8
美しい模様の引き出し(小さな立方体が含まれています)
美しい模様の引き出し おはようございますPPCG! 先日、私がStack Overflowで誰かを助けようとしたとき、彼の問題の一部がこの挑戦のアイデアを与えてくれました。 まず、次の形状を確認します。 ここで、すべての黒の数字はシェイプ内のポイントのインデックスであり、すべての濃い青の数字はポイント間のリンクのインデックスです。 ここで、0x00000〜0xFFFFFの16進数を指定すると、コンソールで文字スペースと「■」のみを使用して図形を描画する必要があります(文字「o」を使用しても問題ありません)。 16進数が入力され、形状が出力される例を次に示します。 0xE0C25 : ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 0xC1043 : ■ ■ ■ ■ ■ ■ …

17
xフィボナッチ数までの素数フィボナッチ数の算術平均
よくフィボナッチ数列と呼ばれるフィボナッチ数について聞いたことがあるはずです。このシーケンスでは、最初の2つの用語は0と1であり、最初の2つ以降のすべての数値は、先行する2つの用語の合計です。言い換えれば、F(n) = F(n-1) + F(n-2)。 最初の20個のフィボナッチ数列は次のとおりです。 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 仕事: 整数を指定してx、フィボナッチ数x列までの素数フィボナッチ数の算術平均(平均)を計算します。 ルール: このチャレンジのフィボナッチ数列は0と1から始まります 3 < x < 40の値が大きいほど、x実行時間が非常に長くなるかオーバーフローする可能性があり、値が小さいほど出力がない 1は除数が1つしかないため、素数ではありません 算術平均には、小数が含まれている場合は小数を含めるか、正確な分数として表示する必要があります x入力として取得することのみが許可されており、入力を取得するために必要なコードはカウントされません(例:のようなものが必要なx = input()場合は、バイトをカウントするときに考慮しないでください) 例: 例 1:についてはx=10、出力された5.7510番目のフィボナッチ数であるため、55およびプライムフィボナッチ数まで55あり2, 3, 5, 13、それらの平均ビーイング5.75 例1の説明に続いて、他の例は次のとおりです。 例 2:の場合x=15、出力は57.5 例 …

7
グラフの最長サイクル
有向グラフを指定すると、最長のサイクルが出力されます。 ルール 任意の妥当な入力形式が許可されます(エッジのリスト、接続性マトリックスなど)。 ラベルは重要ではないので、入力に与えられていない追加情報が含まれていない限り、あなたが必要または希望するラベルに制限を課すことができます(たとえば、サイクル内のノードが整数でラベル付けされ、他のノードはアルファベット文字列でラベル付けされます)。 サイクルは、すべて接続されているノードのシーケンスであり、サイクルの開始および終了であるノード以外のノードは繰り返されません([1, 2, 3, 1]サイクルですが、そうで[1, 2, 3, 2, 1]はありません)。 グラフが非循環の場合、最長サイクルの長さは0であるため、空の出力(空のリスト、出力なしなど)が生成されます。 サイクル内のノードのリストの最後で最初のノードを繰り返すことはオプションです(同じサイクル[1, 2, 3, 1]を[1, 2, 3]示します)。 同じ長さのサイクルが複数ある場合、それらのいずれかまたはすべてが出力される場合があります。 ビルトインは使用できますが、ソリューションで使用する場合は、簡単なビルトインを使用しない代替ソリューション(すべてのサイクルを出力するビルトインなど)を含めることをお勧めします。ただし、代替ソリューションはスコアにはまったくカウントされないため、完全にオプションです。 テストケース これらのテストケースでは、入力はエッジのリスト(最初の要素はソースノードで、2番目の要素は宛先ノード)として与えられ、出力は最初/最後のノードの繰り返しのないノードのリストです。 [(0, 0), (0, 1)] -> [0] [(0, 1), (1, 2)] -> [] [(0, 1), (1, 0)] -> [0, 1] [(0, 1), (1, 2), (1, 3), (2, 4), …

30
強盗-平方時間平方根
タスク:整数nの平方根にその2乗を掛けるスクランブルコードを解読します。 警官のスレッドに作業ソースへのリンクを付けてコメントを投稿する必要があります。これには、クラックしたことを明記してください。回答のタイトルには、元の回答へのリンクを含める必要があります。 ルール: 元のソースの文字の順序のみを変更できます。 安全な回答はもはや解読できません。 警官のスレッドで言及されている他のルール 解答を編集してください 受賞者:エミグナ-10のサブミッション(数えるのに苦労しました) 敬意を表する:Notjagan、Plannapus、TEHTMI

30
コードブロックツールを作成する
SEネットワークのようにマークアップを使用する場合、テキスト行の前にある4つのスペースのインデントは、コードブロックの一部であることを示します。そうでない場合、ここに例があります(.スペースを表す): ....コード ....その他のコード 結果として Code More code 問題は、コードを回答にコピーアンドペーストするとき、各行を手動でインデントする必要があることです。これは、まだインデントされている可能性があり、混乱を引き起こす可能性があるため、未作成のコードを操作する場合は特に困難です。コードを選択してを押すだけで、結果がわかりますCtrl + K。私の人生の時間は、理由を別にして無駄にしています... したがって、目標は、入力が与えられると、各行の前に4つのスペースを入れて返すことです。コピーペーストの時間を節約するという精神で、入力全体を1つの文字列として処理することになります(言語で解析できる場合)。ご使用の言語が文字列内の文字(改行など)を処理できない場合、その言語でサポートされている他の方法で表示/エスケープされていると想定できます。ただし、出力は各行を独自の行に出力する必要があります(したがって、のようなものは渡されません....foo\n....bar)。 標準の抜け穴は許可されていません。これはcode-golfであるため、バイト単位の最短回答が優先されます。幸運を!

7
正方形を数える
チャレンジ 折り紙(折り紙)は芸術の創造的な形式です。私の知る限り、折り紙の達人は正方形の紙を好みます。最初から始めましょう-長方形の紙を正方形の紙に変換します。 したがって、紙は正方形に分割されます。現在の形状と1つの短いエッジを共有する最大の正方形を段階的に削除します(下の図を参照)。また、1ステップ後の残りの部分がより小さいか等しい場合0.001 * (area of the original paper)、用紙はそれ以上分割できません。最後に何も残っていない可能性があります。 あなたのタスクは、プロセス中に作成される正方形の数を計算することです。用紙を分割できない最後のステップの正方形は、出力にカウントされます。 例(1.350幅/高さの用紙)、出力は10です: 入出力 入力:長方形の紙の幅/高さの比、1桁の小数(またはドットのない整数)から1.002まで1.999、最小ステップ0.001。また、比率を説明する他の合理的な形式を使用することもできます。答えにそれを記載してください。 出力:平方カウント、1つの整数。 I / Oの例 コードはリスト入力をサポートしたり、マッピング関数である必要はありませんが、ページを整理するためにマッピング形式が使用されます。 1.002 => 251 1.003 => 223 1.004 => 189 1.005 => 161 1.006 => 140 1.007 => 124 1.008 => 111 1.009 => 100 すべての回答のリスト @LuisMendoのおかげで、ここに回答のグラフがあります。 備考 これはコードゴルフなので、最短のコードが勝ちます 標準的な抜け穴に注意する 入力と出力の処理方法を決めるのはあなたの自由ですが、標準の制限に従う必要があります。 ところで... 課題について不明な点がある場合はコメントしてください …

14
Bleeeet Bleeeet Bl Bleet!
(意味:英語からBleetへの変換) 私たちは何年もの間、ヤギを神として賞賛してきました。 しかし、英語をヤギ神の言語である「Bleet」に翻訳できなければ、彼らとコミュニケーションをとることはできません。 そこで、彼らとコミュニケーションをとるために、ヤギの活動を調査し、言語の中核であるこのパターンを取得しました。 各単語の長さについて「Bleet」と言います。つまり、3文字より長い単語の場合、「e」の長さは(長さ3)である必要があります。たとえば、「be」は「bl」になりますが、「cat」と「boat」は「blt」と「blet」になります。 どうやら、実際にはアルファベット以外の文字を「Bleet」に変更しません。私たちの調査では、「Hello、World!」Bleetには「Bleet、Bleet!」「Bleeet Bleeet」ではありません。また、ヤギはそれほど知的ではないので(攻撃はありません)、非ASCII文字や発音区別記号をまったく理解していないようです。 さあ、ヤギの神とコミュニケーションを取るための翻訳者を作る時です。 Bleeeeet(意味:例) Hello, World! => Bleet, Bleet! lorem ipsum dolor sit amet. => Bleet Bleet Bleet Blt Blet. We praise the Goat God! => Bl Bleeet Blt Blet Blt! I have a pen => B Blet B Blt 0123456789_ => 0123456789_ 0te_st1 => …
18 code-golf  string 

5
ASCIIアートの非交差パスを生成する
2つの整数フィールドのサイズを表す入力、所与xとy、出力フィールドを介してパス。 の出力例5, 4: # # # ### ### # フィールド全体は5 x 4で、フィールドを横切るハッシュマークで構成されるパスがあります。 パスは常に左上隅から始まり、右下に行く必要があります。プログラムを実行するたびに、パス全体をランダム化する必要があります。有効なパスはすべて、可能な出力である必要があります。 パスのルールは次のとおりです。 ハッシュマークで作られた すべてのハッシュは、他の2つのハッシュにのみ接続されます(つまり、パスはそれ自体と交差または実行されません) ハッシュ以外のスペースは他の文字で埋めることができますが、一貫している必要があります(つまり、すべてのスペース、すべてのピリオドなど)。 例: 2, 2 ## # 3, 4 ## ## # # 5, 5 ##### # # # # 6, 5 ## ### # # # ## # # # ## # ### # …

4
テッセレーションしましょう!
前書き ウィキペディアから: 平面のテッセレーションとは、タイルと呼ばれる1つ以上の幾何学的形状を使用した平面のタイル張りで、重なりや隙間はありません。 かなりよく知られているテッセレーションを以下に示します: 菱形は、重なりや隙間がないようにタイル状に並べられ、キューブの列の交換をシミュレートします。 仕事 あなたの仕事は、上記の画像と同じように菱形をテッセレーションするプログラムを書くことです。プログラムへの入力は、テッセレーションの次元になりますheight x width。ここで、幅は列の量で、高さは行の量です。 単一のキューブ1 x 1(3タイルの菱形)は、次のように正確に表されます。 _____ /\ \ / \ \ / \ _____\ \ / / \ / / \/_____ / したがって、入力/次元がの3 x 2場合、これは出力になります。 _____ /\ \ / \ \ / \ _____\ _____ \ / /\ \ \ / / \ …

12
基数-10の出力N
チャレンジ: 選択したプログラミング言語で、整数 を10を基数として入力として受け入れ、負数表記で出力しますを基数としても知られるで アルゴリズムの例: これは、VB.NETで10を基数から任意の負の基数に変換するためにウィキペディアから取得したアルゴリズムです。 Function toNegativeBase(Number As Integer , base As Integer) As System.Collections.Generic.List(Of Integer) Dim digits As New System.Collections.Generic.List(Of Integer) while Number <> 0 Dim remainder As Integer= Number Mod base Number = CInt(Number / base) if remainder < 0 then remainder += system.math.abs(base) Number+=1 end if digits.Insert(0, …

1
複数のファイルをデフラグする最少ディスク書き込み
前書き ディスクがインデックスブロックを有する直鎖状の容器である0介しsize-1。 ファイルは、そのファイルで使用されるブロックインデックスの名前付きリストです。 ファイルシステムの例は次のように表されます。 15 ALPHA=3,5 BETA=11,10,7 「ディスクには15ブロックあります。ファイルALPHAの最初のブロックは、インデックス3のディスクブロックです...」 ディスクマップは次のように描画できます。 Block Index 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 Contents | | | |A0 | |A1 | |B2 | | |B1 |B0 | | | | ディスクは、ディスク内のすべてのファイルが連続して保存されている場合、最適化されていると見なされます。 あなたの目標: 特定のディスクを最適化する、法的措置の最短シーケンスを発行します。 法的な動き 移動には、ファイルの名前、移動するファイル内のブロックのインデックス、移動先のディスクブロックのインデックスの3つの情報が含まれます。 例えば ALPHA:1>4 …

3
助けて!もっと宿題があります!
私の先生は私の火星の宿題に不満でした。私はすべての規則に従いましたが、彼女は私が出力したものが意味不明であると言います...彼女が最初にそれを見たとき、彼女は非常に疑っていました。「すべての言語はZipfの法則に従わなければなりません」... Zipfの法則が何かさえ知りませんでした! 結局のところジップの法則の状態は、y軸上の各単語の頻度の対数、およびX軸上の各単語の「場所」の対数(最も一般的な= 1をプロットした場合には、二番目に多い= 2、 3番目に最も大きいcommmon = 3など)、プロットには約-1の勾配の線が表示され、約10%が与えられます。 たとえば、Moby Dickのプロットは次のとおりです。 x軸はn番目の最も一般的な単語で、y軸はn番目の最も一般的な単語の出現回数です。線の勾配は約-1.07です。 今、私たちはVenutianをカバーしています。ありがたいことに、Venutiansはラテンアルファベットを使用しています。ルールは次のとおりです。 各単語には少なくとも1つの母音(a、e、i、o、u)が含まれている必要があります 各単語には、連続して最大3つの母音を含めることができますが、連続する子音は2つまでです(子音は母音ではない任意の文字です)。 15文字を超える単語はありません オプション:単語をピリオドで区切られた3〜30語の文にグループ化します 私は火星の宿題をだましていると先生が感じているので、少なくとも30,000語の長さのエッセーを書くように割り当てられました(ヴェヌチア語)。彼女は、Zipfの法則を使用して私の作品をチェックするので、線を(上記のように)当てはめる場合、勾配は最大-0.9で-1.1以上でなければならず、少なくとも200語の語彙が必要です。同じ単語を5回以上連続して繰り返さないでください。 これはCodeGolfなので、バイト単位の最短コードが優先されます。出力をPastebinまたはテキストファイルとしてダウンロードできる別のツールに貼り付けてください。
18 code-golf 

15
重要な空白:強盗
これは警官と強盗の挑戦の一部です。警官の役のためにここに行ってください。 この課題のために、空白をラインフィード(0x0A)とスペース(0x20)のみとして定義します。ほとんどの言語と正規表現フレーバーは、ASCII範囲の内側と外側の両方で、他の多くの文字も同様に空白と見なすため、対応するビルトインを使用できない場合があります。 強盗の挑戦 警官の答えは、コードに空白を挿入することにより、入力文字列から空白を削除するタスクを実行する有効なプログラムまたは関数(選択した言語)に変換することで解読できます。たとえば、次の入力を受け取った場合: H e l l o, W o r l d! プログラムは出力するはずです Hello,World! 空白を挿入した後、ソリューションのバイトカウントは、警官の回答に記載されているバイトカウントを超えてはなりません。上記の制約によって有効である限り、意図した警官とまったく同じ解決策を見つける必要はありません。 これを管理する場合は、ソリューションに回答を投稿し、警官の回答にリンクし、警官の回答にコメントを残して自分にリンクします。 最も警官に答える強盗が勝ちます。ひびの入った警官の回答のサイズの合計によって関係が壊れます(より長い提出物をひっくり返す強盗に有利に)。 各警官の答えは1回しか解読できません。もちろん、自分の答えを解読することはできません。警官の答えがクラッキングされる前または後に無効であることが判明した場合、強盗のスコアにはカウントされません。

7
エイヤフィヤトラヨークトルの噴火?
2010年、アイスランドのヴルカノ、エイヤフィヤトラヨークトルという簡潔な名前 が噴火し、長期計画のフライトがキャンセルされました。 これが再び発生する場合、事前に知りたいので、簡単な視覚的警告システムの構築を手伝ってください! 入力 テイクアイスランド気象庁入力(文字列)として、火山活動の警告コードを: 緑 -火山は通常の非噴火状態です。 黄色 -火山は、既知の背景レベルを超える不安の高まりの兆候を経験しています。 オレンジ -火山は噴火の可能性を高めた激しい不安を示しています。 赤 -噴火は差し迫っていると予測されており、大気中に灰がかなり放出される可能性が高い。 出力 Eyjafjallajökullの状態を示すグラフィック(ASCIIアート)アラート。 緑(エイヤフィヤトラヨークトルは休んでいます) al la j j jaf öku y l E l ------------------- 黄色(煙が出ます!) ~ ~ ~ al la j j jaf öku y l E l ------------------- オレンジ(より多くの煙!) ~ ~ ~ ~ ~ ~ al …

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