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

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

23
条件ステートメントなしのルックアップ
この課題は、Arduinoマイクロコントローラーのプログラミングに触発されました。ボード上のさまざまなピンに接続された6つのLEDと6つのボタンがあります。コードでは、各ボタンとLEDにID番号(1〜6)が割り当てられています。ID番号に対応するピン番号(0〜13の範囲)は、switchステートメントを使用して検索されます。純粋に娯楽のために、これらのswitchesを算術/その他の関数で回避して、将来のコードメンテナーを恐ろしくすることができるかどうか疑問に思っていました。 チャレンジ ID番号(整数)をパラメーターとして受け取り、条件ステートメント(no if、no switchおよびno ternary)を使用せずに、6個のLEDおよび/または6個のボタンのピン番号(整数)を返す関数を提供します。 LEDの戻り値: ID Pin 1 3 2 5 3 6 4 9 5 10 6 11 ボタンの戻り値: ID Pin 1 2 2 4 3 7 4 8 5 12 6 13 ボーナスチャレンジ LEDまたはボタンのピンが要求されているかどうかを示すID番号(整数)と2番目のパラメーター(任意のタイプ)を受け取り、対応するピン(整数)を返す単一の関数を提供します。 ルール これはArduino固有の課題ではありません。任意の言語を使用し、必要なことを行います。 編集:steveverrilの提案で、これは今やゴルフの挑戦です。 がんばろう! (あなたがまだ読んでいる場合:プログラミング規格によって特許的に不条理でarbitrary意的ですが、マッピングはArduino Microのピン配列に基づいています。ピン0および1はシリアル通信用に予約されており、LEDは6つの最小番号のPWM対応ピンに割り当てられています、ボタンは残りのピンに割り当てられます)

18
そっくりの形
同様の数字 2つの長方形は、辺の比率が同じ場合に似ています。 これらの2つの長方形を検討してください。高さ5行、幅11文字の長方形: =========== =========== =========== =========== =========== 高さ10行、幅22文字の長方形: ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== これらの形状は、側面の比率が同じであるため類似しています。正式に配置するには(hhhが最短辺、wwwが最長辺): h1w1=h2w2h1w1=h2w2 \frac{h_1}{w_1} = \frac{h_2}{w_2} 次のこともできます。 h1h2=w1w2h1h2=w1w2 \frac{h_1}{h_2} = \frac{w_1}{w_2} チャレンジ 「メイン」長方形といくつかの「その他」長方形を取り、「その他」が「メイン」に似ているものを印刷するプログラムまたは関数を作成します。 入力 形状と形状のリスト。各形状は、2つのゼロ以外の正の整数で構成され、長方形の幅と高さを示します。たとえば、これ: (4,2), (3,9) は、4x2と3x9の2つの長方形を示します。ただし、入力の正確な形式は必要に応じて変更できます。 出力 「メイン」に類似した「その他」の形状のインデックス。インデックスが0ベースか1ベースか、出力の正確な形式と順序を選択できます。 サンプルプログラム Pythonの場合: main = eval(raw_input()) # The main rectangle. rects = eval(raw_input()) …

7
飛行機の有効なヘビ
Vi Hartのビデオの1つに触発された(潜在的なチャレンジアイデアに満ちた宝庫) ヘビは同じ長さのセグメントで構成されており、各セグメント間の接続はまっすぐにすることも、90°回転させることもできます。 そのような蛇(最初の方向に依存する回転まで)をエンコードするには、スリッシャーを書き留め、ターンの方向(直線/左/右)を取ります。これは、左上から右を指します -+ +--+ SR RSSR | +-+ | S RSL S +--+ --+ LSSL SSR スリザーで表されます SRSLSSLRLRSSRSRSS そしてもちろん、平面のヘビは(のようにSSSSLLLSS)それ自体と交差することはできません。 あなたの仕事は、スリザーが有効かどうかを判断することです(少なくとも1つの自己交差が生じる) 入力 有効なスリッターである場合は「何か真実」、そうでない場合は「偽」で出力 される文字から作成された文字列。SLR2 < length < 10000 テストケース __Valid__ SSLSLSRSRSSRSSSLLSSSRRLRSLRLLSSS SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR (A hilbert curve) RLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRR SRRSRSRSSRSSRSSSRSSSRSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS (Spiral) SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS (bigger, squigglier spiral) LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLL __Invalid__ SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR SRRLSLLRRLLSLRRSRLLRSRRLLSRSSSRSSSSSSSRSRSSSSSSSRRLLRRSRLLRSRRLSLLRRLLSLRR SRRSRSRSSRSSRSSSRSSSRSSSSSSSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLRLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLLSLRLSLRSLRSLRSLSLSLRSRLSLRSLRLSRSLLLRLRLRRRRSLSLSSLLSLSLSLSSLLSLSLLRLRSLLRSRLSLSSLLLLSSSSSSSSSSSSSSSSSSSSRLRLLRRLRLRLLRLRLRLRLRLSSSSLSLRLLRLSLSSLSLSLSLSLRLLRLSLLLSRSSSSSSSSSSSSSSSRLRLRLLRLRLSLSRSRSSSLSRLRLRLRSLSLSLSRLLSRLSLSLSLSLSSLSLSLLSLSRLLRLRLRLRLRLRLRLRLRLRLSLSRLRLSLLRRLSLLSLSLSLSLSLLSLSLSLRLRLRLRLRLRLRLRLRLRRLRSLSLSLSLSLSLSLSSLSSSSSLSLSSSLSLSLSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS …

9
Lispのような構文のフォーマット
バックグラウンド (真実の、心が痛む物語に基づいて) 私の時間の中で、私はLispや同様の言語でよく遊んでいました。私はそれらで書いて、実行して、解釈して、設計して、マシンに私のために書いてもらいました...そして、もし私を悩ますことがあるなら、それは私の特定のフォーマットスタイルに準拠していないLispを見ています。 残念ながら、一部のテキストエディター(咳 XCode 咳)は、コードをコピーして貼り付けるたびに美しいタブとスペースを削除する傾向があります。 (A (B (C) (D)) (E)) (ABCDE任意の関数はどこにありますか) 一部のテキストエディターは、この素敵なコードを次の目的で処理します。 (A (B (C) (D)) (E)) なんてこった!それは読めません! ここで私を助けて? チャレンジ この課題の目標は、以下で説明する形式で改行で区切られた一連の関数を取得し、読みやすさと優雅さを強調するより美しい配置を返すことです。 入力 FアリティN引数の関数を、次のような構成体として定義します。 (F (G1 ...) (G2 ...) (G3 ...) ... (GN ...)) G1, G2, ..., GNすべての機能はそれ自体でどこにありますか。アリティ0関数Aは単純(A)ですが、アリティ2関数Bの形式は(B (...) (...)) コードは、すべての関数の先頭の括弧(最初の関数を除く)の前に、単一の改行を持つ一連の関数として入力を受け取る必要があります。上記の例は有効な入力です。 あなたは仮定することができます: 括弧はバランスが取れています。 関数を250回以上インデントする必要はありません。 すべての機能は括弧で囲まれています。 () 関数の名前には、印刷可能なASCII文字のみが含まれます。 関数の名前に括弧やスペースが含まれることはありません。 入力時にオプションの末尾の改行があります。 出力 …

2
コンピューターの修理を先延ばしにしてください!
この挑戦は、本当の(そして悲劇的な)インスピレーションによってもたらされます。最近、キーボードの数字列が少し散発的になりました。キーは1-9時々機能しますが、それ以外の場合は結果がありません。熱心なプログラマーとして、これは恐ろしいことです!(その感嘆符を参照してください。それは、彼らが現在動作していることを知っている方法です。)数字自体だけでなく、記号もしばしば必要です。!@#$%^&*(半分の時間でも完全に無効です!Cプログラマーとして、ラップトップを修正するコードをいじくり回すという忙しいスケジュールから時間をとるのではなく、私はこの問題の回避にもっと興味を持っています。過去数週間にわたって、コード内の数字リテラルはすべてゆっくりと16進数に置き換えられたため、コピーして貼り付けるために数字を探し回る必要はありません。ただし、一部の数字は、キーなしでは簡単に入力できません1-9。たとえば、数字1を16進数で簡単に記述することはできません。1コード内のs をに置き換えました0xF - 0xE。影響を受けている唯一のキーがある1-9ので、私はのようなシンボルの完全な使用を維持し+、-と/。ただし、乗算または括弧は使用できません。*そして(、しばしば壊れています。これはあなたの挑戦につながります。 入力 n標準入力または使用言語の同等の整数。必要に応じて、整数の前または後に改行または他の空白文字を追加できます。または、コマンドライン引数を介して入力を受け取ることもできます。 プログラムは負の入力に正しく応答し、少なくとも32ビットの符号付き整数を処理できる必要があります。 出力 プログラムは、数nを1つ以上の16進値の合計、差、または除算として書き込むための、最短の(空白文字以外の)方法を、観察可能な形式で出力する必要があります。この問題を解決する方法は複数あり、同じ長さの出力を他の出力よりも優先する必要はありません。 出力の形式にする必要があり、次の16進数値である数字だけを含有し、そしてシンボルの一つです。浮動小数点ではなく、整数除算について説明しましょう。A % A % A...A0xA-F a-f%-+// (出力nは、慣例のように、最初に左から右に除算を評価し、次に左から右に加算と減算を評価するときに結果になることに注意してください。) テストケース 入出力 1 0xF - 0xE(または0xF-0xEまたは0xB-0xAまたは0xd - 0xcまたは0xF/0xF) 15 0xF 255 0xFF 30 0xF + 0xF スコアリングとルール これはコードゴルフです。予備スコアは、ソースファイルのバイト数です。 1-9ソースで数字を使用することはできません。 !@#$%^&*(ソースでシンボルを使用できますが、それぞれのスコアに+20のペナルティが課せられます。 プログラムはn、その関数が人間が読める形式の出力を生成する限り、引数として受け取る関数に置き換えられます。関数の戻り値は出力としてカウントされません。 標準の抜け穴は許可されていません。 最低スコアが勝ちます!がんばろう! 書式設定/質問/明確さに関して何か問題がありましたか?お知らせ下さい!これはこのサイトへの私の最初の提出です!

1
今聞こえますか?
バックグラウンド あなたはソフトウェア帝国の豊かな経営者です。あなたの時間はたくさんのお金の価値があります。そのため、常に最も効率的なルートで旅行する必要があります。ただし、幹部として、あなたは重要な電話に参加するのに多くの時間を費やします。絶対に電話を落とさないことが重要です。したがって、携帯電話サービスのないエリアを移動することはできません。 チャレンジ 3つのタプルのリストが表示されます。各タプルは、セルタワーの位置とパワーを表します。例として、影響の円を表す半径16の円で[50, 25, 16]位置<x,y> = <50, 25>するセルタワーを表します。このリストを念頭に置いて、開始位置から<0, 0>目的地に移動し<511, 511>、セルサービスを失うことなく可能な限り最短距離で移動する必要があります。これはcode-golfなので、最短のコードが勝ちです! 入出力 ファイルなど、またはを使用してSTDINを介してネストされた配列として、読みやすい形式に入力を自由に操作できますeval。まあ。入力のハードコーディングに使用される正確な文字はカウントされませんが、変数名と割り当て文字はカウントされます。入力が特定の順序になっていることや、すべてのセルタワーが問題に関連していることを想定しないでください。ご質問がある場合は、コメントを残してください、私はそれを明確にしようとします。 出力は座標のリストで、接続されたときに出口へのパスを形成するポイントをマークします。精度は、最も近い整数に丸める必要があるだけで、出力例の1〜2単位離れている場合は問題ありません。これを明確にするために、以下の画像を含めました。 幸運を祈ります! 例 input: [ 32, 42, 64] [112, 99, 59] [141, 171, 34] [157, 191, 28] [177, 187, 35] [244, 168, 57] [289, 119, 20] [299, 112, 27] [354, 59, 58] [402, 98, 23] [429, 96, …

13
DVIコネクタピン
これは、スペクトルのより単純な終わりのコードゴルフチャレンジであると思われます。しかし、ここでいくつかのミクロ最適化を実行することは素晴らしいことだと考えました。 あるDVIコネクタの3つの基本タイプ DVI-A(アナログ)、DVI-D(デジタル)とDVI-I(積分)が:。さらに、DVI-DおよびDVI-Iコネクタにはシングルリンクバージョンとデュアルリンクバージョンがあります。これらの5つの異なるコネクタはそれぞれ、異なるピンのセットを使用します。 1を考えるとA、D1、D2、I1、I2コネクタの種類の識別子として、コネクタのピンの対応するASCII表現を印刷します: A: # # # # # # # ===== # # # # # # # # # D1: # # # # # # ===== # # # # # # # # # # # # D2: # # # # # # # …

14
新年のリサイクル
2015年の適切な解決策は、より持続可能な生活を送ることです。リサイクルから始めます。リサイクルコード、つまり! あなたの仕事は、2015末尾の改行の有無にかかわらず(そしてそれだけで)STDOUTに番号を印刷することです。ただし、PPCGからいくつかの古いコードをリサイクルして、そうする必要があります。仕組みは次のとおりです。 2014-12-16 00:00:00Z(サンドボックスに投稿した日)より前にCodeGolf.SEに投稿された回答を選択してください。例外:昨年の新年のチャレンジからの回答は使用できません。 その回答からコードブロックを1つ選択します(インラインコードスニペットではなく、独自の段落である必要があります)。このブロックは、実際のコードとしてアドバタイズする必要があります。たとえば、たまたま固定幅書式を使用するテストケースや出力例を使用することはできません。 このチャレンジの提出物を形成するために、そのコードブロックの文字を再配置します。順序の変更のみが可能で、文字の追加や削除はできません。これには改行が含まれます。 元のソースブロックが言語で構文的に有効であることを示すことができる必要があります。最良の場合、コンパイル時または実行時エラーなしで実行されることを示すことでこれを行うことができます。したがって、元のコードはJavaであったかもしれませんが、(すべてのファイルがWhitespaceで有効であるため)ホワイトスペースの回答に使用できますが、おそらくPythonの回答には使用できません(元のコードは有効なPython構文ではないため) )。 答えは、すべての入力および外部状態(実際の現在の日付を含む)を無視する必要があることに注意してください。これは、可能であれば空の場合、それがクラッシュしないよう、言って、STDINから読み込むと、ストリームのすべての可能な内容で同じ出力を生成します。 結果のコードは、完全なプログラムである必要があります(関数でも、REPL環境を想定したスニペットでもありません)。 これはコードゴルフなので、最短回答(バイト単位)が勝ちます。 リーダーボード これは、異なる言語で非常に異なる結果になると確信しています。したがって、次のStack Snippetは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes コードスニペットを表示 function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;var n=e.body_markdown.split("\n");try{t|=/^#/.test(e.body_markdown);t|=["-","="].indexOf(n[1][0])>-1;t&=LANGUAGE_REG.test(e.body_markdown)}catch(r){}return t}function shouldHaveScore(e){var t=false;try{t|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading);answers.sort(function(e,t){var n=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0],r=+(t.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0];return n-r});var e={};var t=1;answers.forEach(function(n){var r=n.body_markdown.split("\n")[0];var i=$("#answer-template").html();var s=r.match(NUMBER_REG)[0];var o=(r.match(SIZE_REG)||[0])[0];var …

3
カルカソンヌタイルを配置する
ボードゲーム ボードゲーム「カルカソンヌ」では、プレーヤーはエッジを一致させてタイルを配置し、地形の大きな連続した領域を作成することで最高のスコアを獲得します。以下は(大体)ゲームに含まれるタイルの種類と数量です。 #01 x4 #02 x5 #03 x8 #04 x2 #05 x9 #06 x4 #07 x1 #08 x3 #09 x3 #10 x3 #11 x4 #12 x5 #13 x3 #14 x3 #15 x2 #16 x5 #17 x5 #18 x2 #19 x3 #20 x1 #21 x5 #22 x2 #23 x1 #24 x1 …

22
(3 + sqrt(5))^ nを正確に計算する
今日の目標は、次のような非負の整数nが与えられた整数aおよびbを見つけることです。 パラメーターnを受け取り、選択した形式でaとbを出力するプログラムまたは関数を作成する必要があります。 標準の抜け穴が適用されます。また、基本的な算術演算を使用して上記の問題を実装することを意図しています。そのため、組み込みの正確な代数機能、有理数、または非自明な数学的構造(Lucasシーケンスなど)を実装する関数を使用することはできません。 バイト単位の最短コードが優先されます。 入出力の例: 0→1、0 1→3、1 2→14、6 3→72、32 4→376、168 5→1968、880 6→10304、4608 7→53952、24128 8→282496、126336 →1479168 9、661504

21
別の方法
整数のリストを指定すると、指定した順序/深さで前方差分が生成されます。 整数のリストの場合: (10, 18, -12, 4, 8, -3, -5, 67, 9, 14) さまざまな注文/深さでの前方差異は次のとおりです。 0 10, 18, -12, 4, 8, -3, -5, 67, 9, 14 1 8, -30, 16, 4, -11, -2, 72, -58, 5 2 -38, 46, -12, -15, 9, 74, -130, 63 3 84, -58, -3, 24, 65, -204, …

24
文字列の文字はどんどん進む
(PhiNotPiのフラクタルラインチャレンジの初期ドラフトに触発されました。) 幅W > 1、高さH > 1、および2(W+H-2)印刷可能なASCII 文字で構成される文字列が与えられます。タスクは、この文字列を、左上隅から時計回りに、指定された幅と高さの長方形に巻き付けて印刷することです。長方形の内側はスペースで埋められます。テストケースはこれを非常に明確にすることを望んでいます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、結果をSTDOUT(または最も近い代替)に出力するか、文字列として返すことができます。 (入力文字列にある可能性のあるものを除いて)先頭または末尾のスペースがあってはなりません。オプションで、単一の末尾の改行を出力できます。 これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。 テストケース 各テストケースの"String" W H後に、予想される出力が続きます。 "Hello, World! " 5 4 Hello , ! dlroW "+--+|||+--+|||" 4 5 +--+ | | | | | | +--+ ">v<^" 2 2 >v ^< "rock beats scissors beats paper beats " 11 10 rock beats …

3
スラッシュの描画
次のように、Xとで構成されるテキストの長方形ブロックを取り込むプログラムを作成します。.A ...... ..XX.. .X..X. .XXXX. .X..X. .X..X. 出力は、このグリッドの表現が45度スラッシュを描くことによって反時計方向に回転-コンテキストに応じて前方または後方-どこでもX国境.(残りを埋めるスペースを伴う)またはグリッドの側面を: /\/\ / /\ \ \/ / \ /\/ /\ \ \ / \/ \ \ \ \ \/ X入力の 'の形状がスラッシュによって維持されている限り、末尾と先頭のスペース(および改行)の数は重要ではありません。の余分な行や列を削除しても構いませ.ん。 I / Oの場合、stdin / stdout / files / command lineパラメーターの任意の組み合わせを使用できます。たとえば、スクリプトはX.パターンのファイル名を取得し、スラッシュパターンでファイルを書き換えます。または、スクリプトはX.標準入力から1行ずつパターンを取り(d完了したら押す)、結果を標準出力に出力します。 入力は任意に大きくなる場合がありますが、常に適切にフォーマットされていると想定できます。 / \改行以外の文字は出力に含まれません。 得点 バイト単位の最短コードが優先されます。非ASCII文字を使用する場合は、https://mothereff.in/byte-counterをバイトカウンターとして使用します。 ボーナス:プログラム内の1文字を変更(削除ではなく置換)できる場合は、50バイトをマイナスして、時計回りに45度回転したスラッシュグリッドを出力します。例: /\/\ / /\ \ / \ …

8
フランス語で数字を綴る
英語で数字を数字に変換するという課題がありましたが、それはあまりにも簡単でした。0〜100の数字を指定すると、対応する数字をフランス語で出力することになります。フランスの数字システムは、英語の数字システムと比較して、その背後にあるより複雑なロジックを持っています。 数字 --------------- 0ゼロ(アクセントに注意) 1国連 2ドゥ 3トロワ 4キャトル 5チンク 6 6 9月7日 8 huit 9ヌーフ 10ディックス 11オンズ 12ダウズ 13トライズ 14クォート 15キンゼ 16つかむ 9月17日(文字通り10 7) 18 dix-huit 19ディックスニューフ 20ヴィント 21 vingt et un(ハイフンなし) 22ヴィントドゥ ... 30トレンテ ... 40隔離 ... 50シンカンテ ... 60ソイシャンテ ... 70 soixante-dix(文字通り60) 71 soixante et onze ... 80 …

9
サルティンチャレンジ
ASCII 塩味クラッカーは次のとおりです。 _________________ | . . . | | . . | | . . . | | . . | | . . . | |_________________| 2つのクラッカーが積み上げられています。 _________________ | . . . | | . __________|______ | . | . . . | | .| . . | | …

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