タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

24
リスト内の真の値の範囲を見つける
チャレンジ: ブール値のリストを受け入れ、Trueのすべての範囲を返す関数またはプログラムを作成します。 テストケース: f [F] = [] f [T] = [[0,0]] f [T,T,F,T] = [[0,1],[3,3]] f [F,T,T,F,F,T,T,T] = [[1,2],[5,7]] f [F,T,T,F,F,F,T,T,T,T] = [[1,2],[6,9]] f [T,T,F,F,F,T,T,T,T,T,T,T,T,T,T,F] = [[0,1],[5,14]] f [F,F,T,T,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T] = [[2,3],[12,19],[33,54],[93,94]] ルール: 入力のエンコード方法(リスト、配列、文​​字列など)を選択できます。 出力は、リストのようなリストまたはそのような文字列としてエンコードする必要があるため、配列、リスト、タプル、行列、ベクトルなどが必要です。 ブール値は定数としてエンコードする必要がありますが、それ以外の場合は、T / Fから目的の定数への単純な変換が許可されます 編集:ランタイム中のevalまたは類似のISが許可されます。 入力がプログラム/関数にどのように渡されるかを説明し、テストケースの入力/出力を与えることを忘れないでください カウントされない目的の入力形式への変換 標準的な抜け穴は許可されていません 言語にこれを行う機能がある場合、許可されていません 私は自分の提出を受け入れません 編集:出力形式は柔軟です。リストなどを印刷しない場合は、範囲の値を1つの数字以外の文字で区切り、範囲も区切る必要があります。 得点: 言語に合わない場合を除き、スコアはバイト単位です(Pietのコーデルなど) 最低得点 入力と出力にはかなりの柔軟性がありますが、T / Fをすべての作業を行う関数に置き換えるソリューションは許可されていません。 …

11
公式Dyalog APL 2016年のゲーム
これは楽しいかもしれないが、仕事が多すぎると思われる場合は、このはるかに小さなチャレンジに参加することを検討してください。 2016年のちょっとした楽しみ(そしておそらく欲求不満!)... Dyalogの「今年のパズル」。楽しい! 目的 Dyalog APL(ダウンロード)式を検索します(他の言語も許可されています。以下の適格性を参照してください)。数字0〜100に等しい順序で正確に数字2 0 1 6が含まれます。 20=16 ×2016 2⌊016 2+0+1*6 ... 目的は、各式でできるだけ少ない文字を使用することです(式の最小文字数は5 – 4桁の2 0 1 6と単一のプリミティブ関数/演算子です)。 ルール 各式には、数字2 0 1 6(この順序で)が含まれ、他の数字は含まれない必要があります。事前設定された定数と変数も使用できません。 4桁の2 0 1 6に加えて、組み込みの記号と名前、括弧/中括弧、スペース、高いマイナス記号、および小数点のみを使用できます。結果の式は確定的である必要があります(つまり、繰り返し評価しても同じ結果が得られます)。非APLの場合、名前を持つ関数/演算子も許可されます。ここと同じルール。 言語のデフォルト設定をすべて想定します。Dyalog APLの場合、これは両方とも1であり、10であることを意味⎕MLし⎕IOます⎕PP。 0から100までのすべての数値の正しい表現を含む各エントリは、冗長スペースを除くそれらの表現で使用される文字数に応じて評価されます(101個の表現すべてで最小505)。 適格性 誰でも入場できます。任意の言語で回答できますが、APLの回答のみが承認対象と見なされます。APL以外の言語を使用する場合は、スニペット、プログラム、関数などを式の代替として使用でき、コードを直接実行する限り、印刷、アクセス可能なメモリ位置に数値を残す、または結果を返すことができますご使用の言語の標準数値データ型として、目的の数値に評価されます。 決算日 2016年11月30日。 賞品 回答を受け入れます Dyalogの2016殿堂入りで不滅になれ! エントリーの提出 2016年11月30日以降、私は最短の回答を受け入れ、あなたの回答をあなたの名前でDyalogの2016年の殿堂に提出します。 よくある質問 されるJ(例えば37 = ⌈⍟!20J16)許可されていますか? いいえ:4桁の2 0 1 6に加えて、組み込みの記号と名前、括弧/括弧、スペース、高いマイナス記号、小数点のみを使用できます。 文字列としての出力は受け入れられますか? …

8
日付をxkcd表記に変換します
ISO 8601標準日付形式についての彼のxkcd で、ランドールはかなり奇妙な代替表記法を隠しています。 大きな数字はすべて通常の順序で現在の日付に表示される数字であり、小さな数字はその数字の出現の1から始まるインデックスです。したがって、上記の例はを表し2013-02-27ます。 そのような日付のASCII表現を定義しましょう。最初の行にはインデックス1〜4が含まれます。2行目には「大きい」数字が含まれます。3行目には、インデックス5〜8が含まれます。1つのスロットに複数のインデックスがある場合、最小から最大の順に並んで表示されます。m単一のスロット(つまり、同じ桁、同じ行)に多くてもインデックスがある場合、各列はm+1文字幅で左揃えにする必要があります。 2 3 1 4 0 1 2 3 7 5 67 8 逆の変換については、コンパニオンチャレンジもご覧ください。 チャレンジ ISO 8601日付(YYYY-MM-DD)を指定すると、対応するxkcd日付表記を出力します。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 から0000までの任意の年9999が有効な入力です。 末尾のスペースは許可されますが、先頭のスペースは許可されません。オプションで、単一の末尾の改行を出力できます。 標準のコードゴルフ規則が適用されます。 テストケース 2013-02-27 2 3 1 4 0 1 2 3 7 5 67 8 2015-12-24 2 3 1 4 0 1 2 4 5 5 …

12
4は魔法の数です
このチャレンジを投稿する前にサンドボックスをチェックしませんでした-このチャレンジはCᴏɴᴏʀO'Bʀɪᴇɴによって提案されたようです。 整数の入力が与えられた場合、「4は魔法の数です」という謎を出力するプログラムを作成します 4は魔法の数です 5は4、4は魔法の数 6は3、3は5、5は4、4は魔法の数 11は6、6は3、3は5、5は4、4は魔法の数です 五百は十一、十一は六、六は三、三は五、五は四、四は魔数 あなたがすでになぞなぞを知っているか、なぞなぞが何であるかを知りたがってそれを解決するのが面倒な場合、ここに説明があります 次の数字は、前の数字の文字数です。したがって、たとえば、5は4文字であるため、次の数字は4です。 6を有する3次数であるので、文字を3、及び三つの有する5次数であるので、文字を5、及び5を有する4つの文字の次数であるので、4 4は、4つの文字を持っているので、4で謎の端部である理由、4は4、4は4、4は4 ...(4は魔法の数) テストケース 0 => Zero is four and four is the magic number 1 => One is three and three is five and five is four and four is the magic number 2 => Two is three and three …
26 code-golf  number 

30
プラスマイナスシーケンス
プラスマイナスシーケンス プラスマイナスシーケンスは、2シードで始まるものです、a(0)とb(0)。このシーケンスの各反復は、シーケンスの前の2つのメンバーの加算と減算です。つまり、a(N) = a(N-1) + b(N-1)そしてb(N) = a(N-1) - b(N-1)。 目的無限大またはK与えられた最初のステップで、プラスマイナスシーケンスを生成しますK。これを行うには、無限出力プログラム、ジェネレーター、または最初のKステップを提供する関数/プログラムを使用します。出力の順序は、一貫している限り重要ではありません。(b(K) a(K)つまりa(K) b(K)、間に数値や改行を含まない区切り文字を挿入します。)出力は入力から開始する必要があります。 テストケース 10 2(の入力)のa(0) b(0)場合、これは最初のKアプローチ(または無限アプローチのサブセクション)の可能な出力です。 10 2 12 8 20 4 24 16 40 8 48 32 80 16 96 64 160 32 192 128 320 64 384 256 640 128 768 512 1280 256 1536 1024 2560 …

3
合計100歳の誕生日
私は最近、自分と妻と子供の年齢を合計していましたが、それほど遠くない将来のある時点で、私たちの年齢はすべて正確に100年になると気付きました。 チャレンジ 合計(合計)年齢と生年月日のリストで構成される入力の場合、合計年齢が指定された合計に達する日付を出力します。 入力された年齢(年)は正の整数になります 誕生日の入力リストは、日、月、年の数値表現を含む必要がある日付のリスト(言語に都合のよい形式)になります。特定のエポックが受け入れられないための日数。入力日付のリストは時系列でソートされていると想定できます。 出力は、入力日付と同じ形式の単一の日付になります 複合年齢の場合、1年は正確に365.25日と見なされます 一部の入力では、すべての生年月日が合計年齢に達すると、すべての生年月日の後に日付を見つけることができなくなります。たとえば、20年離れた2つの生年月日を検討しますが、10年を組み合わせたものが必要です。その場合、出力は古い誕生日の10歳の誕生日になります。つまり、個々の年齢は、その個人の生年月日より前のすべての日付で0と見なされます 出力は、合計年齢が少なくとも入力年齢に達する最初の日付になります 組み込みの日時関数を使用できます 1970/01/01までの日付をサポートする必要があります。 例 ここでは、すべての日付をYYYY / MM / DD形式で提供していますが、どのような形式でも構いません。 Input Output 10 2000/01/01 2010/01/01 100 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2018/11/22 100 1975/03/06,1978/07/23,2008/11/12,2012/12/20 2018/11/23 100 1975/03/09,1978/07/23,2008/11/12,2012/12/20 2018/11/23 100 1975/03/10,1978/07/23,2008/11/12,2012/12/20 2018/11/24 3 1990/08/01,1995/07/02 1993/08/01 50 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2001/11/13 最後の2つの例では、ルール5に従って、出力日付が入力日付の範囲内にあることに注意してください。
26 code-golf  date 

30
最もよく使われる言葉は何ですか?
最もよく使われる言葉は何ですか? 文が与えられると、プログラムはそれを通り抜け、各単語の頻度をカウントしてから、最も使用されている単語を出力する必要があります。文には固定長がないため、非常に長くなる可能性があるため、コードはできるだけ短くする必要があります。 ルール/要件 各提出は、完全なプログラムまたは機能である必要があります。関数である場合、プログラムの下部に関数呼び出しを追加するだけで実行可能でなければなりません。他のもの(Cのヘッダーなど)を含める必要があります。 ご使用の言語に対応した無料のインタープリター/コンパイラーが必要です。 可能であれば、プログラムをテストできるサイトへのリンクを提供します。 プログラムはに何も書き込まないでくださいSTDERR。 あなたのプログラムはSTDIN(またはあなたの言語で最も近い代替物)から入力を受け取るべきです。 標準的な抜け穴は禁止されています。 プログラムは大文字と小文字を区別しない必要があります(tHe、Theおよびtheすべてのカウントに寄与するthe)。 最も頻繁な単語がない場合(テストケース#3を参照)、プログラムは何も出力しません。 「単語」の定義: 入力テキストをスペースで分割することにより、単語のリストを取得します。入力には、プレーンスペース以外のタイプの空白が含まれることはありません(特に改行はありません)。ただし、最後の単語には英数字(az、AZ、0-9)、ハイフン(-)、およびアポストロフィ( ')のみを含める必要があります。そのためには、他のすべての文字を削除するか、単語を分割する前にそれらをスペースで置き換えます。ルールの以前のバージョンとの互換性を維持するために、アポストロフィを含める必要はありません。 テストケース The man walked down the road. ==> the ----- Slowly, he ate the pie, savoring each delicious bite. He felt like he was truly happy. ==> he ----- This sentence has no most frequent word. …

3
自分でビールを飲む
それは金曜日だ!つまり、ビールの時間です! 残念ながら、今日はビールを飲む代わりにゴルフをします。:( チャレンジ ビールを出して飲む。一口飲む量によって出力が変わります。 一口 プログラムは1つの入力文字列を受け取る必要があります。この文字列は、連結されたsips のみで構成できます。 入力が空の文字列である場合、泡を含む完全なビールグラスを出力する必要があります。 一口飲むほど、ビールグラスは空っぽになります。 一口飲むと、ビールにはまだ泡が残っています。このフォームの出力は常に同じです(例を参照)。 1口飲む場合は、ビールグラスを出力し、その後に改行と文字列を出力する必要がありますYuck, foam.。 1杯以上飲むと、ビアグラスに泡が含まれなくなり、グラスの上部が見えるようになります。泡を飲むことは一口としてカウントされます。 6杯以上飲む場合は、空のビールグラスを出力し、その後に改行と文字列を続けますBurp。 飲むたびに、ビールのグラスが空になります。ビールグラスの充満度は、ビールの泡の量°(°)によって異なります。あなたが泡の後に取る一口ごとに、泡のラインを削除する必要があります。ビールの各ラインには、最小1と最大の5バブルを含めることができます。これらのバブルの位置は100%ランダムでなければなりません。 例 入力 empty input string, or no input at all 出力 oo o oo oooooooooooo o| ° ° |\ | ° | \ | °° ° |} | | ° ° | / | ° …

7
Brainf *** NOPの生成
Brainfuckコードを書くとき、デバッグを促進するために必要以上に長くする必要があると感じることがあります。><そこにa を入れるだけでそれを行うことができますが、それは何が楽しいですか?コードを読んでいる人を混乱させるために、NOPeyをもっと長くする必要があります。 Brainfuckの簡単な紹介 Brainfuckは、1993年にUrbanMüllerによって作成された難解なプログラミング言語であり、極端なミニマリズムが特徴です。(ウィキペディア) Brainfuckは、8つのコマンドに基づく言語です+-><,.[]。コードはチューリングマシンのようなもので実行されます。値を変更できる無限のテープです。この課題では、最初の4つに焦点を当てます。 + increment the value at the pointer - decrement the value at the pointer > move the pointer right < move the pointer left Brainfuck NOP Brainfuck NOPは、任意の状態から実行されたときに状態に変化をもたらさない一連のBrainfuckキャラクターです。これらは上記の4文字で構成されています。 チャレンジ 課題は、実行されたときに、指定された長さのランダムなBrainfuck NOPを生成するプログラムまたは関数を作成することです。 入力 入力として非負の偶数整数を受け取りますn。(NOPは奇数には不可能ですn。) 出力 あなたは長さのランダムなBrainfuck NOPを出力しますn。 ルール NOPの定義:プログラムの出力がBrainfuckプログラムの任意のポイントに挿入された場合、そのプログラムの動作は決して変化してはなりません。つまり、インタープリターの状態を変更してはなりません。 たとえば+>-<、2つのセルの値を元に戻すことなく変更するため、これは正しくないことに注意してください。投稿する前にこれらのソリューションをテストしてください。 また、これ+>-<->+<はNOPであり、を削除するだけでは何にも削減できないことに注意してください>< <> +- -+。したがって、これらを相互に挿入するだけのアルゴリズムは使用できません。 長さのすべての有効なNOPにはn、出力に表示されるゼロ以外のチャンスが必要です。ただし、分布は均一である必要はありません。 問題のブレインファックインタープリターには、任意精度セルの二重無限テープがあります。つまり、両方向に無限に移動し、各セルを無制限にインクリメント/デクリメントできます。 …

25
補色
#rrggbb16進形式で色を入力すると、そのRGB補数を同じ形式で出力します。 任意の色R 1 G 1 B 1のRGB補数R 2 G 2 B 2は、R 2値255-R 1、B 2値255-B 1、およびG 2値255-G 1を持つ色として定義されます。 16進数は、大文字(#FFAA20)または小文字(#ffaa20)のいずれかです。入力と出力の大文字と小文字は一致している必要はありません(したがって、入力は小文字で、出力は大文字で、またはその逆も可能です)。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース(プログラム/関数に独自の出力を与えると、元の入力になります(これは不定です)ので、テストケースは双方向で機能することに注意してください ): In/Out Out/In ---------------- #ffffff #000000 #abcdef #543210 #badcab #452354 #133742 #ecc8bd #a1b2c3 #5e4d3c #7f7f80 #80807f
26 code-golf 

5
トラベリングO
世界は5 x 5のセルの配列です。四方を包みます。次のように視覚化できます... XXXXX XXXXX XXOXX XXXXX XXXXX あなたはOです。あなたは世界を旅行するのが大好きで、次のルールに従って旅行をします(Cを当日とします)。 でプライムの日、あなたは懐かしい感じ。昨日始めたところに戻ります。 で奇数日、あなたはホームシックを感じます。可能であれば、水平方向に1ステップ移動し、可能であれば、垂直方向に1ステップ移動します。近さを判断する目的で、ワールドラッピングを無視します。 日、あなたは冒険を感じます。C / 2ステップ南に移動します。 上の四角の日、あなたは冒険を感じます。東の壁に移動します。 上のフィボナッチ日、世界は1行で南下拡大します。 上三角日、世界は一つの列で東へ拡大します。 上記のルールのうち2つ以上が同時に適用される場合は、リストされている順に適用します。たとえば、奇数のプライムデイでは、昨日始めた場所に最初に戻り、次に家に一歩近づきます。 あなたは、(最初​​の)世界の中心、すなわち北西の角からゼロインデックスの位置(2,2)に住んでいます。そこから旅を始めます。 入力 単一の整数、N。 出力 XとYは、北西隅からゼロのインデックスが付けられ、1つのスペースで区切られたN日目に調整されます。 説明付きテストケース の入力が与えられた3場合、正しい出力は次のとおりです。 2 3 私たちは一度に1日これをやり遂げることができます。1日目から、次の動きを適用する必要があります。 奇数、正方形、フィボナッチ、および三角形 プライム、イーブン、フィボナッチ プライム、奇数、フィボナッチ、および三角形 視覚的な形式: 1日目2日目3日目 XXXXX XXXXXX XXXXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXOXX-> XXXXOX-> XXXXXX-> XXXOXXX XXXXX XXXXXX XXOXXX XXXXXXX XXXXX …
26 code-golf  grid 

8
NxNグリッドの行、列、および対角線を1〜Nで塗りつぶします
仕事 入力Nが与えられると、各行、列、および2つの対角線に1〜N(またはNそれが簡単な場合は0〜- 1)の数字が含まれるNxNグリッドを生成して出力します。 入力 入力は正の整数Nです。グリッド内の列と行の数を表します。この問題についてNは、妥当なサイズであると想定できます4 ≤ N ≤ 8(または1 ≤ N ≤ 8、以下のボーナスを利用する場合)。 出力 出力はN× Nグリッドになります。グリッドでは、各行には1〜の数字のみが含まれN、各列には1〜の数字のみが含まれ、N長さの2つの対角線N((0,0)to (N-1,N-1)から(0,N-1)toまで(N-1, 0))には1〜の数字のみが含まれNます。0〜の数字を使用できますN−1。それぞれについてN、多くの可能な解決策がありますが、最初に見つけたものだけを印刷する必要があります。数字の間にスペースを印刷する必要はありません。 制約 コードはの結果を繰り返し生成できる必要がありますN >= 7。つまり、N = 7毎回コードから実際に実行して解決策を得ることができれば、それで十分です。絶対的な制限に関しては、コードはN = 7実行するたびに10分以内に解決できる必要があります(つまり、乱数に依存している場合、最悪の場合、コードは10分以内に終了しますN = 7) 。 例 入力: 4 1つの可能な出力: 1 2 3 4 3 4 1 2 4 3 2 1 2 1 4 3 入力: …

12
クイン/逆クイン
ブールまたは非負の整数入力をとる完全なプログラムを作成します。ちがいない: 入力値が偽である場合、独自のソースコードを出力します 入力値が真実であれば、独自のソースコードを逆に出力します あなたのプログラムは回文的ではありませんし、いかなる方法でもそれ自身のソースコードを読むことはできません。 これはコードゴルフです-バイト単位の最短コードが勝ちます。
26 code-golf  quine 

17
チーラの掛け算表
Cheela(本からドラゴンの卵ロバート・L・フォワードによっては)中性子星の表面に住む生き物です。体は平らで円形で、周囲に12の目があります。したがって、自然にベース12の番号付けシステムを使用します。 チーラの中でも、hatch化の世話と若者の教育は、老人によって行われる仕事です。若いCheelaに乗算の方法を教える必要があるため、Old Onesは乗算表を使用できます。 次のように、タスクはbaseに12x 12乗算テーブルを作成12します。大文字AとBは10 、11それぞれ10進数と対応する数字に使用されます。 1 2 3 4 5 6 7 8 9 A B 10 2 4 6 8 A 10 12 14 16 18 1A 20 3 6 9 10 13 16 19 20 23 26 29 30 4 8 10 14 18 20 24 28 …

4
Golf Me An OOP!
Golf Me An OOP! オブジェクト指向プログラミングの2つの重要なコンポーネントは、継承と構成です。一緒に、シンプルで強力なクラス階層を作成して問題を解決することができます。タスクは、クラス階層に関する一連のステートメントを解析し、階層に関する質問に答えることです。 入力 クラス階層に関する一連のステートメントと質問。ファイルまたは標準入力のいずれか、お使いの言語に最適なものから読み取られます。ファイルオプションを使用する場合、ファイル名はコードの最初の引数(関数引数またはコマンドライン引数のいずれか選択したもの)として渡されます。形式は次のとおりです。 <statement> : <name> is a <name>. | <name> has a <name>. <question> : Is <name> a <name>? | Does <name> have a <name>? <name> : a-z | A-Z | sequence of alphanumerics or underscores, starting with a letter 入力は常にステートメントであり、質問です。すべてのクラス名は大文字の英字(A-Z)で始まり、すべてのメンバー名は小文字の英字(a-z)で始まります。すべての名前は大文字と小文字が区別されます- ABC123と同じクラスではありませんAbc123。 任意の周期的な継承が存在することはありません-場合Bの継承はA、A継承ではないだろうBか、のいずれかBの子。 以下のような文-唯一のクラス名が階層の一部になるfoo is …

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