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

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

3
2D衝突検出
この挑戦は、私が最近簡単なゲームのために書かなければならなかった実際の衝突検出に基づいています。 2つのオブジェクトが与えられたときに、2つのオブジェクトが衝突(交差)しているかどうかに応じて、真偽値を返すプログラムまたは関数を作成します。 次の3種類のオブジェクトをサポートする必要があります。 線分:2つの端点、つまり(x 1、y 1)と(x 2、y 2)を示す4つの浮動小数点で表されます。エンドポイントが同一ではないと想定することができます(したがって、ラインセグメントは縮退していません)。 ディスク:塗りつぶされた円。3つのフロートで表され、中心(x、y)に2つ、半径rに 1(正)で表されます。 キャビティ:これらはディスクを補完するものです。つまり、空洞は、中心と半径で指定された円形の領域を除き、すべての2D空間を満たします。 プログラムまたは関数は、2つのそのようなオブジェクトを(選択した)識別整数の形式で受け取り、それらの3つまたは4つのフロートを受け取ります。STDIN、ARGV、または関数引数を介して入力を取得できます。入力は、前処理されていない便利な形式で表すことができます。たとえば、8〜10個の個別の数値、2つのコンマ区切りの値リスト、2つのリストなどです。結果を返すか、STDOUTに書き込むことができます。 オブジェクトは少なくとも10 -10の長さの単位で離れているか、その分だけ交差していると仮定することができるため、浮動小数点型の制限について心配する必要はありません。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 テストケース リストベースの入力フォーマットを使用して0、ラインセグメントを、ディスク、1およびキャビティで2表現すると、次のすべてが真の出力を生成するはずです。 [0,[0,0],[2,2]], [0,[1,0],[2,4]] # Crossing line segments [0,[0.5,0],[-0.5,0]], [1,[0,0],1] # Line contained in a disc [0,[0.5,0],[1.5,0]], [1,[0,0],1] # Line partially within disc [0,[-1.5,0.5],[1.5,0.5]], [1,[0,0],1] # Line cutting through disc [0,[0.5,2],[-0.5,2]], [2,[0,0],1] # Line outside …

9
クリスマスギフトを積み重ねる
誰かが急いでクリスマスプレゼントを積み上げており、それは非常に混乱しています。 ======================== | | ======================== ============= | | | | | | | | | | | | ============= ======= | | | | | | ======= =================== | | | | | | =================== ================= | | | | | | | | ================= ======= | | | | …

2
グラフの緊張、パートI:波状のひも
ドメイン[ -3,3 ]で関数f(x)= sin(πx)+ 0.5 sin(3πx)をプロットしてみましょう。これは、ボード上にあるゆるいひもとして解釈できます。それでは駆動させ、N位置でボードに釘を(X 1、Y 1)と(X N、Y N)、X I ∈(-3,3)とY iは ∈[-1,1] 。文字列の最後に位置(-3,0)と(3,0)にある2つのアイレットがあると想像してください。これで、紐の端を取り、紐がぴんと張るまでアイレットに通すことができます。これにより、グラフが区分的線形関数に変形されます。 いくつかの写真が役立つ場合があります。で8本の釘を取り、(-0.5、0.8)、(0.5、0.4)、(1.2、-0.9)、(-2.5、-0.9)、(-1.2、0.2)、(-2.8、-0.7) (1.5、-0.6)、(1.8、-0.8) 。次の3つのプロットは、上記のプロセスを示しています。 大きなバージョンの場合:右クリック->新しいタブで開く また、文字列を視覚化するのが困難な場合のストリングの引き締めのアニメーションを次に示します。 チャレンジ 「爪」のリスト(これは必ずしもソートされているわけではありません)が与えられた場合、上記の関数fの形状から始まる場合、それらの爪とピンと張った文字列をプロットします。 プログラムまたは関数を作成し、STDIN、ARGV、または関数引数を介して入力を取得できます。結果を画面に表示するか、画像をファイルに保存できます。 結果がラスタライズされる場合、少なくとも幅300ピクセル、高さ100ピクセルである必要があります。(-3、-1.1)から(3,1.1)までの座標範囲は、画像の水平および垂直範囲の少なくとも75%をカバーする必要があります。xとyの長さスケールは同じである必要はありません。爪(少なくとも3x3ピクセルを使用)と文字列(少なくとも1ピクセルの幅)を表示する必要があります。軸を含めても含めなくてもかまいません。 色は選択できますが、少なくとも2つの区別できる色が必要です。1つは背景用、もう1つは爪と文字列用です(ただし、色は異なる場合があります)。 すべての釘はfから少なくとも10 -5ユニット離れていると仮定できます(そのため、浮動小数点の不正確さを心配する必要はありません)。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 その他の例 さらに2つの(簡単な)例があります。 {{-2.5, 1}, {-1.5, -1}, {-0.5, 1}, {0.5, -1}, {1.5, 1}, {2.5, -1}} (文字列はx軸と一致します。) {{-2.7, -0.5}, {-2.3, -0.5}, {-1.7, 0.5}, {-1.3, …

30
コードの最初のN文字を印刷します
N入力として正の整数を受け取り、Nコードの最初の文字を出力するプログラムまたは関数を作成する必要があります。場合Nあなたが周期的に出力をあなたのコードを継続すべきであるあなたのコードの長さよりも大きくなっています。 ソースコードの読み取り、およびファイル、stdioなどからの読み取りは禁止されています。 例 (コードがであると仮定yourcode) 入力=>出力: 5=> yourc 10=> yourcodeyo 22=>yourcodeyourcodeyour 明確化 プログラムは少なくとも1バイトの長さが必要です。
21 code-golf  quine 

13
ユニークな素数の組み合わせ製品
問題の声明 一意の連続する素数(必ずしも2を含まない)のセットが与えられた場合、これらの素数の最初のべきのすべての組み合わせ(たとえば、繰り返しなし)と1の積を生成します。たとえば、{ 7}、{1、2、3、5、6、7、10、14、15、21、30、35、42、70、105、210}を生成します: 1 = 1 2 = 2 3 = 3 5 = 5 6 = 2 x 3 7 = 7 10 = 2 x 5 14 = 2 x 7 15 = 3 x 5 21 = 3 x 7 30 = 2 x 3 x 5 …

3
レーザーでそれらを破壊する
前書き アリーナは、敵がカバーするために使用する高層ビルが点在する平地です。あなたとあなたの敵はレーザーでお互いを撃ちます。全員がジェットパックを携帯し、飛行を許可します。 どの敵にレーザーを当てることができ、どの敵に隠れていますか? 問題 最初に、アリーナのサイズは、n1行の整数で指定されます。次のn行にはn、行ごとにスペースで区切られた整数が含まれています。各整数は、その場所の建物の高さを表します。各建物は長方形の固体で、1単位×1単位、高さ単位です。 次に、あなたの場所は、3つの浮動小数点数として単一の行に与えられていますx、y、z。 最後に、敵の数はm1行の整数で与えられます。次のm行には、行ごとにスペースで区切られた3つの浮動小数点数が含まれています。これらは表し x、yとz敵の座標を。座標系は次のように定義されます。 x 都市入力で左から右に測定されます y 上から下に測定されます z ゼロから測定されます 敵ごとに、妨害されていない線があなたからその敵に引ける場合、正の整数を出力します。それ以外の場合は、負の整数を出力します。出力を新しい行で区切ります。 サンプル入力 「#」で示されるコメントは、各行が何をするのかをすばやく確認するのに役立ちます。実際の入力には存在しません。 5 # Size of the map 0 0 0 0 0 # Buildings 0 0 0 0 0 # Buildings 4 4 4 4 4 # Buildings 0 0 0 0 0 # …
21 code-golf 

10
ルアでのゴルフのヒント
ルアでゴルフをするための一般的なヒントは何ですか?私は、少なくともLuaに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントを削除する」は答えではありません)。回答ごとに1つのヒントを投稿してください。
21 code-golf  tips  lua 

11
クロスマッチング正規表現
ここでのタスクは、2つの正規表現を作成することです。各正規表現は、他の正規表現と一致しますが、それ自体とは一致しません。 両方の正規表現には、次の形式が必要です。 /pattern/optional-flags これは、それらが一致する形式でもあります。 最短のソリューションが勝ちます。ソリューションの長さは、スラッシュとフラグを含む両方の正規表現の文字の合計としてカウントされます。 違いがある場合は、選択した正規表現構文標準を使用するか、プログラミング言語を指定します。 楽しむ!

18
指定された配列で最も近い数を見つける
これは、私が抱えていた現実の問題に触発されました。これについて賢明な方法があるかどうか見てみたい。 並べ替えられていない2つの配列AとBが与えられ、それぞれに任意の数のfloatが含まれています。AとBは必ずしも同じ長さではありません。Aの要素を順番に受け取り、配列Bで最も近い値を見つける関数を作成します。結果は新しい配列に含まれる必要があります。 勝利条件 最短のコードが勝ちます(通常どおり)。

16
電話のマルチタップスペルチェック
Google Code Challengeに触発された: ラテンアルファベットには26文字が含まれ、電話のキーパッドには10桁しかありません。キープレスのシーケンスを使用して目的の文字を示すことで、友人へのメッセージを簡単に書くことができます。以下に示すように、文字は数字にマッピングされます。たとえば、文字Bを挿入する場合、プログラムは22を押します。同じキーから2文字を連続して挿入するには、ユーザーはキーをもう一度押す前に一時停止する必要があります。一時停止を示すには、スペース文字「」を印刷する必要があります。たとえば、2 2はAAを示し、22はBを示します。 各メッセージは、小文字a〜zおよびスペース文字 ''のみで構成されます。ゼロを押すとスペースが放出されます。 あなたの挑戦は、入力文字列を受け取り、入力を文字列として生成するか、標準出力に出力するのに必要なキー押下のシーケンスを返す最小の関数を書くことです。最小のバイト数である関数が優先されます。 入出力の例 phone("hi") 44 444 phone("hello world") 4433555 555666096667775553 その他の説明 一時停止は必要な場合にのみ追加し、スペース「」にする必要があります。 各メッセージは、小文字 a〜zおよびスペース文字 '' のみで構成されます。印刷0してスペースを示します。 外部ライブラリはありません。 入力文字列のみが関数に渡されます。 他の言語の競争力を高めるために、主要な関数宣言は考慮されず、他の標準ライブラリのインポートも行いません。#includes、imports、およびusingsはカウントされません。他のすべてが行います。これには、#definesおよびヘルパー関数が含まれます。混乱している場合は、この質問のルール2を参照してください。 複数のスペースは、スペースとして一時停止する必要がないため、00または0 0
21 code-golf 

5
彼女は吹く!
Arrr ...アホイあそこ、私仲間!メインセールを展開!右boardいっぱい!ああ、あなたの髪に風を感じてください! そう、私は心のこもった...ちょっとしたスキルが必要なんだ!私の乗組員は自分よりも現代的です... 私の乗組員は常に先頭に立っていますが、コンパスのポイントを優先しています(詳細はこちらを参照してください、Arrr ...)。 。私は、彼らが私が理解できるものにヘッディンを呼んでいる、このたたきを変換する簡単な方法です。 私が必要としているのは、コードを入力することです(0 <= the headin' < 36010進数でも大丈夫です)tha ' を入力し、最も近いコンパスポイントとしての答えを吐き出します!あら! 以下に例を示します。 > heading 0.1 North > heading 11.25 North by East > heading 22.7 North Northeast > heading 44.99 Northeast > heading 91 East さて、もしあなたが 'ヘッディン'であるなら、それがまさに2つのコンパスポイントの真ん中に収まるようなものであるなら、 'あなたがたはフレットである'、私は心から...私はコードを吐き出すことを期待していますBetween <point 1> and <point 2>例えばはheading 5.625言うだろうBetween North and North …
21 code-golf  math 

30
32ビット整数の逆ビット順序
32ビット整数のビット順序を逆にするには、最短のコードを記述します。 ルール: ご使用の言語が数値(Windows Batchなど)をサポートしていない場合、入力は有効な整数または文字列に相当すると見なされます。 言語が数値をサポートしていない場合(Windows Batchなど)、出力は有効な整数または文字列に相当する必要があります。 標準ライブラリのみ。 関数または完全なプログラムの場合があります。 入力は、from stdinまたはfunction引数としてのいずれかです。 出力は、stdoutまたは戻り値としてのいずれかでなければなりません。 ご使用の言語に1ステップでこれを行う組み込みまたは標準ライブラリ関数がある場合(rbitARMアセンブリなど)、それは使用できません。 例: キー: 小数 バイナリ (逆) 逆バイナリ 10進出力 例: -90 (デモ用の8ビットの例) 10100110b (逆) 01100101b 101 486 00000000000000000000000111100110b (逆) 01100111100000000000000000000000b 1736441856 -984802906 11000101010011010001100110100110b (逆) 01100101100110001011001010100011b 1704506019 注:省略は無料ゲームです。私がそれを言わなかった、そしてそれが標準的な抜け穴の 1つではないなら、それは完全に許可されています。

13
F#でのゴルフのヒント
F#でゴルフをするための一般的なヒントは何ですか?私は、少なくともF#に特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。
21 code-golf  tips  f# 

21
こんにちは世界!!!フィボナッチ分布
プログラムは正確に出力する必要があります:Hello world!!!改行ありまたは改行なし。 プログラムには何も入力しないでください。 ソースコードの文字分布は、次の条件に従って正しくなければなりません。 数字の数(0-9)は、正確に1つのフィボナッチ数列でなければなりません。 ソースコード内のその他の数字以外の文字!(0-9)の数は、上記のフィボナッチシーケンス番号の前のフィボナッチシーケンス番号でなければなりません。 ソースコード内の有効な文字分布の4つの例: 13桁の数字、8桁の非数字。 34桁の数字、21桁の非数字。 数字55文字、数字以外の文字34文字。 89桁の数字、55桁の非数字。 これはコードゴルフで、バイト単位の最短コードが勝ちです!がんばろう! 編集:この質問は、コードゴルフであることに加えてソースコードのサイズに制約があるため、受け入れられる回答(複数のシェアが同じ勝利キャラクターの長さである場合)は、投票数が多く(文字数が最小)回答になります。 03-01。

23
誕生日おめでとう!
誕生日おめでとう! Happy birthday to me!誕生日に印刷するプログラムを作成します。 プログラムの誕生日は、プログラムの作成、最終変更、またはコンパイル時(選択)であり、ハードコーディングしてはなりません。 誕生日として使用する日付は、プログラムの呼び出しや実行の影響を受けてはいけません。誕生日を変更することはできません。 追加のクレジット(-15%バイトカウント)の場合、プログラムと一致しない場合はHappy birthday to you!、誕生日(ハードコード)に印刷します。または、有名人の誕生日を使用して、-14%を獲得します。 これのみを印刷し、他の日には何も印刷しないでください。 UTF-8でバイトをカウントします。 グレゴリオ暦を使用します。 幸運とお誕生日おめでとう(新生児プログラムへ)。 PS Izkataのコメントに続いてHappy birthday to Mel、Mel Kayeの誕生日に印刷すると、20%オフになります。しかし、あなたはそれがこの日付であるという信頼できる情報源を提供しなければなりません。
21 code-golf 

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