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

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

1
長方形の円パッキング
あなたの仕事は、N個の円が持つことができる最大半径を見つけ、それでもX×Yピクセルの大きさの長方形の内側に収まるプログラムを書くことです。(このウィキペディアの記事と同様)プログラムは、これらのN円の最大可能半径と最適位置を見つけて 、 2つの円が重なることはありません すべての円が長方形の内側に収まります。 次に、プログラムはこれをコンソールに出力します。 Highest possible radius: <some_number> Circle 1 Focus: (x, y) Circle 2 Focus: (x, y) ... Circle N-1 Focus: (x, y) Circle N Focus: (x, y) (明らかに、some_numberをプログラムが計算する半径、Nは最終的に使用する円の数、xとyは円の実際の座標に置き換える必要があります) 最後に、これらの円が描かれた画像を作成して保存する必要があります。 ルール: このプログラムは、任意のサイズの長方形と任意の数の円で実行する必要がありますが、有効な答えを得ることができます。コマンドライン引数、ユーザー入力、ハードコードされた変数など、必要なものを使用できます。 円が重なっている場合や、ボックスの内側に完全に収まらない場合、提出は無効です。 各円の半径は同じでなければなりません。 これを合理的かつ実行可能にするために、すべての数値は小数点第2位まで正確でなければなりません。 これはコードゴルフなので、最短のプログラム(2014年10月28日現在)が優勝します。

2
教授のタイピングをエミュレートする
教授のタイピングをエミュレートする バックグラウンド 残念ながら、教授はキーボードを適切に使用することができません。Shiftキーを使用するつもりのときはいつでも、入力する前にCaps Lock 1回押します。自分で訂正する必要はありません。が必要なキーが2つ以上連続している場合Shift、Caps Lock最初のキーの前に押し、他のキーの前には何もしません。 彼の秘書として、私はこの効果を再現して、私ではなく彼が彼の電子メールに返信するのは彼だと人々に思わせるようにしたいと思います。彼はタイピングが愚かに見えることを知っていますが、気にしません。 仕事 いくつかのテキストのSTDINまたはファイル入力を受け取り、そのテキストを教授が入力したかのように出力するプログラムを記述します。 これはコードゴルフであり、標準の抜け穴は許可されていません。 キーボード・レイアウト Default: ` 1 2 3 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] a s d f g h j k l ; ' # \ …

7
Google Code Jam-新しい宝くじゲーム
私はWebを見回していて、このGoogle Code Jamパズルを見つけました。本当に気に入ったので、ここに投稿することにしました。 新しい宝くじゲーム 宝くじが変わります!宝くじには、ランダムな当選番号を生成するマシンがありました。しかし、不正行為の問題により、宝くじは別のマシンを追加することを決定しました。新しい当選番号は、2つのマシンによって生成された2つの乱数間のビットごとのAND演算の結果です。 XとYのビットANDを見つけるには、両方をバイナリで記述します。その結果、バイナリの結果のビットは、XとYの対応するビットが両方とも1の場合は1になり、それ以外の場合は0になります。ほとんどのプログラミング言語では、の-ANDビット単位のXとYが書かれているX&Yを。 例:古いマシンは7 = 0111を生成します。新しいマシンは11 = 1011を生成します。当選番号は(7 AND 11)=(0111 AND 1011)= 0011 = 3になります。 この措置により、宝くじは不正請求のケースを減らすことを期待していますが、残念ながら宝くじ会社の従業員は次の情報を漏らしました:古いマシンは常にA未満の負でない整数を生成し、新しいマシンは常に生成しますBより小さい負でない整数。 カタリナはこの宝くじに当たって、それを試すために、K未満のすべての負でない整数を購入することにしました。 A、B、およびKが与えられた場合、カタリナは、マシンが彼女を勝者とする数値のペアを生成できるさまざまな方法で知りたいと考えています。 彼女を助けてくれませんか? 入力 入力の最初の行は、テストケースの数を示します。T行が続き、各行には3つの数値AB Kが付いています。 出力 各テストケースについて、「Case #x:y」を含む1行を出力します。xはテストケース番号(1から開始)であり、yはマシンがCatalinaを勝者にするために生成できる可能なペアの数です。 限界 1≤ T ≤100小セット 1≤ A ≤1000 1≤ B ≤1000 1≤ K ≤1000大規模データセット 1≤ A ≤109 1≤ B ≤109 1≤ K ≤109サンプル …
8 code-golf 

6
ラッキーだ
Google検索の最初の結果のコンテンツを返す最短の関数を記述します(「私は幸運を感じています」)。 例: lucky('cat'); 次のようなものを返す可能性があります: <!DOCTYPE html> <html> <head> <title>Cats are cool</title> <meta charset="utf-8" /> </head> <body> <h1>CAAAAAAAAAAATSSSSSSSSSS!!!!!!!!</h1> <p> Cats are so cool! </p> </body> </html>
8 code-golf 

1
マンハッタン警察
前書き あなたはニューヨーク市警の警察署長であり、すべての道路がパトロールされるように警察官を配置するように命じられています。ただし、部隊のスタッフは不足しています。つまり、できるだけ少ない将校を配置する必要があります。 チャレンジ ブロックのマップが与えられたら、道路を確保するために必要な最少数の将校を返さなければなりません。 ルール 警察官には、L警官、T警官、クロス警官の3種類があります。T警官は3方向のみを見ることができます。L警官は、垂直な2つの通りを見下ろすことができます。クロス警官は、4つの通りすべてを見下ろすことができます。 マップは、スペースで区切られた数値としてargvまたはSTDINを介して提供されます。数値は、各列のブロック数を表します。例えば: 入力2 1は次のマップを表します。 入力3 1 2 4は次のマップを表します。 警察官は交差点にのみ配置することができ、その視界はブロックの側面にのみ沿うことができます(警官は人が住んでいないエリアを覗くことはできません)。 警官は1ブロックしか見ることができず、別の警察官が見ている通りに沿って見ることはできません。つまり、視線が重なってはいけません。 例 入力: 2 1 出力: 4 入力: 2 2 出力: 4 入力: 3 1 4 1 5 9 出力: 22 勝利 最短のコードが優先されます。
8 code-golf 

1
スパイラルポリゴン
上記のような一連の接続されたポリゴンを描画します。 ただし、上の図に示されていないのは、連続する頂点によって形成されるらせんです。 これらの制限は、1つのスパイラルしかマークされないことです。すべてのらせんをマークする必要があります。これは、上記の各スパイラルを回転させて、最大のポリゴンの各頂点から始まるスパイラルがあるようにすることで実行できます。 スパイラルはすべて1つの色である必要がありますが、残りの画像は別の色です。 最も内側のポリゴンは完全にらせんの色である必要があります。 ルール 関数またはプログラムで引数{n、s、p、a}を受け取ります n =内側の反復(ポリゴンの数) s =(通常の)多角形の辺(n> = 3と想定する場合があります) p =(ポリゴンAの頂点から対応する反時計回りの「内側」の頂点までの直線距離)/(Aの辺の全長)。したがって、図の場合、pは約1/3になります。これは、内側の各ポリゴンが、大きい方のポリゴンの辺をその辺の約1/3で満たすためです。 a =外部ポリゴンの半径(外接) n、s、p、またはaの値の制限は、人間がこの種の描画として認識できるものに基づいています。(例:影付きの円なし)および常識(s> = 3、n> = 1) 幸せなゴルフ!最短のプログラムが勝ちます。

2
¿Yo Quiero jQuery?
セットアップ あなたは、与えられた簡単なWebページを 11個の要素と: 順番にinputIDがi1から10の要素i10 outputIDを持つ1つの要素out input要素にはvalue、HTMLソースで定義された属性があります。与えられた入力の値は、から0までの整数10です。 このWebページにはコアjQuery 1.10.1ライブラリ(フィドルで見られる)が装備されており、DOMが読み込まれるとすぐにコードブロックを実行します。 チャレンジ 6つの特定の課題を以下に示します。いずれの場合も、目的はの関数を計算しinput、計算結果をの内部HTMLに配置することoutputです。各課題は、他の課題から独立して解決されるべきです。課題の解決策は、計算/出力を実装するコードのブロックです(たとえば、フィドルの「Javascript」ウィンドウのコード)。ソリューションの長さは、このコードブロックの長さ(バイト単位)です。 これはすべて、かなり興味深い制限ではないとしても、非常に単純に思えます。 あなたのコードは... jQuery関数$()を呼び出して引数を渡す 変数を定義して使用する 使用する this 任意のjQueryオブジェクトの任意のプロパティを読み取る(.length最も役立つ) 関数/ラムダを定義します。これらは後で呼び出され、変数に格納され、引数として渡されます。関数はreturn、必要に応じて引数と値を受け入れることができます。 jQuery DOMトラバーサルメソッドのいずれかを呼び出す 任意の呼び出しのjQuery DOM操作方法を、除いてwidth、height、innerWidth、innerHeight、outerWidth、outerHeight、offset、position、replaceAll、replaceWith、scrollLeft、scrollTop、css、prop、removeProp、呼び出されない可能性があります 演算子を使用:オブジェクトの作成{}; 配列の作成/インデックス参照/フィールド参照[]、関数/メソッドの呼び出し()、文字列の連結+、および割り当て= 文字列リテラルを使用する あなたのコードは... 上記以外の演算子を使用する 使用任意の文字列リテラルではありませんリテラル 呼び出し任意の具体的に除外上記以外の関数/メソッド 使用任意の制御構造やキーワードを(例えばfor、while、try、if、with、など)、除くthis、var、let、関数やラムダ でDOMを操作する任意のコードの注入の結果は(より下記参照)する方法 上記以外の非ユーザー定義変数または非ユーザー定義フィールド/プロパティにアクセスする 6つの課題 すべてのinput値の合計を計算し、結果をの内部HTMLに配置しoutputます。 すべてのinput値の最大値を計算し、結果をの内部HTMLに配置しoutputます。 すべてのinput値の積を計算し、<= 2その結果をの内部HTMLに配置しoutputます。すべての入力値がある場合は> 2、場所0の内側のHTMLの中へoutput。 すべてのinput値のモーダル値(つまり、頻度が最も高い値)を計算し、結果をの内部HTMLに配置しoutputます。モーダル値が一意でない場合は、いずれかのモーダル値をの内部HTMLに配置しoutputます。 させるI1入力の値もi1、I2入力の値もi2入力値のシーケンスが場合など、I1... I10を形成フェンス付きのI1 < I2ところ、"TRUE"うち内側のHTMLへoutput。それ以外の場合"FALSE"は、出力の内部HTMLに配置します。具体的には、フェンスの条件はI1 < I2 > I3 < I4 > …

2
Rosetta Stoneチャレンジ:Run-Length Encoding v2.0
ロゼッタストーンチャレンジの目標は、できるだけ多くの言語でソリューションを作成することです。あなたのプログラミング多言語主義を自慢して見せてください! チャレンジ ランレングスエンコーディングを最初に実行しましたが、単一文字のランのみを考慮しました。もちろん、複数の文字の実行を考慮すると、さらに節約できる場合があります。 例を挙げましょうaaaxyzxyzxyzdddd。これはに圧縮できます3a3{xyz}4d。あなたの仕事は、大文字と小文字を区別する文字とスペースの文字列を与えられ、複数文字の実行に対してランレングスエンコーディングを使用して最適に圧縮する関数のプログラムを書くことです。 関数の引数STDINまたはARGVを介して入力を受け取り、結果を返すか、STDOUTに出力できます。 実行は入れ子にしてaaabbbaaabbbはいけません。したがって3a3b3a3b、ではなく 、でなければなりません2{3a3b}。つまり、文字列は1回のパスでエンコード(またはデコード)する必要があります。 最適な圧縮の結果 ランレングスエンコーディングの素朴なアプリケーションが次善の結果をもたらす可能性があるいくつかの例: abab 「圧縮」してはならない 2{ab} aaaabcdeabcde圧縮されてはならない4abcdeabcdeが、3a2{abcde}その代わり。 2つの最適なバージョン(例:aaand 2aまたはabcabcandおよび2{abc})がある場合、どちらの結果でも問題ありません。 例 Input Output aa aa -or- 2a aaaaaAAAAA 5a5A ababa ababa abababa a3{ba} -or- 3{ab}a foo foo bar 2{foo }bar aaaabcdeabcde 3a2{abcde} xYzxYz xYzxYz -or- 2{xYz} abcabcdefcdef abcab2{cdef} pppqqqpppqqq 3p3q3p3q pppqqqpppqqqpppqqq 3{pppqqq} 得点 各言語は、最短のエントリーを書ける人に関して個別のコンテストですが、全体的な勝者は、これらのサブコンペティションのほとんどを勝つ人です。これは、多くの珍しい言語で答える人が有利になることを意味します。コードゴルフは、言語に複数の解決策がある場合のタイブレーカーです。プログラムが最も短い人がその言語の功績を認められます。 同点の場合、勝者は2番目に多く送信された人(以下同様)になります。 …

9
細分割和シーケンス
順番にリストされている、1を超える整数の基数の数字を検討します。数字のすべてのチャンクが奇数の長さになるまで、それらを正確に半分に繰り返し再分割します。 Base Digits Subdivided Digit Chunks 2 01 0 1 3 012 012 4 0123 0 1 2 3 5 01234 01234 6 012345 012 345 7 0123456 0123456 8 01234567 0 1 2 3 4 5 6 7 9 012345678 012345678 10 0123456789 01234 56789 11 0123456789A 0123456789A 12 …
8 code-golf  math 

3
2点間の懸垂線(吊り鎖)
これは、Calvin's Hobbiesがコミュニティに残したいくつかの課題の 1つです。 理想的な吊りロープまたはチェーンが作る曲線は、懸垂線です。 画像はBin im Garten、Wikimedia Commons経由。CC-By-SA 3.0ライセンスの下で使用されます。 2つの点(x 1、y 1)、(x 2、y 2)、および「ロープの長さ」Lを指定して、平面の象限1にカテナリーをイメージとして描画するプログラムを記述します。Lは2点間の距離より大きくなります。 また、拡大縮小のために、画像の左側と下側(最小400x400 px)に軸を描画する必要があります。0から100の範囲のxとyからのみ象限を描画します(ポイントは範囲内にあると想定できます)。 (x 1、y 1)、(x 2、y 2)の端点に点または類似の点を描画して、それらを区別する必要があります。曲線は、これらのポイント間のスペースにのみ描画されます。

6
カーブステッチ
カーブステッチは、次のようにカーブを作成するために複数の直線を「ステッチ」するプロセスです。 カーブステッチの説明については、このWebサイトにアクセスしてください。 上の画像に示すように、画面の左上に曲線を描画します。 整数所与n描画する線の数である(STDINまたは関数パラメータを介して)、および整数p画素、出発点の間隔である、直線カーブを描きます。 水平/垂直線が必要であり、行数の一部である必要があります。 出力例: n = 25、p = 15 n = 20、p = 20 これはコードゴルフの挑戦なので、最短のコードが勝ちます。

3
馬を強制する
これは単純なものです。最短のブラウザスクリプトを作成して、Webページ上のすべての力の外観を馬に変更します。このスクリプトは、コンソールに貼り付けられ、ほとんどの最新のブラウザーで機能する必要があります。 forceという単語のすべての出現とforceという単語の共役(強制、強制、強化)を置き換える必要があります。ケースも保存する必要があります。 ページがブラウザに表示されているときに表示されないオカレンスは変更しないでください。たとえば、メタタグやコメント。 例 これはfOrcE logです。それはそれに触れる人々を非常に強力にします。強制しないでください。 これはhOrsE logです。それを触る人はとても馬鹿げている。それを馬鹿にしようとしないでください。 残念ながら、これはJavascriptのみの課題です。最短のコードが優先されます。

6
ハーモニカの演奏を手伝って
昨日、私はハーモニカを買いました: 図1:ハーモニカ。 しかし、人々を感動させ、大人になった男性を泣かせてしまうソウルフルブルースハーモニカを演奏できるという私の夢は、次の2つの問題にすぐに打ちのめされました。 ハーモニカは特定のノートのみを再生できます。 私はハーモニカを弾くのがうんざりです。 ハーモニカのスキルが不足しているにもかかわらず、私が演奏できる曲はまだいくつかあります。しかし、ハーモニカでいくつかの曲を演奏できるかどうかはすぐにはわかりません。音楽の音符を考慮して、ハーモニカで演奏できるかどうかを判断するプログラムを作成します。 上の写真が示すように、私のハーモニカには10個の穴があります。それぞれの穴で、息を吸い込んだり吸い込んだりすることができます-私が選択した穴と、それに吸い込むか吐き出すかによって、結果の音のピッチが変わります。吐き出すときと吸い込むときのピッチは穴ごとに異なりますが、同じ音符になる組み合わせもあります。全体として、私のハーモニカは19の異なるピッチを演奏できます。ピッチは音楽の科学表記法で表示されます。文字は音符を表し、数字はそのオクターブを表します。 Hole Breathing Note 1 Exhale C4 1 Inhale D4 2 Exhale E4 2 Inhale G4 3 Exhale G4 3 Inhale B4 4 Exhale C5 4 Inhale D5 5 Exhale E5 5 Inhale F5 6 Exhale G5 6 Inhale A5 7 Exhale C6 7 …

1
PNGピクセルフォース
チャレンジ Pixel Worldは、重力、電磁気、および核力が存在しないPNG画像です。「ピクセルフォース」として知られる特殊部隊は残りすべてです。この力を次のように定義します F p-> q = a *(p * q)/(r * r)* r̂ Fピクセル力であるp及ぼすにはq a アダムスの定数で、次のように定義されます a = 4.2 * 10 ^ 1 pそしてq二つの画素の電荷です r以下からの距離pには、q r̂ 正のx軸から反時計回りに測定したラジアン単位のrの方向です* *どの方向にも許容値は無限にあります。たとえば、6.28、0、-6.28、および-12.57ラジアンはすべて同等であり、すべて受け入れられます。 ピクセルには次の3つのタイプがあります。 赤いピクセルは正のピクセルの電荷を保持します 黒いピクセルは負のピクセルの電荷を保持します 白いピクセルはゼロの電荷を保持します ピクセルワールドの左下のピクセルはにあり(0, 0)ます。正のy軸はページの上に下がり、正のx軸は右に下がります。ピクセルに加わる力の合計は、そのピクセルに加えられたすべての力のベクトルの合計です。電荷が反発するように、反対の電荷が引き寄せられます。 ピクセルワールドへのファイルパス、xおよび2つの整数とを指定するとy、位置にあるピクセルに加えられた力の合計(x, y)がフォーマットで出力されます<magnitude>\n<direction>。出力は少なくとも小数点以下2桁まで正確でなければなりませんが、必要に応じてさらに出力することもできます。方向はラジアンで出力する必要があります。整数xとyは、世界の境界内にあることが保証されています。 成果物 プログラムと、プログラムの実行に使用できるコマンドを含める必要があります。2つの例: python AbsolutelyPositive.py "C:\ Pixtona.png" 50 40 java UltimateAttraction "C:\ Jupix.png" 30 …
8 code-golf 

1
グラップリングフックで木々の間をスイング
森の中の小道を見つけたので、森に沿って旅行する予定です。しかし、あなたが旅を始める直前に、地面は溶岩に変わります。 あなたはなんとか最も近い木を急いでなんとかします(どうしても木は燃えませんでした)。答えは、プログラミングの課題にぴったりだと思います。魔法のグラップリングフック(先にカヌーで作ったもの)を使って、木や枝を振り回すことができます。 ただし、そこにたどり着くためにどの木や枝を振り回す必要があるかはわかりません。幸い、あなたにはプログラミングのスキルがあるので、腕にプログラムを描き、どの木にスイングするかを教えることにしました。ただし、腕には表面積があまりないため、プログラムをできるだけ小さくする必要があります。 nby m配列を使用してフォレストを表すことができます。次の文字が配列を構成します。 T:木。ここに着陸できます。これにはグラップリングフックを使用できません。あなたはこれを通り抜けることができます。 P:と同じように機能しTます。ここから始めます。 Q:と同じように機能しTます。これが目標です。 +:ブランチ。ここに着陸することはできません。これでグラップリングフックを使用できます。あなたはこれを通り抜けることができます。 *:人食いクモ。ここに着陸すると死ぬ。これでグラップリングフックを使うと死ぬ。これを振り回すと死にます。 -:通常の地面、言い換えれば溶岩。ここに着陸することはできません。これにはグラップリングフックを使用できません。あなたはこれを通り抜けることができます。指定された配列の外側のすべての領域がこのタイプです。 以下は、森がどのように見えるかの例です。 y ----T---+------12 ---------------11 ----T---+---T--10 ---------------9 T-+-T-+-T------8 ---------------7 ------------+--6 ----+----------5 +-------+------4 ---------------3 ----P---+-*-Q--2 ---------------1 T-+-T-+-T------0 012345678911111 x 01234 (x,y)座標軸に示されているように、座標をと表記します。 あなたはから始めてP、あなたの方法を作らなければなりませんQ。これを行うには、ブランチを使用Tしてツリーからツリーにスイングします。グラップリングフックは、直交するブランチ(つまり、現在のx位置またはy位置と同じブランチ)に取り付けることができます。たとえば、サンプルのフォレストの位置にいる場合は、グラップリングフックを、、またはの位置に取り付けることができます。あなたと枝の間に木や他の枝があったとしてもこれを付けることができます。T+(4,8)(2,8)(6,8)(4,5) グラップリングフックを枝に取り付けたら、最初の位置と枝の間の距離の2倍に等しい距離を枝の方向に移動します。言い換えると、最終位置は、ブランチから開始位置と同じ距離で、ちょうど反対側になります。運動がどのように機能するかについてのより正式な定義は以下のとおりです。の添え字vは、最終位置、u初期位置、およびb分岐の位置です。 (xv、yv)= (2 xb− xあなた、2 Yb− yあなた)(バツv、yv)=(2バツb−バツあなた、2yb−yあなた)(x_v, y_v) = (2x_b-x_u, 2y_b-y_u) 最初の位置と最後の位置の間にクモがいる場合は、そこに移動できないことに注意してください。たとえば、サンプルフォレストでは、からスパイダーにぶつかるため、から(4,2)へのスイング(12,2)はできません(10,2)。 目標は、このスウィングスルーブランチ法を使用して、可能な限り少ないスイングでポイントPからポイントに移動することです。たとえば、フォレストの例では、最短パスは次のとおりです。Q 以下から(4,2)の(4,8)使用(4,5) 以下から(4,8)の(0,8)使用(2,8) 以下から(0,8)の(0,0)使用(0,4) 以下から(0,0)の(4,0)使用(2,0) 以下から(4,0)の(4,10)使用(4,5) 以下から(4,10)の(12,10)使用(8,10) …

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