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

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

7
番号のソートされた字句分割
課題は実に簡単です。数字が与えられたら、その数字を小さな数字の配列に分割し、結果の数字が減少しないようにします。キャッチは、配列の長さが最大になるように分割する必要があるということです。 混乱した? STDIN(または最も近い代替)、コマンドライン引数、または便利で明白な入力形式の関数引数を介して正の整数が与えられます。 数値の10進数を連続した互いに素なグループに分割する必要があります。 これらの数字グループで表される数値の配列は、グループを再配置せずに(通常の減少しない順序で)ソートする必要があります。 そのようなパーティションが複数存在する場合は、入力をできるだけ多くの数にパーティション分割する必要があります。同数の場合、そのような結果を1つ返します。 配列をSTDOUT(または最も近い代替)に出力するか、関数の戻り値として出力できます。STDOUT(または最も近い代替)の場合、配列は便利で明確なリスト形式で印刷する必要があります。 分割番号の先頭にゼロを付けないでください。そのため、たとえば1002003、[1, 002, 003]またはとして印刷することはできず[1, 2, 3]、それに対する唯一の有効な答えは[100, 2003]です。 テストケース: 123456 -> [1, 2, 3, 4, 5, 6] 345823 -> [3, 4, 5, 8, 23] 12345678901234567890 -> [1, 2, 3, 4, 5, 6, 7, 8, 90, 123, 456, 7890] 102 -> [102] 302 -> [302] 324142 …

9
不等式の連鎖を評価する
不等式のチェーンが真であるか偽であるかを評価するコードを記述します。入力例は文字列です 3<=4!=9>3==3 各コンポーネントが真であるため、これは真実です。 (3<=4) and (4!=9) and (9>3) and (3==3) 入力: 1つ以上の不等式のチェーンを表す文字列。許可される比較演算子は == equals != does not equal > is greater than >= is greater than or equal to < is less than <= is less than or equal to 許可される数字は一桁の数字です0通過9。スペース、括弧、その他の記号はありません。 出力: 一貫したTruthyまたはFalseyの値としての不平等の正しさ。一貫性とは、すべてのTruthy出力が同じであり、すべてのFalsey出力が同じであることを意味します。 制限: この課題の目的は、不平等を処理するコードを作成することです。不平等は、チェーン内の単一の不平等であっても、それらをコードとして評価することではありません。そのため、Pythonのような方法eval及びexecその評価または実行コードが禁止されています。文字列として名前が指定されたメソッドまたは演算子を検索する関数も同様です。また、評価を行うためのプロセスやプログラムを起動することも許可されていません。 テストケース: 3<=4!=9>3==3 True 3<=4!=4 False …
17 code-golf 

6
画像の色相をトレースする
このスタックスニペットに画像をロードし、マウスをその上に移動します。カーソルポイントから始まる、色相角に続く黒い曲線が描画されます。 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>canvas{border:1px solid black;}</style>Load an image: <input type='file' onchange='load(this)'><br><br>Max length <input id='length' type='text' value='300'><br><br><div id='coords'></div><br><canvas id='c' width='100' height='100'>Your browser doesn't support the HTML5 canvas tag.</canvas><script>function load(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=setupImage,e.readAsDataURL(t.files[0])}}function setupImage(t){function e(t){t.attr("width",img.width),t.attr("height",img.height);var e=t[0].getContext("2d");return e.drawImage(img,0,0),e}img=$("<img>").attr("src",t.target.result)[0],ctx=e($("#c")),ctxRead=e($("<canvas>"))}function findPos(t){var e=0,a=0;if(t.offsetParent){do e+=t.offsetLeft,a+=t.offsetTop;while(t=t.offsetParent);return{x:e,y:a}}return void 0}$("#c").mousemove(function(t){function e(t,e){var a=ctxRead.getImageData(t,e,1,1).data,i=a[0]/255,r=a[1]/255,o=a[2]/255;return Math.atan2(Math.sqrt(3)*(r-o),2*i-r-o)}if("undefined"!=typeof img){var a=findPos(this),i=t.pageX-a.x,r=t.pageY-a.y;$("#coords").html("x = "+i.toString()+", y = "+r.toString());var o=parseInt($("#length").val());if(isNaN(o))return void …

3
単語内の単語内の単語。。。
このアルファベットの大文字のピクセル化されたフォントでは、すべての文字は幅5単位、高さ5単位です。 ███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ …

20
ランダムな整数を生成します
あなたのプログラム/機能は 正確に1つの整数を出力します 正の確率で整数を出力します 少なくとも50%の確率で、1.000.000より大きい整数または-1.000.000より小さい整数を出力します。 出力例(すべてが可能である必要があります): 59875669123 12 -42 -4640055890 0 2014 12 24 -7190464664658648640055894646646586486400558904644646646586486400558904646649001 明確化: 末尾の改行が許可されます。 先行ゼロは許可されません。 -0 許可されています。 最短のコードが優先されます。

8
相対対絶対
このグリッドのポイントAで北を向いている人が、方向を緑のパス(グリッド線のみに従うことができるため)に沿ってポイントBにしたい場合、次のように伝えます。 ゴーNorth, North, West, East, East, South, East, East。 または同等に ゴーForward, Forward, Left, Back, Forward, Right, Left, Forward。 (Right、Left、またはBackのコマンドが暗黙的にその方向に回転することを意味する場合、次に進みます。) 同じポイントにだけではなく、同じパスに沿ったこれらの絶対方向と相対方向の間で変換する1つの引数を持つ関数を作成します。指示された人が常に北を向いていると仮定します。 引数が文字の文字列の場合、NSEW同等の相対方向を返します。 たとえばf("NNWEESEE")、文字列を返しますFFLBFRLF。 引数が文字の文字列の場合、FBLR同等の絶対方向を返します。 たとえばf("FFLBFRLF")、文字列を返しますNNWEESEE。 空の文字列はそれ自身をもたらします。他の入力ケースは想定しません。 言語に関数や文字列がない場合は、最も適切と思われるものを使用してください。 バイト単位の最短コードが優先されます。
17 code-golf 

7
耳、指、頭から犯罪者を見つける
指紋とDNA検査の発見に先立ち、英国の警察は人体計測システムを使用して、繰り返し犯人を特定しました。犯罪者の身体の特定の部分が測定され、記録に保存されました-身体のこれらの部分は、成人後にサイズが変化しないと仮定されました。このシステムは bertillonnageました。 次の図は、警察がこれらの記録にすばやくアクセスするために使用するファイリングシステムを示しています。 図1:番号付きの引き出し付きのファイリングシステム。 注:イメージが表示されない場合は、imgurミラーを試す か、自分でコンパイルします。 ファイリングキャビネットには、81個の番号付きの引き出しがあります。各引き出しにはカードが含まれており、各カードには犯罪者の身体の特定の部分の測定値が含まれています。 頭の長さ(H) 頭の幅(B) 右耳の幅(E) 人差し指の長さ(F) 各測定は、小、中、大のいずれかに分類されます。 例えば、引出し56は、以下の特性を有するカードを含んでいる:小H、大きなB、培地E、及び小F.これは文字を用いて表記することができS、MおよびL小、中、大の代わりに: SH,LB,ME,SF サイズ文字が最初に表示され、次に測定値が表示されます。さらに、感嘆符!を前に置いてネガティブにすることもできます。 !SH,LB,!ME,SF これは、次の特性を持つカードを示します:小Hではなく、大B、中Eではなく、小F。これらの特性(58、60、61、および63)を持つカードを含む4つの引き出しがあります。 あなたの仕事は、いくつかの特性を示す文字列が与えられると、それらの特性を持つカードを含むすべての引き出しを出力するプログラムを書くことです。特定の特性を持つカードを含むドロワーがない場合、output 0。 以下に入力と出力の例を示します。 入力:SH,LB,ME,SF 出力:56 入力:!SH,LB,!ME,SF 出力:58,60,61,63 入力:SB,!MF,!LF 出力:1,2,3,4,5,6,7,8,9 入力:MH,!MH 出力:0 これはコードゴルフなので、最短のエントリーが勝ちです。仕様が明確でない場合は、コメントで質問してください。
17 code-golf  math 

7
2種類の出力
チャレンジ 私はあなたに別のスパイ対スパイチャレンジピッチング難読化ツール対クラッカーを紹介します。ただし、この場合、保護されるデータムは入力ではなく出力です。 チャレンジのルールは簡単です。次の仕様でルーチンを作成します。 ルーチンは任意の言語で作成できますが、320バイトを超えることはできません。 ルーチンは、入力として3つの32ビット符号付き整数を受け入れなければなりません。3つの引数を受け入れる関数、単一の3要素配列を受け入れる関数、または標準入力から3つの整数を読み取る完全なプログラムの形式をとることができます。 ルーチンは、1つの符号付き32ビット整数を出力する必要があります。 可能なすべての入力に対して、ルーチンは2〜1000(両端を含む)の一意の値を出力する必要があります。ルーチンが出力できる一意の値の数は、そのキーと呼ばれます。 例として、Cプログラム int foo( int i1, int i2, int i3 ) { return 20 + (i1^i2^i3) %5; } それは(たぶん)のみ出力9つの値ことができるので、9のキーを有し16、17、18、19、20、21、22、23、および24。 追加の制限事項は次のとおりです。 ルーチンは完全に決定的で時不変でなければならず、同一の入力に対して同一の出力を返します。ルーチンは、疑似乱数ジェネレーターを呼び出さないでください。 ルーチンは、ファイル内のデータ、システム変数、または難解な言語機能などの「隠された変数」に依存しない場合があります。たとえば、コード自体で定数が明確に定義されていない限り、ルーチンは通常定数を参照しないでください。コンパイラーの癖、数学的に未定義の演算からの出力、算術エラーなどに依存するルーチンもお勧めできません。疑問がある場合は、お問い合わせください。 ユーザー(コーダー)は、ルーチンが生成できる一意の出力の数を正確に知っている必要があり、各出力を生成する少なくとも1つの入力シーケンスを提供できる必要があります。(潜在的に数百の一意の出力が存在する可能性があるため、このセットはキーが競合する場合にのみ要求されます。) この問題は、以前の暗号化に比べて従来の暗号化との類似点がはるかに少ないため、より多くのユーザーがアクセスできるようになると期待しています。 創造的であればあるほど良い。 スコアリング バイトカウントごとの最短の非クラック送信が勝者として宣言されます。 混乱がある場合は、お気軽に質問またはコメントしてください。 カウンターチャレンジ 独自のルーチンを送信した人を含むすべての読者は、送信を「クラック」することをお勧めします。キーが関連するコメントセクションに投稿されると、提出物がクラックされます。提出物が変更またはクラックされることなく72時間持続する場合、「安全」と見なされ、その後のクラックの成功はコンテストのために無視されます。 読者ごとに提出ごとに1回のクラッキング試行のみが許可されます。たとえば、ユーザーXに「あなたのキーは20」と送信したが間違っている場合、ユーザーXは私の推測を間違っているとして放棄し、その送信に対して追加の推測を送信できなくなります。 クラックされたサブミッションは競合から排除されます(「安全」でない場合)。編集しないでください。読者が新しいルーチンを提出したい場合は、別の回答で提出する必要があります。 クラッカーのスコアは、(準拠しているかどうかにかかわらず)提出された数です。同一のカウントを持つクラッカーの場合、ランク付けは、クラックされたすべての提出物の合計バイト数によって決定されます(高いほど良い)。 最高スコアのクラッカーが、勝者ルーチンの開発者とともに勝者として宣言されます。 自分の提出物をクラックしないでください。 幸運を祈ります。:) リーダーボード 最終更新:9月2日午前10時45分(EST) 不動の障壁(亀裂のない提出物): CJam、105 [デニス] 止められない力(クラッカー): デニス[ Java、269 …

4
場所にブレースが存在する場合にブレースをスペースで置き換えるプログラムを書く
あなたはプロジェクトマネージャーです。ある日、あなたのプログラマーの一つは非常識(行きませんあなたのせいに)とコードベース内のすべての式を取って、自分の無能(約わめき散らす、その場で終了する前に、それらにランダムブラケットを追加してもいないあなたのせい)。これは簡単な修正ですが、何らかの理由でリビジョン管理を使用していません(完全にあなたのせいではありません)。そして、何らかの理由で、他のプログラマーは誰も、不一致のブラケットを修正するためにすべての式を調べることを望みません(ところで、それはあなたのせいではありません)。最近のプログラマーは、自分で考えています。あなたは自分でそれをしなければなりません。ホラー!そのようなタスクはあなたの下にあるはずでした... 入力は単一の行になり、左角かっこ(( [ {)と右角かっこ()がいくつか含まれます) ] }。また、常にではありませんが、コメント(/* */)および文字列リテラル(" "または' ')およびさまざまな数字、文字、または記号を含む場合があります。 対応する反対(コメントまたは文字列リテラルの外側)を持たない少なくとも1つのブラケット(コメントまたは文字列リテラルの外側)があります。たとえば}、{事前のないエラー。別の例:後の(ものがないa )。プログラムは、ブラケットを一致させるために必要な最小数のブラケットをスペースに置き換えます。 例: (4 + (2 + 3))]==> (4 + (2 + 3)) (端における角括弧) ][][[]]==> [][[]](開始時角括弧) ("Hel(o!"))==> ("Hel(o!") (端における括弧) ( /* )]*/==> /* )]*/ (開始時括弧) {()]==> () (中括弧と角括弧) 入力は、最も便利な方法(STDIN、コマンドライン引数、ファイルからの読み取りなど)から取得できます。 同じ数の削除で不一致を解決する方法が複数ある場合は、どちらでもかまいません。 括弧内の不一致のみがあります。文字列リテラルとコメントは常に正しく形成されます。 タイトルはこのSOスレッドから来ています コメントに引用符、引用符に引用符、コメントにコメント、引用符にコメントが含まれることはありません。 これはコードゴルフであるため、最小バイト数が優先されます。仕様が明確でない場合は、コメントで質問してください。

10
シンボル対手紙
シンボル対手紙 ASCII文字は一度分割されており、再び!あなたのセットは、文字と記号です。 手紙 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz シンボル !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~ タスクは、2つのプログラムを作成することです。 プログラムで文字を使用せずに、各文字を 1回だけ印刷します。 プログラムでシンボルを使用せずに、各シンボルを 1回だけ印刷します。 ルール プログラムまたは出力に空白が表示される場合があります。 ASCII以外の文字は使用できません。 出力は、ファイルの内容または名前として標準出力またはファイルに送られます。 入力なし。 出力には、いずれかのセットのASCII文字のみが含まれている必要があります。 プログラムは、1つの例外を除いて、異なる言語または同じ言語で作成できます。 空白の言語は、プログラムだけの1のために使用することができます。 標準の抜け穴が適用されます。 得点 # of characters in program 1 +# of characters in program 2 =Score 最低スコアが勝ちます! 注意: より多くの提出を促すために、プログラムの1つだけの解決策を含む回答を投稿できます。勝つことはできませんが、それでもクールなものを披露することができます。 前の質問でアイデアを刺激したカルビンの趣味に感謝します。

10
単語方程式ソルバーを書く[複製]
この質問にはすでに回答があります: 「無料の空白」を活用する (10回答) 先月閉鎖された。 前書き 次の例を考えてみましょう。 CODE + GOLF —————— GREAT これは、各文字が10進数を表し、単語が自然数を表す方程式です(類似した文字は類似した数字を表し、異なる文字は異なる数字を表します)。タスクは、方程式が正しいように、各文字を数字の値と一致させることです。上記の方程式の1つの解決策は次のとおりです。 9265 + 1278 —————— 10543 あなたのタスク あなたの仕事は、上記のような方程式を解くことができるプログラムまたは関数を書くことです。 入力 入力は、次の形式の文字列です。 [A-Z]+\+[A-Z]+=[A-Z]+ 例: CODE+GOLF=GREAT AA+BB=CC スペースは省略され、大文字のAとZの間の文字のみが使用されます(特殊文字や小文字は使用されません)。 この文字列は、標準入力、ファイル、または関数パラメーターから読み取ることができます。 出力 出力形式には次の2つのオプションがあります。 数字が置換された元の方程式 文字とその値のリスト 複数のソリューションがある場合、それらのいずれか(ただし1つのみ)が返されます。解決策がない場合、プログラムは空の文字列またはnullを返す必要があります。出力は文字列として返すことができ、標準出力またはファイルに書き込むことができます。 例: 9265+1278=10543 A=1 B=2 C=3 (任意の区切り文字を使用できます) ルール 物事を簡単にするために、数字は0から始まりますが、無効な解決策として先頭に0を付けた数字を処理できます。 同様の文字は同様の数字を表し、異なる文字は異なる数字を表します 任意の言語と選択した言語の標準ライブラリを使用できます(外部ライブラリはありません) インターネット上のリソースに接続することはできません(とにかくどうして?) これはコードゴルフタスクで、最短のコードが勝ちます。連続する空白文字は単一の文字としてカウントされます。(したがって、空白で書かれたプログラムが自動的に勝ちます) 私は179文字を使用してややハック的なソリューションを持っています。不明な点がある場合は、コメント欄でお尋ねください。

10
難解な言語のジャンパー用のインタープリターを書く
難解な言語ジャンパーを考えました。後でその理由がわかります。 これは、バイトをセルとして使用するランダムアクセスメモリで動作します。RAMのインデックスはゼロで、最初はゼロで埋められています。 負のインデックスを持つセルにアクセスしようとすると、エラーが表示され、プログラムが終了します。 最後よりも大きいインデックスで読み取りを試みると、ゼロが返されます。 最後よりも大きいインデックスで書き込みを試みる場合、RAMを1024の倍数に増やし、新しいセルをゼロで埋める必要があります(技術的には、RAMを1024の倍数に増やすことはできません。理由はパフォーマンスが向上したためです。 1024の倍数にはできません)。 プログラムには、最初はゼロであるRAM内のセルへのポインターもあります プログラムが実行を開始すると、入力文字列のプロンプトが表示されます(またはコマンドライン引数から入力を取得します)。入力文字列にヌル文字(ゼロバイト)を含めることはできません。次に、ゼロインデックスから始まる入力文字列がRAMに書き込まれます。 プログラムが終了すると、プログラム出力を含むボックスが表示されます-ゼロインデックスから最初のゼロバイトを除くRAMの内容が表示されます さて、最も興味深い部分は構文です。 プログラムは、コマンド(単項演算子-接頭辞)とその引数で構成されます。コマンドと引数は、スペースまたは改行で区切ることができますが、必須ではありません。ただし、引数内のスペースは無効です。たとえば、# 2 = 4有効ですが有効で# 2 = 4 4はありません。 プログラム間でコメントを付けることができます()。コメントはネストできません。たとえば、(abc(def)ghi)コメントは(abc(def)です。コメントはどこにでも配置できます。 #123 RAMポインターを123(任意の正の10進整数またはゼロ)に設定します。 >123 RAMポインターを123(任意の正の10進整数)ずつ増やします。 <123 RAMポインターを123(任意の正の10進整数)減らします。 =123 現在のセルに123(符号なし8ビット10進整数)を書き込みます。 +123 123(符号なし8ビット10進整数)を現在のセル(モジュロ256)に追加します。 -123 現在のセル(モジュロ256)から123(符号なし8ビット10進整数)を減算します。 :123-"goto"-コマンド番号123に移動します(最初は0です)。プログラムのフローはgotoでのみ制御できます-ジャンプする必要があるため、この言語をJumperと呼ぶことにしました。 引数が欠落している場合- ><+-コマンドの場合は1、コマンドの場合は0 と考えて#=:ください。 また、コマンド修飾子があります- ?(コマンドのプレフィックス)、現在のセルがゼロでない場合にのみ次のコマンドを実行し、そうでない場合はそのコマンドをスキップします。任意のコマンドに適用できます。 たとえば、?:17-は、現在のセルがゼロでない場合、コマンド17に進みます。 プログラムが無効であるか、実行時にエラーが発生した場合、メッセージ「エラー」を表示できます。これはCodeGolfであるため、このような短いメッセージは問題ありません。 あなたのタスク この言語の最短のインタプリタを作成します。 いくつかのテストプログラム (prints "Hello world!" regardless of input) =72>=101>=108>=108>=111>=32>=119>=111>=114>=108>=100>=33>= (appends …

19
2つの数値の最大公約数の素因数分解を出力します
タイトルがすべてを語っています。2つの入力32ビット正整数m, n >= 2、gcd(m,n)素因数分解形式で出力。 入力 コマンドライン引数または1行のstdinで問題ありません。ゴルフに適しています。 出力 指数で区切られた単一のスペース(追加のスペースなし)。入力が比較的素数の場合は何も出力しません。 例: $ ./factorize 96 162 2^1 3^1 $ ./factorize 14 15 $ ./factorize 196 294 2^1 7^2 ルール 分解またはGCDに外部リソース、数学ライブラリ、組み込み関数を使用することはできません。例:Java、いいえjava.lang.Math。ruby、no prime_division、perl、no factorなど
17 code-golf  math 

4
怠zyな括弧を終了する
キーボードの括弧はすべて使い古されているため、できるだけ使用しないでください。あなたの課題は、各行の前後に括弧を追加して、括弧を含む行のバランスをとることです。 これは、TI-Basicの自動括弧と文字列の閉鎖(つまりOutput(1, 1, "Hello, World!)に似ています。また、プログラムから貴重なバイトを節約します! 入力例: This line has no parentheses alert(Math.max(1, 2 1+1)*2).toString() function() { alert('Hello, World!'); })( 出力例: This line has no parentheses alert(Math.max(1, 2)) ((1+1)*2).toString() (function() { alert('Hello, World!'); })() 仕様: 入力の各行に対して、 行の括弧のバランスをとるために、必要に応じて行の先頭に開いている括弧を追加し、行の終わりに閉じる括弧を追加します 「バランス」の定義は次のとおりです。 同じ量(と)ラインで 文字列の先頭から始まるすべての部分文字列について、この部分文字列には開き括弧よりも多くの閉じ括弧を含めることはできません たとえば、開き括弧より閉じ括弧が多い(foo))(barため、バランスが取れ(foo))ていません 必要に応じて、コードを短くする場合は、余分な不要な括弧を追加できます 文字列リテラルなどを心配する必要はありません。すべての括弧のバランスを取る必要があると仮定してください 括弧をバランスさせて各行を出力します これはcode-golfなので、バイト単位の最短コードが勝ちます!

7
男がどこへ行くかを予測する
男(0, 0)は、町の北西の角に高さhと幅を持って住んでいwます。毎日彼は自宅から国境(?, w)か国境まで歩いてい(h, ?)ます。次の例では、男性は(3, 3)今日に行きます。 (0, 0) +--+ + + . (0, 4) | + +--+--+ . | + + + + . | (3, 0) . . . . . (3, 4) 男性は各ポイントで少し記録します(+上記の例)。彼がポイントに達するたびに、彼はビットがあれば東に、1そうでなければ南に行きます。彼が去った後、ビットは反転されます。例えば: Day 1: 1--0 1 1 Day 2: 0 1 1 1 Day 3: 1--1--1--1-- Day 4: …

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