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

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

5
つるを認識する
バックグラウンド 古くて粒子の粗い白黒の画像がたくさんあります。それらのいくつかは壁に登るブドウを描いていますが、そうでないものもあります。あなたの仕事はそれらを私のために分類することです。 入出力 入力は、便利な形式で与えられたビットAの長方形の2D配列です。空にはなりませんが、0と1の両方が含まれているとは限りません。次の条件が満たされる場合、配列はつるを表します。 Aの一番下の行には少なくとも1つが含まれています。これらはぶどうの根です。 Aのすべての1は、左、右、下にのみ(上ではなく、斜めにではない)1のパスで最下行に接続されます。これらの道はつるの枝です。 入力がつるを表す場合、出力は一貫した真実の値であり、それ以外の場合は一貫した偽の値です。 例 この配列はつるを表しています: 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 この入力は、枝によって根に接続されていない右境界線の中央に1があるため、つるを表していません。 0 0 0 1 …

9
シュワルツマン教授のAcme Canine Decoder 2000
前書き 私たち-特にファンになりがちな私たちの間のオタク-はすべて、この古いファーサイドの漫画を覚えています: 明らかに、シュワルツマン教授は、発明を使用する前に、ほんの少しだけプログラミングスキルを磨いたかもしれません。しかし、あなたはそれを自分で複製できますか?可能な限り少ないバイトを使用して? 入力仕様 犬の音を適切にイントネーションされた「ヘイ」に変換するスクリプトを作成する必要があります。これは純粋なコードゴルフです。最も少ないバイト数が優先されます。 入力は、次のトークンのいくつかの組み合わせで構成されます。 Bark、Baark、Baaark、Baaaark、...(すなわち、B*rk 少なくとも1でaアスタリスクを置換します) Woof、Wooof、Woooof、...(W*f少なくとも有する2つの o Sはアスタリスクを置換) Grr、Grrr、Grrrr、...、(G少なくとも、続いて2 r秒) 任意の数の.(ピリオド)、!(感嘆符)、および/または?(疑問符)文字 繰り返しますが、-basedトークンWoofとGrr-basedトークンには、それぞれ少なくとも2つ oのsとrsが常に必要です。Wofおよび有効なトークンでGrはありません。 トークンの長さには制限がありません(たとえば、トークンにいくつaのsを繰り返すことができるかBark)。ただし、デコーダーは、このチャレンジに合格するために、合計で最大10個aのs、os、またはrsを持つ入力トークンに対してのみ正しく動作する必要があります。 出力仕様 シュワルツマンの設計に忠実に、犬のデコーダプログラムは次のようにそれを処理して出力テキストにする必要があります。 Bark、Woof、とGrrなりますHey。 Baark、Wooof、とGrrrなりますHeyy。 Baaark、Woooof、とGrrrrなりますHeyyy。等 すべてのBarkベースのトークンの場合、y出力Heyベースのトークンのas の数はs の数と等しくなければなりません。 すべてのWoofベースのトークンの場合、y出力Heyベースのトークンのs の数はs の数より1少ない必要がありますo。 すべてのGrrベースのトークンの場合、y出力Heyベースのトークンのs の数はs の数より1少ない必要がありますr。 すべての句読点(.、!、とは?)変更されません。 sとsのみのy出力から1つを削除することを忘れないでください!8 秒の入力は、8 秒の一致セットでになります。ただし、7 秒でのみになります。WoofGrrBaaaaaaaark?aHeyyyyyyyy?yWoooooooof?Heyyyyyyy?y 繰り返しますが、無制限のサイズの入力トークンでプログラムを動作させることができる場合、それは素晴らしいことですが、このチャレンジの目的のために、プログラムは10文字以内の入力トークンで適切に動作することを確認するためにのみチェックされます。 入力内のすべてのBark-、Woof-、および- Grrベースのトークンは、大文字で始まると想定されます。そのため、変化やそれに類似したものを処理する必要はありません。Bark grrrHey heyy 入力と出力の例 入力: Bark. Bark! Bark!! 出力: Hey. Hey! Hey!! …
31 code-golf  string 

30
最小公倍数
正の整数のセットの最小公倍数はA最小の正の整数Bであり、各にkはA、nなどの正の整数が存在しk*n = Bます。 入力として少なくとも2つの正の整数を与え、それらの最小公倍数を出力します。 ルール ビルトインは使用できますが、ソリューションで使用する場合は、GCD / LCMビルトインを使用しない代替ソリューションを含めることをお勧めします。ただし、代替ソリューションはスコアにはまったくカウントされないため、完全にオプションです。 すべての入力と出力は、言語のネイティブ表現可能な範囲内になります。言語がネイティブで任意の大きな整数を処理できる場合、ソリューションは任意の大きな入力と出力で動作する必要があります。 テストケース [7, 2] -> 14 [8, 1] -> 8 [6, 4, 8] -> 24 [8, 2, 1, 10] -> 40 [9, 6, 2, 1, 5] -> 90 [5, 5, 7, 1, 1] -> 35 [4, 13, 8, 8, 11, 1] -> …

11
「GitHub」アバターを生成する
背景/説明 注:@HelkaHombaが指摘しているように、実際のGitHub ID は実際にはランダムではなく、ユーザー名のハッシュに基づいています デフォルトのGitHubアバターは5x5ピクセルの画像です。色がランダムに選択され、その色を使用してランダムピクセルが片側(右または左、2x5サイズ)で塗りつぶされます。次に、その側がコピーされ、y軸を横切って反対側に反転されます。塗りつぶされていない残りのピクセルは、#F0F0F0、またはrgb(240,240,240)です。 中央の列のピクセル(1x5サイズ)は、以前と同じ色を使用してランダムに塗りつぶされます。 出力 注:このチャレンジでは、GitHubアバターを囲むスペースを無視します プログラムは5x5ピクセルの画像ファイルを出力する必要があります。詳細については、http://meta.codegolf.stackexchange.com/a/9095/42499を参照してください 例 注:これらは明らかに5x5から拡大されているので、それらを見ることができます がんばろう!

12
私を月餅にしよう!
中秋節は始まりました! 残念ながら、私の月餅はすべて盗まれました-私のような小さな人々にとっては高価すぎて、今年は食べることができないのではないかと心配しています! だから私はあなたに助けを求める。いくつか作っていただけますか? 知らない人のために、月餅がどのようなものかを教えてください。 月餅にはさまざまなサイズがあります! だから私はあなたに私与えるつもりだ入力を、nは私は1つをするとき、。 ここに私が欲しい出力の例を示します: サイズn = 3の月餅 (@@@@@) (@MAF@) (@@@@@) サイズn = 6の月餅: (@@@@@@@@@@@) (@ @) (@ M @) (@ F @) (@ @) (@@@@@@@@@@@) つまり、サイズnの月餅は次のとおりです。 n行の高さ 2n-1 @sの長さ 2n + 1文字の長さ(@sおよび角括弧) そして、あなたは私にあなたのあまりにも小さな練習月餅を投げない方が良いです! 入力は常にn> = 3であると仮定します。 月餅には、次の装飾のいずれかが含まれています。 MF MAF HMF JCJ TTT ZJ LF RF CF どちらでも構いません- …

30
二乗和の整数を返します
紹介とクレジット 数字が11で割り切れるか3で割り切れるかをテストするための素晴らしいルールを知っていますが、これは数字の桁の賢い合計です。現在、この課題は、数字の合計を計算し、結果が完全な整数二乗であるかどうかを確認することを要求することにより、これを新しいレベルに引き上げます。このプロパティは、数値を見るときに非常にわかりにくいため、人間の作業を節約できるように、数値のリスト全体に対してこれを実行する必要があります。これがあなたの挑戦です! これは私の大学の関数型プログラミングコースでの課題でした。この課題は現在クローズされており、クラスで議論されており、ここに投稿する教授の許可があります(明示的に尋ねました)。 仕様 入力 入力は、任意の標準I / O形式の非負整数のリストです。 言語で必要に応じてリスト形式を選択できます 出力 出力は、標準I / O形式の整数のリストです。 何をすべきか? 入力リストから、数字の合計が(整数の)正方形でないすべての整数をフィルターで除外します。 要素の順序は変更できません。たとえば、取得した[1,5,9]場合は返されません[9,1] 潜在的なコーナーケース 0 は非負の整数であり、したがって有効な入力であり、0も有効な整数のルートです。たとえば、0は整数の2乗としてカウントされます。 空のリストも有効な入力および出力です。 誰が勝ちますか? これはコードゴルフなので、バイト単位の最短回答が勝ちです! もちろん、標準ルールが適用されます。 テストケース [1,4,9,16,25,1111] -> [1,4,9,1111] [1431,2,0,22,999999999] -> [1431,0,22,999999999] [22228,4,113125,22345] -> [22228,4,22345] [] -> [] [421337,99,123456789,1133557799] -> [] 段階的な例 Example input: [1337,4444] Handling first number: Sum of the digits …
31 code-golf  math 

20
ファロは配列をシャッフルする
A ファロshuffleが頻繁に「シャッフル」デッキにマジシャンで使用される技術です。ファロシャッフルを実行するには、まずデッキを2つの等しい半分にカットしてから、2つの半分をインターリーブします。例えば [1 2 3 4 5 6 7 8] シャローファロは [1 5 2 6 3 7 4 8] これは何回でも繰り返すことができます。興味深いことに、これを十分な回数繰り返すと、常に元の配列に戻ります。例えば: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

8
これらのジェームズボンドの評価を並べ替える
前書き 私の祖父はジェームス・ボンドのファンですが、彼は彼の好きな俳優をどのようにランク付けするかについて常に確信がありません。そのため、彼は常にリストを作成していますが、これは大変な作業です。彼は私に彼の人生を楽にするプログラムを作成するように頼みましたが、私はそのための時間がありません、私は働かなければなりません!だから私はあなたたちを頼りにします。 チャレンジ 挑戦は簡単です。入力は、次の形式のリストで構成されます。 <number> <space> <actor's name> <newline> あなたの仕事は、行の先頭の番号に基づいて、最後から始めて最初で終わるようにそれらをソートすることです。すべての番号を削除する必要があります。 しかし、私の祖父は時々間違いを犯します。そのため、データを検証する必要があります。リストの名前のいずれかがボンドを演じた俳優のいずれかを参照していない場合、それを破棄する必要があります。繰り返しの場合は、繰り返しを削除し、名前に関連付けられた最小の重みを維持する必要があります(例#3)。 行数に制限はありません。 出力は、配列、カンマ区切りの文字列、スペースで区切られた値のみ、または完全に何か他のものであるかどうかにかかわらず、何らかのリストである必要があります。 Pierce Brosnan, Sean Connery, David Niven 末尾の改行またはスペースは許可されます。 入力と出力の例 入力: 1ショーン・コネリー 2エマ・ワトソン 5ティモシーダルトン 4ロジャー・ムーア 3ダニエル・クレイグ 出力: ティモシー・ダルトン、ロジャー・ムーア、ダニエル・クレイグ、ショーン・コネリー 入力: 2ティモシーダルトン 4ジョージ・ラゼンビー 5ジョージ・ラゼンビー 3ボブ・シモンズ 出力: ジョージ・ラゼンビー、ボブ・シモンズ、ティモシー・ダルトン 入力: 3ショーン・コネリー 2ピアース・ブロスナン 1ショーン・コネリー 出力: ピアス・ブロスナン、ショーン・コネリー これはコードゴルフなので、最短のコード(バイト単位)が勝ちです! 付録 ボンドの役割を演じた俳優のリスト: バリー・ネルソン ボブ・シモンズ ショーン・コネリー ロジャー・ムーア デビッド・ニーブン …

30
この数字はどのベースにありますか?
ここに簡単な挑戦があります: 未知の基数の数値を表す文字列が与えられた場合、その数値が含まれる可能性のある最も低い基数を決定します0-9, a-z。文字列にはのみが含まれます。必要に応じて、小文字ではなく大文字を使用することもできますが、これを指定してください。この可能な限り低いベースを10進数で出力する必要があります。 より具体的な例を次に示します。入力文字列が「01234」の場合、2、3、および4はすべてバイナリで定義されていないため、この数値をバイナリにすることはできません。同様に、この数値は基数3または基数4にすることはできません。したがって、この数は基数5以上でなければなりません。したがって、「5」を出力する必要があります。 コードは、ベース1(単項、すべて「0」)からベース36(「0-9」および「a-z」)までの任意のベースで機能する必要があります。 入力を受け取り、適切な形式で出力を提供できます。基本変換ビルトインが許可されています。いつものように、標準的な抜け穴が適用され、バイト単位の最短回答が勝者です! テストIO: #Input #Output 00000 --> 1 123456 --> 7 ff --> 16 4815162342 --> 9 42 --> 5 codegolf --> 25 0123456789abcdefghijklmnopqrstuvwxyz --> 36

27
文字列をパスワード化する
あなたの挑戦は、文字列をパスワード化することです!パスワード付けとは何ですか? 入力として文字列を受け取ります。この文字列には、大文字、小文字、数字、スペースのみが含まれます。 すべてのスペースをアンダースコアに置き換え、すべての数字を左から右に表示される順序で文字列の末尾に移動する必要があります。次に、文字列内のすべての文字について、ランダムに大文字または小文字に変更します。 例(文字の大文字小文字は毎回異なる必要があります): Input Hello world Output HElLo_wORld Input pa55 w0rd Output pA_Wrd550 Input 14 35 Output _1435 Input 0971 Output 0971 Input [space] Output _ バイト単位の最短コードが勝ちです! 情報セキュリティSEでこれが良いハッシュアルゴリズムであるかどうかを尋ねる人は誰でも勝ちます!-SEの支配者を心配しないでください、冗談です。

18
ビームは当たるでしょうか?
レーザーは、で示される4つの直交方向のいずれかで直線ビームを照射します<>^v。O長方形のグリッド上のターゲットにヒットするかどうかを判断します。 これらのそれぞれがヒットします(True): ..... ...O. ..... ...^. ..... >O. ... v.... O.... ........... ........... O.........< ........... これらは見逃します(False): ...... ...... .^..O. ...... .....> O..... ...... ...... .O. ... .v. .....<. ..O.... 入力:.少なくとも2x2のサイズの長方形のグリッドで、ターゲットはO1つで、レーザーは1つのみです<>^v。行は、文字列のリスト、2D配列または文字のネストされたリスト、またはオプションの末尾改行を含む単一の改行で区切られた文字列です。 出力:レーザービームがターゲットに到達した場合は一貫した真実の値、見逃した場合は一貫した偽の値。 正規表現(または組み込みのパターンベースの文字列照合)を別のカテゴリとして使用しないサブミッションを検討します。(no regex)言語名の後に置くと、回答がリーダーボードに個別に表示されます。 コードスニペットを表示 var QUESTION_ID=80196,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/80196/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var …

30
でこぼこの言葉ですか?
(パズルに関するこの挑戦に触発された- そのパズルのネタバレは下にあるので、自分でパズルを解決したい場合はここで読むのをやめてください!) 単語内の文字が単語内の前の文字よりもアルファベット順に遅れている場合、2つの文字の間の上昇と呼びます。それ以外の場合、同じ文字の場合も含めて、fallと呼ばれます。 たとえば、単語にACEは2つの上昇(Ato CおよびCto E)があり、下降はありませんが、THE2つの下降(Tto HおよびHto E)および上昇はありません。 立ち上がりと立ち下がりの順序が交互に変わる場合、「バンピー」と呼びます。たとえば、BUMP上昇(Bto U)、下降(Uto M)、上昇(Mto P)になります。最初のシーケンスは上昇である必要はないことに注意してください- BALD下降-上昇-下降になり、またバンピーです。 チャレンジ 単語が与えられたら、バンピーかどうかを出力します。 入力 ASCIIアルファベット([A-Z]または[a-z])文字のみで構成される適切な形式の単語(必ずしも辞書の単語とは限りません)。 入力がすべて大文字またはすべて小文字の場合の選択ですが、一貫性が必要です。 単語の長さは少なくとも3文字になります。 出力 truthy / falseyの入力ワードがでこぼこ(truthy)かでこぼこ(falsey)であるかどうかの値。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 真実: ABA ABB BAB BUMP BALD BALDY UPWARD EXAMINATION AZBYCXDWEVFUGTHSIRJQKPLOMN 偽: AAA BBA ACE THE BUMPY BALDING ABCDEFGHIJKLMNOPQRSTUVWXYZ リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # …

30
文字列をゆっくりと別の文字列に変える
チャレンジ 2つの文字列/文字列の配列が与えられた場合、最初の文字列をゆっくりと縮小し、2番目の文字列に戻します。 文字列は常に同じ文字で始まると仮定できます。 例 Input: "Test", "Testing" Output: Test Tes Te T Te Tes Test Testi Testin Testing 最初に最初の単語を出力します: Test 次に、文字列の長さが1文字になるまで1文字を削除し続けます。 Tes Te T 次に、2番目の単語の1文字を追加し続けます。 Te Tes Test Testi Testin Testing (両方の文字列が1文字の長さである場合、どちらか一方を一度だけ出力します。) テストケース "Hello!", "Hi." Hello! Hello Hell Hel He H Hi Hi. "O", "O" O "z", "zz" z zz …
31 code-golf  string 

19
逆関数
プログラミング関数を、それらが実装する数学関数のように逆にすることができれば、きれいではないでしょうか? x任意の形式で1つの入力を受け取り、出力する関数(またはプログラム)を記述しますln(x)。 最初のバイトが最後のバイトになるようにプログラムのバイトが並べ替えられたり反転さxれたりする場合、任意の形式の入力を1つ受け取り、e^x代わりに出力する必要があります。 回答には、少なくとも3つの有効数字が必要です。 少なくとも3つの正しい有効数字がある限り、近似は問題ありません。 コードは、前方と後方の両方で同じプログラミング言語である必要があります。 このプログラムが実装するとしましょうln(x): abc你好 次に、このプログラムを実装する必要がありますe^x: \xBD\xA5\xE5\xA0\xBD\xE4cba フロートをサポートしない言語を使用している場合は、ゴールドスター。 これは奇妙な形のコードゴルフなので、最短のプログラムが勝ちます。

9
行間
先日四角い紙の上でだらだらしている間、私は上記の数字用のネガティブスペースフォントを思いついた。まだ見つけていない場合、上記の形状の間のスペースは黄金比1.618033988749になります。この課題では、タスクは入力として数値を取得し、上記の例が示すように正確にレンダリングすることです。 これらの作成方法を次に示します。すべての行は通常のグリッド上にあるため、個々の数字は少数のグリッドセルで構成されます。10桁の形状は次のとおりです(このチャレンジでは小数点は無視します)。 はい、7は上部の黄金比の例とは異なります。私はちょっとそれを台無しにしました。これを使用します。 各桁の高さは5セル、幅は3セルです。数字をレンダリングするには、数字のペアの間に空の列が1つだけ存在するように、すべての数字を隣り合わせに配置することを想像できます。たとえば、319入力として次のように記述します。 最初と最後の空の列を1つ追加することに注意してください。次に、セルを反転します。 出力は、結果のポリゴンの境界になります。 もちろん、レンダリングされた出力が同じように見える限り、他の方法で結果を生成できます。 入力 STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を文字列または数字のリストとして取得して、プログラムまたは関数を作成できます。(先行ゼロをサポートできないため、数字を使用することはできません。) 入力に16桁はないものと想定できます。 出力 出力は、画面に表示されるか、共通の画像形式でファイルに書き込まれます。 ラスターグラフィックスとベクターグラフィックスの両方を使用できます。 いずれの場合も、基礎となるグリッドのセルのアスペクト比は1である必要があります(つまり、セルは正方形である必要があります)。 ラスターグラフィックの場合、各セルは少なくとも20 x 20ピクセルをカバーする必要があります。 行は、セルサイズの10%を超えてはなりません。ここでエイリアスが発生するため、1ピクセルまたは2ピクセルの余裕を与えたいと思います。 線と背景には、はっきりと区別できる2つの色を使用できますが、線によって作成される形状は塗りつぶしてはなりません(つまり、内側も背景色にする必要があります)。 各閉ループ内にギャップがあってはなりません。 もちろん、結果全体が表示される必要があります。 テストケース 10の入力があります。これらの入力は、隣接する数字のすべての可能なペアと、すべての可能な先頭および末尾の数字を一緒にカバーします。 07299361548 19887620534 21456837709 39284106657 49085527316 59178604432 69471338025 79581224630 89674235011 97518264003 そして、これらの期待される結果は次のとおりです。 コードが1桁の場合でも機能することを確認してください(明らかなはずなので、ここに期待する結果を含めたくはありません。テストケースセクションは、それなりに肥大化しています)。

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