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

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

29
レディングに乗って、Goをパスしたら$ 200を集める
モノポリーボード このコードゴルフの挑戦のために、ボードゲームMonopolyを構築します。 ルール: 入力なし。 ボードを形成する各ASCII文字が米国版モノポリーボードの各スペースの最初の文字である11x11ボードを出力します。 文字はスペースで区切る必要があります。 Go 右下から開始する必要があります。 生成する正確な文字列は F K C I I B A V W M G N P T N C C S P P S V C S P E L S B J C V C O R I B C M G 右下から左下に向かって正方形が次のようになっていることに注意してください。 …

23
並んだ円、nポイント
n円状に配置されたポイントに対して、明確なポイントのすべてのペアの間に線を引き、次のような結果を生成します。最短コード(バイト単位)が勝ちます!線は透明である必要はありませんが、その方が見栄えが良くなります。出力は、ベクトルグラフィック、または少なくとも600ピクセルx 600ピクセルの画像(ファイルに保存されるか、画面に表示される)でなければなりません。チャレンジを完了するには、少なくとも20を引く必要があります。

30
文字列の分解図
機械やオブジェクトを最小の断片に分解した分解図が好きではありませんか? それを文字列にしましょう! チャレンジ 以下のプログラムまたは関数を作成します 印刷可能なASCII文字のみを含む文字列を入力します。 文字列を非スペースの等しい文字(文字列の「断片」)のグループに分割します。 これらのグループを便利な形式で出力します。グループ間にはセパレータがあります。 たとえば、与えられた文字列 Ah, abracadabra! 出力は次のグループになります。 ! 、 A ああああ bb c d h rr 出力の各グループには、スペースが削除された等しい文字が含まれています。グループ間の区切り文字として改行が使用されています。許可されている形式については、以下をご覧ください。 ルール 入力は、文字列または文字の配列であるべきです。印刷可能なASCII文字(スペースからチルダまでの範囲)のみが含まれます。ご使用の言語でサポートされていない場合は、ASCIIコードを表す数字の形式で入力を取得できます。 入力には少なくとも1つの非スペース文字が含まれると想定できます。 出力は、からなるべき文字(入力がASCIIコードによるものである場合でも)。グループ間には、入力に現れるスペース以外の文字とは異なる明確な区切り文字が必要です。 出力が関数の戻り値を介している場合、配列または文字列、または文字の配列の配列、または同様の構造体である可能性があります。その場合、構造は必要な分離を提供します。 各グループの文字間の区切り文字はオプションです。ある場合、同じルールが適用されます。入力に現れる可能性のあるスペース以外の文字は使用できません。また、グループ間で使用されるのと同じセパレーターであってはなりません。 それ以外は、フォーマットは柔軟です。ここではいくつかの例を示します。 上記のように、グループは改行で区切られた文字列です。 グループは、などの非ASCII文字で区切ることができます ¬。上記の入力の出力は文字列になります。 !¬,¬A¬aaaaa¬bb¬c¬d¬h¬rr グループはn > 1スペースで区切ることができます(nが可変であっても)。各グループ間の文字は1つのスペースで区切られます。 ! , A a a a a a b b c d h r r …
39 code-golf  string 

30
文字列を削除する
多くの言語には、重複を取り除く、またはリストまたは文字列を「重複排除」または「一意化」する組み込みの方法があります。あまり一般的ではないタスクは、文字列を「削除」することです。つまり、表示されるすべての文字について、最初の2つの出現が保持されます。 削除する必要がある文字にラベルが付けられている例を次に示します^。 aaabcbccdbabdcd ^ ^ ^^^ ^^ aabcbcdd あなたの仕事は、まさにこの操作を実装することです。 ルール 入力は単一の、場合によっては空の文字列です。ASCII範囲の小文字のみが含まれていると想定できます。 出力は、文字列に少なくとも2回出現したすべての文字が削除された単一の文字列である必要があります(したがって、左端の2つの出現は保持されます)。 文字列の代わりに、文字のリスト(またはシングルトン文字列)を使用できますが、形式は入力と出力の間で一貫している必要があります。 プログラムまたは関数を作成し、入力を受け取り出力を提供する当社の標準的な方法を使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース 行の各ペアは1つのテストケースであり、入力の後に出力が続きます。 xxxxx xx abcabc abcabc abcdabcaba abcdabc abacbadcba abacbdc aaabcbccdbabdcd aabcbcdd リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 3 (-p …

29
疑似要因
数学の問題や謎に時々現れる奇妙な数字があります。pseudofactorial(N)は、1からNまでの数の最小(つまり最小)公倍数です。つまり、1からNまでのすべての数値を要素として持つ最も低い数値です。 例えばpseudofactorial(7)= 3 * 4 * 5 * 7、これは7と同じです!ただし、2と6は他の用語に含まれているため削除されています。 pseudofactorial(N)を計算するプログラムを作成すると、いつものように、最短のコードが優先されます。 以下は、使用するための短いリストです。A003418の下のOEISで、より多くのテストケースを見つけることができます。 階乗: 1 2 6 24 120 720 5040 疑似要因: 1 2 6 12 60 60 420

15
空を見上げて!それは超大型アレイです!
Code Reviewでライバルの友人から寄せられたこの質問に触発されました。 定義 スーパーアレイは、アレイ内の各新しい要素は、以前のすべての要素の合計よりも大きい配列です。{2, 3, 6, 13}スーパーアレイです 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}なぜならスーパーアレイではないからです 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 大型のアレイは、アレイ内の各新しい要素は、以前のすべての要素の積よりも大きい配列です。{2, 3, 7, 43, 1856}はスーパー配列ですが、それはまた、より大きな配列です 3 > …

21
どの行が重要ですか?
次の文字(または改行)のいずれかを指定します。 `1234567890-=~!@#$%^&*()_+qwertyuiop[]\QWERTYUIOP{}|asdfghjkl;'ASDFGHJKL:"zxcvbnm,./ZXCVBNM<>? プログラムは、キーボード上の行を出力する必要があります 私のキーボードは(ほぼ)バッテリー切れなので、コードはできるだけ短くする必要があります プログラムが使用するキーボード(行ルックアップ用)は、次のようになります。 Row 1:~` !1@2 #3$4 %5^6 &7*8 (9)0 _-+= Row 2: Q W E R T Y U I O P {[ }] |\ Row 3: A S D F G H J K L :; "' ↵ return Row 4: Z X C V B …

30
可分性テスト
仕事 2つの厳密に正の整数で指定されたN及びDを入力とし、かどうかを決定nがある割り切れるによってD整数が存在する場合、すなわち、qはそのようなn = qd。 プログラムまたは関数を作成し、入力を受け取り出力を提供する当社の標準的な方法を使用できます。 出力は、真の値または偽の値でなければなりません。nがdで割り切れる場合は真理、そうでない場合は偽。 コードは、すべての符号付き8ビット整数で機能する限り、ネイティブに表現できる整数のみを処理する必要があります。ただし、アルゴリズムは任意の大きな整数に対して機能する必要があります。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース n, d output 1, 1 truthy 2, 1 truthy 6, 3 truthy 17, 17 truthy 22, 2 truthy 1, 2 falsy 2, 3 falsy 2, 4 falsy 3, 9 falsy 15, 16 falsy リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N …

24
ドットとコンマのタイムマーカーを備えたASCIIクロック
前書き 文字の行が実際には2行であると想像してください。上の行-ドット-は時間(24時間制)を表し、下のコンマ-は分を表します。1文字は、可能な場合はいつでも、時間、分、または両方を表すことができます。 最初はおそらく真夜中から分を時間と分に変換しなければならないでしょう。 結果は、現在の時刻を「ドット形式」で示す文字列です。ドットカウント(アポストロフィはここではドットとしてカウントされ、そう呼ばれます!)は真夜中からの時間カウントであり、コンマカウントは分カウントです。明確にするためにいくつかの例を示します。 (備考)hh:mm- result (時間のみ)05:00- ''''' (数分のみ)00:08- ,,,,,,,, (時間<分)03:07- ;;;,,,, (時間>分)08:02- ;;'''''' (時間=分)07:07- ;;;;;;; (その日の始まり)00:00- (空の結果) 「両方」の文字は最大23回使用できることに注意してください-23:xxの場合、xxは23以上です。 記号 あなたの言語で文字をエスケープする必要がある場合(ルール5を参照)、それを代替の1つに変更できます。上記の選択肢では不十分な場合は、他の記号を使用できますが、合理的なものにしてください。逃げることが障壁になりたくないのです。 ;(セミコロン) -時間と分の両方のマーカー(ALT: :) '(アポストロフィ) -時間のマーカー(ALT: '``°) ,(カンマ) -分間のマーカー(ALT: .) 追加のルール 最小バイト数のコードが勝ちです! 可能な限り両方のシンボルを使用する必要があります。02:04の場合、結果は'',,,,、またにはなりません;',,,。でなければならない;;,, 入力-スクリプト/アプリパラメーター、ユーザー入力(readlineなど)、またはコード 3.1 内の変数を使用できます。コード内の変数を使用する場合、その長さは可能な限り長くする必要があります。それはだ1439、それは次のようになりますので、(午後11時59分)t=1439 「両方」の文字(12:05の12、03:10の3)で象徴される共通部分は、文字列の先頭に配置する必要があります 記号は、コード内でエスケープする必要がある場合にのみ代替に置き換えることができます。 入力は00:00以降の分単位で与えられます。これは負でない整数であると仮定できます。 テストケース Input: 300 Output: ''''' Input: 8 Output: ,,,,,,,, Input: 187 …
39 code-golf  string  clock  time 

22
テキストの三角形化
スペースを除いて印刷可能なASCII文字のみが含まれ、長さが正の三角形(1、3、6、10、15、...)であることが保証されている文字列を取り込むプログラムまたは関数を記述します。 同じ文字列を印刷するか返しますが、スペースを使用して三角形に整形します。いくつかの例は、私が意味することを最もよく示します: 入力がR次の場合、出力は R 入力がcat次の場合、出力は c a t 入力がmonk3y次の場合、出力は m o n k 3 y 入力がmeanIngfu1次の場合、出力は m e a n I n g f u 1 入力が^/\/|\/[]\次の場合、出力は ^ / \ / | \ / [ ] \ 入力が Thisrunofcharactersismeanttohavealengththatcanbeexpressedasatriangularnumber.Diditwork?Youtellme,Ican'tcountverywell,ok? 出力は T h i s r u n o f c …

14
神殿のスカイラインシーケンスを生成する
次のプロセスを検討してください。 負でない整数Nを取ります。 例:N = 571 先行ゼロなしでバイナリで表現します。(ゼロ自体は唯一の例外で、になり0ます。) 例571= 1000111011バイナリで このバイナリ表現で1と0の連続した実行を分割します。 例えば1000111011→ 1、000、111、0、11 実行を最長から最短に並べ替えます。 例えば1、000、111、0、11→ 000、111、11、1、0 各実行のすべての数字を、常にで始まる「」1と0「」を交互に使用して上書きします1。 例えば000、111、11、1、0→ 111、000、11、0、1 結果を連結して、新しい2進数を取得します。 例えば111、000、11、0、1→ 1110001101= 909小数で このプロセスによって生成された値をプロットすると、かなりきれいなグラフが得られます。 そして、結果のシーケンスをTemple Skylineシーケンスと呼んでいる理由が明らかになることを期待しています チャレンジ 非負の整数Nを取り込んで、対応するTemple Skylineのシーケンス番号を出力または返すプログラムまたは関数を作成します。入力と出力は両方とも10進数でなければなりません。 入力された場合、たとえば571、出力があるべき909。 バイト単位の最短コードが優先されます。 参考のために、N = 0から20までのシーケンスの用語を以下に示します。 0 1 1 1 2 2 3 3 4 6 5 5 6 6 7 7 8 14 …

13
ミー・ウォント・ハニカム
六角形のタイルまたはハニカムのこのASCIIアートセクションを印刷する最短のプログラムを記述します。 __ __/ \__ __/ \__/ \__ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ \__/ \__/ \__/ 何も入力しないでください。 stdoutまたは言語の最も近い代替への出力。 プログラムの代わりに、パラメータを取らずに結果を通常どおりに出力するか、文字列として返す名前付き関数を作成できます。 出力には、任意の数の先頭および/または末尾の改行を含めることができ、出力の各行には、任意の数の先頭および/または末尾のスペースを含めることができます(パターンが適切に整列する限り)。 バイト単位の最短コードが優先されます。

24
数値の桁差の合計を計算する
8675309などの負でない整数を取り、隣接する数字のすべてのペア間の差の絶対値を計算することを検討してください。 以下のために8675309我々が得ます|8-6| = 2、|6-7| = 1、|7-5| = 2、|5-3| = 2、|3-0| = 3、|0-9| = 9。これらの結果をつなぎ合わせると、別のより小さな非負整数が得られます212239。プロセスを繰り返すと、が得られます11016。0115これは、先行ゼロが書き込まれないという規則により、、またはに115なり、これ以上削減することはできません。これらすべての値を合計すると、が得られます。0448675309 + 212239 + 11016 + 115 + 4 = 8898683 Digit Difference Sum(またはDDS)を、数字の数字の差分を繰り返して新しい数字を作成し、結果の数字をすべて元の数字に追加するこの操作として定義しましょう。 以下は、対応するDDSシーケンスの最初の20個の値です。 N DDS(N) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 …

8
安定したレンガの壁を構築する
レンガの壁は、横に1行n列のレンガが積み重なった長方形です。これは、高さ4と幅8の壁で、右側にレンガのサイズが表示されています。 [______][______] 4 4 [__][____][__][] 2 3 2 1 [][______][____] 1 4 3 [____][______][] 3 4 1 この壁には障害があります。これは、周囲のレンガ内に括弧が付いている、レンガ間の2つの垂直亀裂が並ぶ場所であるためです。 [______][______] [__][____)(__][] [][______)(____] [____][______][] ただし、右側のサイズ1のレンガに隣接する亀裂は、列で区切られているため、障害にはなりません。 指定されたサイズのレンガで構築された安定した壁を見つけて表示するコードを記述します。最少バイトが勝ちます。 入力 空白ではないレンガサイズ(正の数)のリストと、少なくとも2の高さ。このリストは、必要に応じて並べ替えることができます。代わりに、各サイズのレンガの数を取り入れることができます。 出力 指定されたすべてのレンガを使用した、必要な高さの安定した長方形の壁の写真。印刷するか、改行付きの文字列として返します。 角括弧で囲まれたアンダースコアを2n文字としてサイズnのブリックを描画します。 1: [] 2: [__] 3: [____] 4: [______] ... 入力には、少なくとも1つのソリューションがあることが保証されています。複数ある場合でも、壁を1つだけ描画する必要があります。 時間制限はありません。必要なだけブルートフォースを使用します。アルゴリズムは、理論的にはあらゆるサイズの入力で動作するはずです。 テストケース: 複数のソリューションがあるため、出力が異なる場合があります。 >> [1, 1, 2, 2], 2 [][__] [__][] …

1
Stack Exchangeチャットルーム用のチャットボットを作成する
チャレンジ この課題の目標は、Stack Exchangeのチャットルームで実行できるチャットボットを作成することです。ボットは、特定のコマンドがユーザーによって投稿されたときにそれを検出し、それに応答できる必要があります。これはコマンドのリストであり、ボットが行うべきことです: !!newest:このサイト(codegolf.SE)に投稿された最新の質問のタイトル(リンクではなくタイトル)を出力します。 !!metanewest:メタサイト(meta.codegolf.SE)に投稿された最新の質問のタイトルを出力します。 !!questioncount:現在の質問数を出力します。 !!metaquestioncount:メタサイトで現在の質問数を出力します。 !!tag tagname:最初のパラメーターとして指定されたタグの抜粋(短い説明)を出力します。 !!metatag tagname:上記と同じですが、メタサイト用です。 !!featured:現在賞金がある質問の数を出力します。 !!metafeatured:Metaに[featured]タグがある質問の数を出力します。 ルール スニペットや関数ではなく、完全なプログラムを作成する必要があります。 必要な場合は、入力としてユーザー名とパスワードを要求できます(入力、STDIN、コマンドライン引数の入力を求めます)。これは、たとえばPythonやRubyを使用する場合に必要になりますが、JavaScriptを使用してチャットルームページ自体でスクリプトを実行する場合には必要ありません。 外部ライブラリを使用して、WebSocketのようなことを行うことができます。これらのライブラリは、文字数をカウントする必要はありません。 あなたは、することができます(ただし、あなたが、あなた自身を書くことが奨励されている必要はありません)、外部チャットラッパーを使用して、文字カウントにカウントするように持っています。また、ラッパーのコードを変更することもできません。使用する場合は、変更せずに使用し、すべての文字をカウントする必要があります(独自のラッパーを作成しない場合のペナルティとして)。 ラッパー自体のコードのみが重要です。例などの他のファイルがある場合、これらはカウントする必要はありません。 URL短縮サービスやURLを短くする他の方法を使用しません。チャレンジはURLをゴルフするのではなく、チャットボットをゴルフすることです。 チャットやコマンドへの応答に必要な情報の取得に必要なものを除き、Webリクエストはありません。 標準の「抜け穴」の使用は許可されていません。 誰かがコマンドを投稿した場合、次の形式のチャットメッセージで応答する必要があります@user response。したがって、コマンドを作成し、!!featured5つの注目すべき質問がある場合、ボットは投稿する必要があります@ProgramFOX 5。 ボットをテストする場合、チャットボットアカウントから実行し、このチャットルームで実行します。私は常にその部屋でボットをテストするので、部屋IDを入力として提供する必要はありません。常に14697です。このIDは入力として与えられないので、ハードコーディングする必要があります。 コマンドが見つからない場合は、出力します@user The command [command] does not exist。[command]存在しないコマンドの名前に置き換えます。引数がコマンドに提供されている場合、引数を出力せず、コマンド名のみを出力します。 コマンドに多数の引数が必要な場合は、不要な引数を無視してください。 コマンドに十分な引数がない場合、出力 @user You have not provided enough arguments システムは、重複したメッセージが短い時間範囲内に投稿されるのを防ぎます。したがって、ボットをテストするとき、同じ出力を連続して与える2つのコマンドを実行することはありません(つまり、たとえばドットを追加することで、メッセージが重複している場合にメッセージを変えるシステムを実装する必要はありません)。 システムは、短い時間範囲内に投稿されるメッセージが多すぎることを防止するため、テスト時には、短い時間範囲内にあまり多くのコマンドを送信することはありません。つまり、ボットがこれを処理する必要はありません。たとえば、投稿する前に)。 これはcode-golfで、バイト数が最小のプログラムが勝ちます。 入門 ボットの作成を開始するための情報を次に示します。これを使用する必要はありませんが、ガイダンスになる可能性があります。 ログインするには、まずOpenIDプロバイダーにログインします。これは常にStack Exchange OpenID(https://openid.stackexchange.com)です。ログインフォームはにあり、https://openid.stackexchange.com/account/loginそこにユーザー名とパスワードを入力します。 …
39 code-golf 

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