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

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

9
この日付形式は何ですか?
グレゴリオ暦の場合、日付の形式は国によって異なります。認識される3つの主要な形式があります。 YY-MM-DD (ビッグエンディアン) DD-MM-YY (リトルエンディアン) MM-DD-YY (ミドルエンディアン) あなたの仕事は、日付を表す入力文字列を与えられ、この文字列を日付として解釈できるすべての可能な日付形式を出力するプログラムを書くことです。 ルール 入力日付の形式xx-xx-xxはで、各フィールドは2桁でゼロが埋め込まれます。 日付は常に有効です(14-13-17のようなものは取得できません) 日付は常に上記の形式の少なくとも1つです(したがって、17-14-11のようなものは取得できません) 私たちは実際にはパラレルワールドにいるため、1年の各月には31日あり、その結果、うるう年はありません 日付は2001年1月1日から2099年12月31日の間 日付の形式が1つしかない場合、コードはそれだけを印刷する必要があります(末尾の改行のみが許可されます)。 日付の形式が複数ある場合は、コンマ、スペース、改行、またはそれらの組み合わせで区切る必要があります 形式の正確な名前を出力する必要があります。異なる任意の値を使用することはできません。 末尾のスペース以外の先頭または末尾の文字は使用できません 出力は小文字でなければなりません 組み込みの日付またはカレンダー関数の使用は許可されていません 出力フォーマットをソートする必要はありません 例 Input Output 30-05-17 big-endian, little-endian 05-15-11 middle-endian 99-01-02 big-endian 12-11-31 big-endian, little-endian, middle-endian 02-31-33 middle-endian これはコードゴルフなので、バイト単位の最短コードが優先されます。説明が奨励されます。
11 code-golf  date 

4
自慢の手に名前を付ける
バックグラウンド Bragは、ポーカーと概念は似ていますが、ポーカーよりも単純なカードゲームです。自慢の手は3枚のカードで構成され、最高から最低まで次のようにランク付けされます。 3種類のカード-3つのカードはすべて同じランクです。「三人の王」などと名付けられた フラッシュ、別名ストレートフラッシュを実行しています。同じスーツと連続したランクの3枚のカードすべて。ハンドは3枚のカードの昇順で名前が付けられており、単純なラン/ストレートと区別するために「on the bounce」という単語が続きます。エースは高いか低いかのどちらかであり、両方ではないことに注意してください-「king-ace-two」はランではありません。 まっすぐ走る。上記と同じですが、スーツを合わせる必要はありません。単に「ten-jack-queen」などの名前が付けられます。 フラッシュ-3枚のカードすべてが同じスーツで、最高ランクにちなんで名付けられました(例:「エースフラッシュ」)。 ペア-同じランクの2枚のカードと別のバージョンのランクの3枚目。「スリーペア」などと呼ばれる 「ace high」など、最高ランクにちなんで名付けられた他の組み合わせ。 チャレンジ トランプが3枚ある場合、それらが出力する自慢の手の名前を出力します。 カードは、3つの2文字の文字列として入力されるか、1つの6文字の文字列として連結されます(実装によってはどちらでもかまいません)。各ペアの最初はランクです(2 ... 9、T、J、Q、 K、A)、2番目はスーツ(H、C、D、S)を意味します。 標準のゴルフ規則が適用されます-上記のように、この入力を受け入れ、手の名前を出力するプログラムまたは関数を記述します。 入力は有効(上記の範囲のランクとスート、カードの繰り返しなし)であり、どのような場合でも、特定の順序ではないと想定できます。 出力は、すべて大文字、すべて小文字、またはタイトルの大文字小文字や文の大文字小文字など、意味のある大文字にする必要があります。数値ランクは、たとえば10ではなく「10」のように表記する必要があります。 入力と出力の例: 2H3C2D => "pair of twos" TD8C9C => "eight-nine-ten" 4SKS9S => "king flush" 4D4H4S => "three fours" 5H3H2C => "five high" 2D3DAD => "ace-two-three on the bounce" 6D6C6H => "three …

2
欠落しているRGBチャネルを再構築する
これらの自然シーンの写真を見てください。RGBチャネルの1つが取り出されています。 ソース(赤):https : //en.wikipedia.org/wiki/File : Altja_j %C3% B5gi_Lahemaal.jpg ソース(緑あり):https : //commons.wikimedia.org/wiki/File : 2007_mather-lake_hg.jpg ソース(青):https : //commons.wikimedia.org/wiki/File : Fox_01.jpg チャネルが1つもない場合でも、特定の色がどのような色であるかがわかるか、少なくとも、欠落しているチャネルの再構築が正確である場合は良い考えが得られます。 たとえば、次は、ランダムノイズである赤いチャネルが追加された最初の画像です。 この画像は明らかに赤チャンネルを正確に再現したものではありません。これは、自然の写真は通常、RGBスペクトル全体を使用するのではなく、「自然に見える色」のサブセットのみを使用するためです。また、赤の色合いは、他の色と相関する特定のグラデーションに従います。 あなたの仕事は、1つのチャネルが削除された写真を撮るプログラムを構築し、失われたチャネルであると考えられるものを再構築することによって、元の画像にできるだけ近づけることを試みることです。 プログラムは、そのチャネルの値が元の画像の実際の値(ここで値が標準の8ビットカラーチャネルと同様に、0〜255の範囲です。 あなたのプログラムが採点されるテストケースはここにあります(9.04 MBのzipファイル、6つの画像)。現在、上記の3つのサンプル画像とそのオリジナルのみが含まれていますが、後でいくつか追加して、完成したら完全なスイートを作成します。 各画像は1024 x 768に縮小およびトリミングされるため、スコアの重みは同じになります。指定された許容範囲内のほとんどのピクセルを予測できるプログラムが優先されます。

8
揮発性を解釈する
揮発性を解釈する Volatileは、A_ / a '_' / Aによって作成されたスタックベースのesolangであり、8つの命令しかなく、完全に処理しています。ただし、これは非決定的でもあります。つまり、プログラムが常に同じ出力を与えるわけではありません。あなたの仕事はこの言語を解釈することです。 言語仕様 esolangsページから取得: ~: Push a random integer in any range of integers. Minimum range of 0 through 32768 +: Pop 2 values and push the sum of the 2 values -: Like +, but subtracts *: Multiply /: Divide. 0-division will result in …

11
ドラッグレースカウントダウン
チャレンジ: 仮定のシナリオでは、レースのカウントダウンタイマーは、カウントの間にランダムな間隔を設けて、早すぎる開始を防ぎます。 3 (0.82 seconds pass), 2 (0.67 seconds pass), 1 入力: 何もない 出力: 各カウントの間に0.50秒から1秒のランダムな時間間隔で3つの数値を印刷するプログラム(または関数)を作成します。 注意: プログラムは、各数値(3、2、1 )をランダムな間隔(0.50〜1から100分の1までの任意の数値、ハードコーディングなし)で出力する必要があります。ランダムな間隔の精度は、数百に達する必要があります(例:0.52)。間隔のみを出力する必要はなく、カウントのみを出力する必要があります。 @JoKingが明らかにしたように、私は一様にランダムであることを意味します(あなたの言語の擬似ランダムジェネレーターを使用できます。 多くの人々が明らかにしたように、私は本当に0.5から1の間の2桁の数字を意味します(0.50、0.51など、0.98、0.99、1までずっと) これはcode-golfであるため、バイト数が最も少ないプログラムが優先されます。
10 code-golf  random 

10
いくつかのロンリープライム
私は知っています、私は知っています、さらに別の素数の挑戦... 関連する 孤独(または単離された)プライムは素数であるpようにp-2、p+2、p-4、p+4... p-2k、p+2kいくつかのためにkすべての複合です。このような素数をth回分離素数と呼びますk。 たとえば211、すべて201, 203, 205, 207, 209, 213, 215, 217, 219, 221が複合であるため、5回分離された素数はです。(p-2*5=201、p-2*4=203など) チャレンジ 2つの入力整数、n > 3およびが与えられた場合、厳密により大きいk > 0最小のkth回分離された素数を出力しnます。 たとえば、範囲内のk = 5anyの場合、出力はである必要があります。これは、入力より厳密に大きい最小の5回分離された素数であるためです。n4 ... 210211n 例 n=55 k=1 67 n=500 k=1 503 n=2100 k=3 2153 n=2153 k=3 2161 n=14000 k=7 14107 n=14000 k=8 14107 ルール 該当する場合は、入力/出力が言語のネイティブ整数型に適合すると想定できます。 入力と出力は、任意の便利な方法で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

30
ファイル拡張子は何ですか?
あなたの課題は、提供されたファイル名のファイル拡張子を見つけることです。 hi.txt -> txt or .txt carrot.meme -> meme or .meme lol (undefined behavior) what..is..this..file -> file or .file .bashrc -> bashrc or .bashrc T00M@n3KaPZ.h0wC[]h -> h0wC[]h or .h0wC[]h agent.000 -> 000 or .000 文字列の最後. または最後から最後までのテキストを取得する必要があります.。正規表現の最初のキャプチャグループの一致が/\.([^.]+)$/機能し、.sで入力を分割して最後の入力を返します。 ファイル名には常に少なくとも1つ.が含まれますが、複数のファイル名が含まれる場合があります.。(例を参照) 入力は常に一致し^[.a-zA-Z0-9^!\[\]{}@$%+=]+$ます。
10 code-golf  string 

3
ローグライクのマップを生成する
今日は、ローグライクRPGのマップを生成します! サンプルマップ: ########## #### F# #### ## ## C#C# # ## # # C #E # #### # # # # #P # ########## #壁でPあり、プレイヤーの開始位置でFあり、到達しなければならないフィニッシュであり、C収集できるコインでありE、戦うことができる敵です。 地図の仕様: 高さと幅は両方とも10から39の間でなければなりません。高さは幅と同じである必要はありません。 マップの境界は壁で埋める必要があります。 P 左下隅に配置する必要があります。 F 右上隅に配置する必要があります。 1〜3人の敵がいるはずです。 2〜4枚のコインがあるはずです。 中央にある程度の壁があるはずです。そこから取得するためのパスでなければなりませんPすべてにC、EとF、プレイヤーが斜めに動くことができないということを念頭に置いて。 可能なすべての組み合わせには、発生する可能性があります。 ルール 最少バイトのプログラムが勝ちます。 プログラムは何も入力しないでください。 プログラムはエラーで終了しない可能性があります(致命的でない出力は問題STDERRありませんが、マップ生成後に不正なクラッシュを起こすことはできません!) 単一の末尾の改行が許可され、末尾のスペースが許可されます。 他の出力は許可されません。

4
放射性元素を見つけるための正規表現
元素の周期表で、すべての放射性元素に一致し、他には一致しない最短の正規表現を見つけます。 放射性元素 'Technetium','Promethium','Polonium','Astatine','Radon','Francium','Radium','Actinium','Thorium','Protactinium','Uranium','Neptunium','Plutonium','Americium','Curium','Berkelium','Californium','Einsteinium','Fermium','Mendelevium','Nobelium','Lawrencium','Rutherfordium','Dubnium','Seaborgium','Bohrium','Hassium','Meitnerium','Darmstadtium','Roentgenium','Copernicium','Ununtrium','Flerovium','Ununpentium','Livermorium','Ununseptium','Ununoctium' 非放射性元素 'Hydrogen','Helium','Lithium','Beryllium','Boron','Carbon','Nitrogen','Oxygen','Fluorine','Neon','Sodium','Magnesium','Aluminium','Silicon','Phosphorus','Sulphur','Chlorine','Argon','Potassium','Calcium','Scandium','Titanium','Vanadium','Chromium','Manganese','Iron','Cobalt','Nickel','Copper','Zinc','Gallium','Germanium','Arsenic','Selenium','Bromine','Krypton','Rubidium','Strontium','Yttrium','Zirconium','Niobium','Molybdenum','Ruthenium','Rhodium','Palladium','Silver','Cadmium','Indium','Tin','Antimony','Tellurium','Iodine','Xenon','Caesium','Barium','Lanthanum','Cerium','Praseodymium','Neodymium','Samarium','Europium','Gadolinium','Terbium','Dysprosium','Holmium','Erbium','Thulium','Ytterbium','Lutetium','Hafnium','Tantalum','Tungsten','Rhenium','Osmium','Iridium','Platinum','Gold','Mercury','Thallium','Lead','Bismuth' 正規表現の文字数でスコア付け。 標準のPerl正規表現を使用します(特別な関数はありません)。 すべて小文字と仮定します。 あなただけの正規表現自体の文字を数える必要があります。 プログラムを使用して開始したかどうか、そしてそれがどれほどうまくいったかを投稿してください。開始/例を表示するための回答として、最善の試みを投稿します。

5
二次シーケンスからの有効な用語?
4つの番号が与えられます。最初の3つはaaaそれぞれシーケンスのbbb、b、およびcccです。 Tn=an2+bn+cTn=an2+bn+cT_n=an^2+bn+c これら4つの数値は、どのような方法でも入力できます。出力は、2つの別個の出力の一つは、あなたの答えに第四の数は、配列中の用語である(上記の式はのための少なくとも1つの解決策があること一つの手段言及されるべきであるnnnとき整数であり、B、C及びT nはは指定された値に置き換えられます)、もう一方は反対です。aaabbbcccTnTnT_n これはコードゴルフなので、バイト単位での最も短い答えが勝ちます。プログラムは、数値が負または正(または0)、10進数または整数であるa,b,c,Tna,b,c,Tna, b, c, T_n任意の入力に対して機能する必要があります。問題を回避し、ある程度の複雑さを保つために、非整数は常に.5.5.5終わります。標準のループホールは許可されていません。 テストケース a |b |c |T_n |Y/N ------------------------ 1 |1 |1 |1 |Y #n=0 2 |3 |5 |2 |N 0.5 |1 |-2 |-0.5|Y #n=1 0.5 |1 |-2 |15.5|Y #n=5 0.5 |1 |-2 |3 |N -3.5|2 |-6 |-934|Y #n=-16 0 |1 |4 |7 |Y …

10
グリッドに別のグリッドが含まれているかどうかを判別する
チャレンジ Create関数は、2つの文字の2次元配列(またはプログラミング言語にデータ型として文字がない場合は文字列)を入力として受け取ります:aとb。言語がこれらの入力をサポートしていない場合は、他の標準の1バイト変数を使用できます。 あなたの仕事は、bにaが含まれているかどうかを判別することです。その場合は、trueを返します。それ以外の場合は、falseを返します。 サンプルテストケース a: 123 456 789 b: 123 456 789 trueを返す必要があります。 a: code golf b: thisis code!! golf!! ohyeah trueを返す必要があります。 a: abcd efgh ijkl b: abcdef ghijkl mnopqr falseを返す必要があります。 a: abc def b: 1abc2 3def4 5ghi6 trueを返す必要があります a: ab cd b: #ab## ##cd# falseを返す必要があります 最小バイトが勝ちます。

3
これを入力するのにどのくらい時間がかかりますか?
前書き QWERTYキーボードレイアウトを使用して、適度なペースで入力できます。しかし、yellowwooddoorのような単語に大量の文字が繰り返されている場合、入力するのに少し時間がかかります。さらに悪いのは、「ジャンプ」のような単語が、複数の異なる連続した文字に同じ指を使用している場合です。 以下は、各指に文字を入力するのにかかる時間です(非常に非科学的に測定されています)。 列は、指の名前、キーストローク/秒、秒/キーストローク、および各指で使用されるキーです Typing same letter twice: L Pinky 5.2 0.1923076923 1qaz L Ring 5 0.2 2wsx L Mid 5.3 0.1886792453 3edc L Index 5.5 0.1818181818 4rfv5tgb R Thumb 6.5 0.1538461538 [space] R Index 6.9 0.1449275362 6yhn7ujm R Mid 6.3 0.1587301587 8ik, R Ring 6.2 0.1612903226 9ol. R Pinky …

13
小さなtautogramチェッカーはありますか?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 昨年休業。 最近コードゴルフを始めて、最小のオートグラムチェッカーを書こうとしました。 tautogramは、たとえば、すべての単語は、同じ文字で始まるした文である:花がフランスから頭角を現します。 文を入力として、それがトートグラムかどうかを判別します。 テストケース Flowers flourish from France True This is not a Tautogram False 私はこのpythonコードを思いつきました(それが私の主な言語であるため): print(True if len(list(set([x.upper()[0] for x in __import__('sys').argv[1:]]))) == 1 else False) 使用法: python3 tautogram.py Flowers flourish from France # True python3 tautogram.py This is not a Tautogram # False 文にはカンマとピリオドを含めることができますが、他の特殊文字は含めず、大文字と小文字とスペースのみを含めることができます。 サイズは98バイトです。任意の言語で小さなソリューションはありますか?

6
またハロウィンです!
問題の説明 私たちは皆、Twixが大好きです(最高のキャンディだからです)が、これは子供の最初のハロウィーンです---それぞれのタイプのキャンディを少なくとも1つは手に入れなければなりません。ハロウィーンごとに、ナンバーラインアベニューのすべての居住者は、彼らが今年提供するキャンディーの種類を示すメールを送信します。 ああ!そして、私たちは1Dの世界に住んでいます。 一部の方法では例外的に怠惰であるため、他の方法ではなく、家の地図を作成し、通り沿いの位置を示しています。また、お菓子の種類についても触れました。今年作成した地図は次のとおりです。 [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 子供たちの小さな足のために、近所の家から始めて、各種類のキャンディーを少なくとも1つ集めるために、最短の散歩を見つける必要があります。 例 カップルのユーザー(Shaggyを含む)のリクエストに応じて、実際に動作する例をいくつか紹介します。うまくいけば、これで問題が解決します。:) 入力: [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 出力: [1, 2, 3] 別の地図と解決策... 入力: [(-3, {"KitKats", "Twix"}), (-1, {"Hundred Grands"}), …
10 code-golf 

4
携帯電話料金
私の大学コードチャレンジコンテストの許可を得てチャレンジ 私たちが携帯電話に依存しているため、毎晩バッテリーの最大レベルまで充電するので、翌日の途中で電力が不足するリスクはありません。日中に無料のコンセントを見て、何が起こったのかを充電する人もいます。 私もその一人です。 長年にわたって、私は毎晩バッテリーを最大に充電しないように私の技術を磨きました。私の完全に知られている反復的なルーチンにより、それらの部分的な再充電を実行できる時間帯(およびレベルが増加するユニット数)と、各充電の間にバッテリーレベルを低下させる原因は明らかです。これらのデータを使用して、毎晩、自分が課した2ユニットのしきい値を下回らないように、翌日家を出なければならない最小バッテリーレベルを計算します。 私がまだ何とかマスターしていないのは、私が確立されたルーチンを離れたときの同じ計算であり、物事を行うためのいくつかの選択肢があります。たとえば、私が別の方法で到着できる別の都市に行く途中の日に起こります。 問題への最初のアプローチでは、「チェス盤」を左上隅から右下隅に移動したいと想定しています。各「セル」で、携帯電話に特定の金額を充電するか、または充電できず、その負荷レベルが低下します。 チャレンジ 整数のFxC行列を指定して、負荷レベルが2ユニットを下回ることなく、左上隅から右下に移動するために必要な最小バッテリーレベル量を出力します。 マトリックスでは、正の数はパスをたどる前に携帯電話を充電できる量を示し、負の数はコンセントがなく、携帯電話のバッテリーがその量だけ充電レベルを下げていることを示します。ソースセルと宛先セル(左上隅と右下隅)の数量が常に0であり、残りの値(絶対値)が100を超えないことが保証されています。 指定例 : ⎡⎣⎢⎢⎢📱− 1− 11− 1− 1111− 1− 1− 1− 1− 1− 10⎤⎦⎥⎥⎥[📱−11−1−1−1−1−1−11−1−111−10] \begin{bmatrix} 📱&-1&1&-1 \\ -1&-1&-1&-1 \\ -1&1&-1&-1 \\ 1&1&-1&0 \end{bmatrix} 私がより少ないバッテリーを必要とする道は: ⎡⎣⎢⎢⎢📱− 1− 11− 1− 1111− 1− 1− 1− 1− 1− 10⎤⎦⎥⎥⎥[📱−11−1−1−1−1−1−11−1−111−10] \begin{bmatrix} 📱&-1&1&-1 \\ \color{blue}{-1}&-1&-1&-1 \\ \color{blue}{-1}&1&-1&-1 \\ …

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