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

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

3
ASCIIトランプを引く
これらの15のASCII トランプパターン(エース、ジョーカー、および裏面)を考えてみましょう。ここXで、スーツシンボルのプレースホルダーは次のとおりです(行間隔が少ない方が見栄えがよくなります)。 ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- |AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * …

7
グレゴリオ教会の音楽を整理する
年は930年であり、グレゴリオ教会は問題を抱えています。彼らは数千ページの聖歌音楽を持っていますが、問題は実際の組織システムではなく、すべての楽譜が単に山に投げ込まれたことです。 Cartographers 'Guildのユーザーgamerprinterによる画像。 教会はすべての楽譜を整理する必要があるため、中世のソフトウェアエンジニアを雇ってプログラムを作成し、彼らのために整理しました。あなたは雇用されたソフトウェアエンジニアです。しかし、中世の編集プロセスでは、遅い聖書の筆記者のチームによってプログラムが紙に書き込まれます。スクライブのチームがコードをコンパイルするのにかかる時間を短縮するには、プログラムをできるだけ小さくする必要があります。 教会は、聖歌音楽が書かれている音階に基づいて編成されることを望んでいます。教会の聖歌音楽はすべてドリアン音階で書かれています。特定の音楽の音符が与えられると、プログラムはそれが入っているドリアン音階を出力します。ここでは、ドリアン音階とは何かを正確に説明します。すでに知っている場合は、このセクションをスキップできます。 どのメロディにも12の音符があります。ここに順序があります: C C# D D# E F F# G G# A A# B 半音は、(使用して表されるS)の周りにラッピング(Bから半音アップバックCすることであろうように)、右に一歩をインクリメントします。トーン(使用して表現はT)2つの半音です。たとえば、F#からの半音はGです。F#からの半音はG#です。 ドリアンスケールを作成するには、リスト内の任意の音符から始めて、次のパターンで上に移動し、検出した音符をリストします。 T, S, T, T, T, S 例。私はAから始めます。ドリアンスケールのノートは次のようになります。 A B (up a tone) C (up a semitone) D (up a tone) E (up a tone) F# (up a tone) G (up …
19 code-golf  music 

30
文字列からバイナリ
これはコードゴルフの挑戦です。タイトルが言うように、ASCII文字列をバイナリに変換するプログラムを作成します。 例えば: "Hello World!" に変わるはず 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001です。 注:特にpythの実装に興味があります。

11
デイ3のランダムゴルフ:整数分割
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。最初の投稿では、リーダーボードとシリーズに関する詳細情報を見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。何か提案があれば、関連するサンドボックスの投稿でお知らせください。 穴3:整数分割 難易度を少し上げる時間です。 パーティション正の整数のは、nその和に正の整数のマルチセットとして定義されますn。例として、n = 5次のパーティションが存在します。 {1,1,1,1,1} {2,1,1,1} {2,2,1} {3,1,1} {3,2} {4,1} {5} これらはマルチセットであるため、順序はなく、{3,1,1}で{1,3,1}あり{1,1,3}、すべて同一であると見なされます。 あなたのタスクは、nのランダムなパーティションを生成することですn。詳細なルールは次のとおりです。 生成されるパーティションの分布は均一でなければなりません。つまり、上記の例では、各パーティションは1/7の確率で返される必要があります。 もちろん、PRNGの技術的な制限により、完全な均一性は不可能です。提出物の均一性を評価するために、次の操作は完全に均一な分布をもたらすと見なされます。 (ほぼ)均一であることが文書化されているPRNGから(任意の範囲で)数値を取得する。 モジュロまたは乗算(または値を均等に分散する他の演算)を介して、大きな数のセットにわたる均一な分布を小さなセットにマッピングします。大きいセットには、小さいセットの少なくとも1024倍の値が含まれている必要があります。 パーティションはマルチセットであるため、任意の順序でパーティションを返すことができ、この順序は一貫している必要はありません。ただし、ランダム分布の目的では、順序は無視されます。つまり、上記の例では{3,1,1}、{1,3,1}とが{1,1,3} 一緒に返される確率は1/7でなければなりません。 アルゴリズムには確定的なランタイムが必要です。特に、ランダムなマルチセットを生成し、合計がでない場合は拒否できませんn。 アルゴリズムの時間計算量はの多項式でなければなりませんn。特に、すべてのパーティションを単純に生成してランダムに選択することはできません(パーティションの数は指数関数的に増加するためn)。使用しているPRNGは、値ごとにO(1)で均一に分布した値を返すことができると仮定できます。 このタスクを解決する組み込み関数を使用しないでください。 完全なプログラムまたは関数を作成し、STDINまたは最も近い代替、コマンドライン引数または関数引数を介して入力を取得し、戻り値またはSTDOUT(または最も近い代替)に出力して出力を生成できます。 n ≤ 65(パーティションの数が2 21未満であると)仮定することができます。出力は、便利で明確なリスト形式または文字列形式です。 関数を送信する場合は、関数を何度も呼び出して結果を出力する小さなテストプログラムの提供も検討してください。コード内でパラメーターを調整する必要がある場合でも問題ありません。これは、ソリューションが少なくともほぼ均一であることを人々が確認できるようにするためです。 これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。 リーダーボード シリーズの最初の投稿はリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes (言語は現在表示されていませんが、スニペットはそれを必要とし、解析します。将来、言語ごとのリーダーボードを追加するかもしれません。)

13
シェルピンスキー層
はじめに、そのような下に線を追加することにより、パターンのようなシェルピンスキーの三角形/\を作成することができます... ゆるい枝/または\2つの枝に再び分割されます/\。 ブランチの衝突は、その\/下に何も(スペースはありません)死んでしまいます。 これらの規則を繰り返すと、 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHartによるインスピレーション) 正の整数Nを取り込んで、このパターンの最初のN行をstdoutに出力するプログラムまたは関数を作成します。必要以上に先行または後続のスペースはありません。 たとえば、入力が1出力の場合、 /\ 入力が2出力の場合 /\ /\/\ 入力が8出力の場合 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等々。 最小バイトのコードが優先されます。

8
一般化されたQuine Generator
チャレンジ このチャレンジでは、ソース言語 Sとターゲット言語 を指定しますT。あなたの仕事は、次のプログラムPを言語で書くことですS。Q言語の有効なプログラムがのT入力として与えられた場合、入力と出力を受け取らない言語のP有効なプログラム、つまりのソースコードに適用されるプログラムを出力します。さらに、答えには自明ではないサンプルプログラム(より面白く、より良いが、これに対してポイントを獲得しませんが)、結果のプログラム、およびの出力を提示する必要があります。これはコードゴルフですので、勝つための最短のコードです。RTQ(R)QRQRRP 言い換えれば、これは、任意のタイプの一般化されたクインを作成できる「ユニバーサルクインコンストラクター」の作成に関する課題です。 明確化 ソース言語とターゲット言語は同一である場合があります。 プログラムPは、すべての出力プログラムと同様に、入力として1つのストリング(STDINまたは同等のものから)を受け取り、1つのストリング(STDOUTまたは同等のものへ)を出力する必要がありますR。 入力プログラムQも文字列を別の文字列に変換する必要がありますが、その形式はより柔軟です:文字列から文字列への関数、特定の名前の変数を変更するコードスニペット、ターゲット言語の場合にデータスタックを変更するスニペットなどがありQます。たとえば、コメントを含めないことを指定することで、の形式をさらに制限することもできます。ただし、任意の計算可能な文字列から文字列への関数を入力プログラムとして実装できる必要があり、それらがどのように機能し、どのような制約を課すかを明示的に指定Qする必要があります。 出力プログラムRは、実際には(一般化された)クインである必要があります。Qしたがって、そうしない限り、入力(ユーザー入力、ファイルなど)を読み取ってはなりません。 標準の抜け穴は許可されていません。 例 ソース言語としてPythonを選択し、ターゲット言語としてHaskellを選択し、さらに入力プログラムがString -> Stringという名前の関数の1行の定義であることを要求するとしますf。文字列反転プログラムを与えると f x = reverse x Pythonプログラムへの入力としてP、別のHaskellプログラムのソースコードを出力しますR。このプログラムは、のソースコードをSTDOUTに出力しますRが、逆になります。Pアイデンティティ関数が与えられた場合 f x = x 入力として、出力プログラムRはクインです。

6
N番目の文字を実行してNを取得します
最初の文字とその後のN番目のすべての文字を新しいプログラムに結合すると、出力はNになるように、可能な限り最短のプログラムを作成します。これは、N = 1、2、...、16で機能する必要があります。 あなたがあればそれを言うための別の方法は、ある削除プログラムからのすべての文字を除い最初の1とその後のN番目ごとの1、残りのコードの出力はNでなければなりません 例 あなたのコードが ABCDEFGHIJKLMNOP N = 1の結果はになりABCDEFGHIJKLMNOPます。これを実行すると、1が出力されます 。N= 2の結果はになりACEGIKMOます。これを実行すると、2が出力されます 。N= 3の結果はになりADGJMPます。これを実行すると、3が出力されます 。N= 4の結果はになりAEIMます。これを実行すると、4が出力されます 。N= 5の結果はになりAFKPます。これを実行すると、5が出力されます 。N= 6の結果はになりAGMます。これを実行すると、6が出力されます 。N= 7の結果はになりAHOます。これを実行すると、7が出力されます 。N= 8の結果はになりAIます。これを実行すると、8が出力されます 。N= 9の結果はになりAJます。これを実行すると、9が出力されます 。N= 10の結果はになりAKます。これを実行すると10が出力されます 。N= 11の結果はになりALます。これを実行すると、11が出力されるはずです 。N= 12は、AM。これを実行すると、12が出力されます 。N= 13の結果はになりANます。これを実行すると13が出力されます 。N= 14の結果はになりAOます。これを実行すると、14が出力されます 。N= 15の結果はになりAPます。これを実行すると、15が出力されます 。N= 16の結果はになりAます。これを実行すると、16が出力されるはずです。 詳細 ASCIIおよび非ASCIIのすべての文字が許可されます。(改行と印刷不能ASCIIも使用できます。キャリッジリターンとラインフィードは別個の文字としてカウントされることに注意してください。) スコアは、変更されていないプログラムの文字の長さです(例では15)。最も低いスコアが勝ちます。 16未満のスコアは明らかに変更できません。変更されたプログラムの少なくとも2つが同一になるからです。 出力は、ファイルまたは標準出力、またはその他の妥当なものに出力される場合があります。ただし、16の異なるプログラムの出力はすべて同じ場所に移動する必要があります(たとえばAO、stdoutにA行くがファイルに行く場合は大丈夫ではありません)。入力はありません。 出力は16進数ではなく10進数でなければなりません。実際の出力には、1から16までの数字を構成する1または2文字のみが含まれている必要があります。(Matlabのようなものans =は問題ありません。) プログラムは、N = 17以上で機能する必要はありません。

2
10,000の評判を獲得しておめでとうございます!
@MartinBüttnerが正確に10,000の評判を達成した後、ユーザーページに1万人のユーザーの3つの完全な行があります!さて、私たちは全員プログラマーなので、手動で行うのではなく自動化するのが好きです。あなたの課題は、新しい1万人のユーザーを自動的に祝福するプログラムを作成することです。 仕様 入力 入力はn、スペースで区切られた数字の行になります。(必要に応じて、コードを短くする場合は、スペースで区切られた数字のコンマ区切りリストを1つ使用することもできます。)次に例を示します。 10 20 30 40 50 15 25 35 45 55 20 30 40 50 60 または: 10 20 30 40 50,15 25 35 45 55,20 30 40 50 60 数字の各リストは、1日のユーザーの評価値のリストを表します。 出力 出力は、同じn行数(または同じ長さのコンマ区切りリスト)になります。各行/リスト項目は次のとおりです。 :D レピュテーションが10,000以上になったユーザーがいた場合。 :D10,000人の担当者に会った、または合格したユーザーが複数いる場合は、スペースで区切られた複数の。たとえば、:D :D :D3人の新しい1万人のユーザー向け。 :( 入力があいまいまたは不可能な場合は、さらに出力を停止します(これについては次のセクションで詳しく説明します)。 これらの条件のどちらも当てはまらない場合は何もありません。 あいまいさ 入力があいまいである可能性があります。この課題のために、次のことを想定しています。 レピュテーションキャップは1日あたり200であり、チャレンジのために受け入れや賞金などを無視します。 ユーザーは評判を失うことはありません(これも単純さと挑戦のためです)。 どの評価値がどのユーザーに対応するかを判断できない場合、入力はあいまいと見なされます。たとえば、入力10 20,30 …
19 code-golf 

30
繰り返される数字で配列を作成する
チャレンジ この質問のタスクは、nSTDIN、ARGV、または関数の引数を介して入力として正の整数(0より大きい)を取り、STDOUTまたは関数の戻り値を介して配列を出力するプログラムまたは名前付き関数を作成することです。 簡単に聞こえますか?今ここにルールがあります 配列は唯一の整数が含まれています1へn から1までの各整数は、各整数の値である回数n繰り返される必要があります。xx 例えば: 入力: 5 出力: [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5] 配列はソートされる場合とされない場合があります。 これはコードゴルフなので、勝者はバイト単位の最短コードです。 ボーナス 0.5出力配列内の隣接する2つの整数が同じでない場合、スコアを乗算します。 たとえばn = 5、そのような構成の1つは [5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, 2, 3, 4, 5]

20
Ulam番号を生成する
整数n(where n < 10001)を入力として、最初のn Ulam番号を出力するプログラムを作成します。Ulam番号は次のように定義されます。 U 1 = 1、U 2 = 2。 の場合n > 2、U nは、正確に1つの方法で2つの異なる以前の用語の合計であるU n-1よりも大きい最小の整数です。 たとえば、U 3は3(2 + 1)、U 4は4(3 + 1)(用語は区別されないため(2 + 2)はカウントされない)、U 5は6(U 5は5ではないことに注意してください)5は2 + 3または4 + 1として表現できるためです。最初のいくつかのウラム番号は次のとおりです。 1, 2, 3, 4, 6, 8, 11, 13, 16, 18, 26, 28, 36, 38, 47, 48, 53, 57, …

3
アスキー水道
イントロ 次のf A\/ような文字のグリッドを考えます f f f A A / \ \ / A A \/ / \/ ここで: f 水の流れを下に注ぐ蛇口を表します A 上の水の流れを分岐させて、ちょうど半分が左に、半分が右に行くようにします \ 上の水の流れを1単位だけ右にシフトします / 上の水の流れを左に1単位シフトします 組み合わせ\/は、その上の水流を収集する無限の容量を持つトラフを作成します [space] 水が通過できるよりも空きスペースです これから、水(*)が蛇口から出て、トラフまたはグリッド領域のいずれかに落ちるときに通る経路を想像できます。 f f f <-- first second and third faucets * * *A* * *A*/ \* \*/ * *A <-- a …

8
棒人間戦争を描く
高度な描画スキルでこの課題を作成している私の写真。 バックグラウンド スティックマン戦争は、地球の支配的な種がスティック以外のもので作られていなかったはるか昔に起こりました。歴史家は、当時画家やカメラがなかったという事実を後悔しており、今日の歴史書でその戦争の写真を使用することができました。それがあなたのコーディング力が役立つ場所です。棒人間は非常に簡単に描かれ、歴史家は何人の棒人間が戦争と戦ったかについてのデータを見つけることができました¹。戦争が始まる直前のイメージを再現するのはあなた次第です! 戦争に関与した勇敢な棒人間は次のとおりです。 O / | / | \ / | | / \剣士 OA / | \ | | | / \ | スピアマン 。 。 ' *。 'O * '\ | /。 。| * './ \ *。メイジ O / | \ | / \村人 O / | …

6
tryブロック内のすべてがすでにキャッチされているときにcatchに到達する
これは、私が推測する構文によってJavaとC#に制限されています。 このプログラミングパズルでExceptionは、キャッチできるがキャッチブロックの最後に再びスローされるを生成します。 try { while(true) try { // you are only allowed to modify code between this try { } brackets } catch(Exception ex2) { } } catch(Exception ex1) { // your goal is to reach this catch block by modifying the code ... // in the inner try block …

11
ASCIIテキストを点字に翻訳する
ASCIIテキストを点字出力に変換するプログラムを作成します。要件: 入力は、stdin、コマンドライン、またはその他の外部入力ソースから行われます。 出力は点字として認識できる必要があります。出力の形式はユーザー次第です。例はo、隆起したドットと.非隆起したドットの場合です。などのテキストパターン表現1-3-4は受け入れられません。長い行の折り返しは必要ありません。 最小限のソリューションには、26文字のアルファベットとスペースのみが必要です。ソリューションでサポートされていない入力文字はすべて無視する必要があります。 スコアリングは、ソースコードの文字数によって行われます。ペナルティとボーナスは次のとおりです。 出力としてUnicode点字を使用すると、+ 50のペナルティが発生します。 資本、数字、句読点をサポートするための-50ボーナス。 英語(Grade-2)点字からの合字と1文字の収縮をサポートするための-200ボーナス。(これはまったく別の問題なので、これを別の課題にします。) サンプルの呼び出しと出力(最小限のソリューション): $ braille Hello world o . o . o . o . o . . . . o o . o . o . o o o o . o o . o . . o . . o o …
19 code-golf 

29
文字列内のすべての数値を乗算します
勝者:Chilemagic、大規模な21バイト! 引き続き回答を送信できますが、勝つことはできません。元の投稿を保持: あなたの目標は、文字列内のすべての数値を検索し、ユーザーが入力した値で各数値を個別に乗算することです あなたは小数を心配する必要はありません ユーザーは数字と文字列を入力します ユーザーは、いくつかの点で数値と文字列、入力する必要がありますが、プログラムが、それは問題ではありません読み込む方法を。テキストファイルの読み取りなど、stdinを使用できますが、ユーザーはキーボードの9ボタンを(たとえば)ある時点で押す必要があります。 コンパイルして実行できるものなら何でも構いません 例: 文入力:この1は22a 3352文50です 数字入力:3 出力:この3は66a 10056文150です このコンテストは2014年9月6日(投稿から7日)で終了します。 これはコードゴルフなので、最短のコードが勝ちます
19 code-golf 

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