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

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

7
ダウンワードナンバーレース
あなたの仕事は、究極のナンバーレースの対決で以前の合計に乱数を追加するプログラムを作成することです。 各レーサー(列)は0から始まり、すべてのレーサーが勝つために必要なスコアに達するまで、レースの各ステップで前の合計に1または0を加算します。1または0はランダムに選択する必要があります(ランダムの標準的な定義はここにあります)。出力には、各列が1人のレーサーを表す、次の形式でレースの結果が表示されます。 >> racers:5,score needed:2 0 0 0 0 0 # all racers start at 0 + + + + + # add 1 0 0 0 1 # random 1 or 0 = = = = = # equals 1 0 0 0 1 # sum + + + …
10 code-golf 

16
怠惰な人のためのコードゴルフ
このコードゴルフであなたの目標は、2つの文字列を取ることです、languageそしてcode (あなたがこのために書いたgolfedコードが複数行ある場合、この変数は複数行になります。) 、および1つの整数bytes。これらは、プログラミング言語の変数、バイト数、およびコード自体を表します。 その後、コードゴルファーが行うようにフォーマットします。 出力変数はと呼ばれる複数行の文字列answerです。 次の場所で複数行の文字列を使用できます。 C ++ パイソン Perl JavaScript Stack Overflowを検索すると、それをサポートするプログラミング言語をさらに見つけることができるはずです。 出力マークダウンのテンプレートは次のとおりです。code変数は、コードブロックであり、第二のレベルのヘッダがあります。 ## {language}, {bytes} bytes {code} Markdownパーサーに貼り付けたときの出力は次のようになります。 {language}、{bytes}バイト {code} 変数は、コードゴルフエントリをコーディングした言語、バイト数、および実際のコードとしてすでに入力されていると想定されています。 次にコードとしての出力の別の例を示します。今回は変数が入力されています。 ## JavaScript, 1337 bytes document.getElementById("foo").innerHTML = bar; これがブロッククォートとしてのバージョンです: JavaScript、1337バイト document.getElementById("foo").innerHTML = bar; 次のJavaScriptコードのように、<p>idでHTMLの要素のテキストを設定する方法を使用する場合、バイトをコードから削除resultできます。 document.getElementById("result").innerHTML = answer; これ<p id="result"></p>が機能するように、JSFiddleのHTMLセクションにもを含めてください。 得点 すべてのコードゴルフ質問と同様に、バイト数が最も少ないコードが最適です。

2
これは一意に連結可能ですか?
で接頭コードについては、この課題は、我々は接頭コードが一意に連結可能であることを学びました。 つまり、区切り文字を使用せずに、あいまいさを排除して結合できます。 たとえば、[1,2,45]はプレフィックスコードであるため、セパレータなしで1245245112145として結合できます。あいまいさはありません。 ただし、その逆は常に正しいとは限りません。 たとえば、[3,34]はプレフィックスコードではありません。ただし、同じことを行うことができます:3333434334333。あいまいさはありません。スマートなパーサーが必要になるだけです。 ただし、[1,11]は一意に連結可能ではありません。1111は5つの方法で解釈できるためです。 ゴール あなたの仕事は、文字列のリスト(ASCII)を入力として受け取るプログラム/関数を記述し、それらが一意に連結可能かどうかを判断することです。 細部 重複はfalseとしてカウントされます。 得点 これはコードゴルフです。バイト単位の最短のソリューションが優先されます。 テストケース 正しい: [12,21,112] [12,112,1112] [3,4,35] [2,3,352] 誤り: [1,1] [1,2,112] [1,23,4,12,34] [1,2,35,4,123,58,8]
10 code-golf 

4
Winnable Solitaire Mancalaボード
マンカラは、通常、プレーヤーが操作するビーズで満たされた一連のカップを含むボードゲームのファミリーの名前です。このチャレンジでは、ゲームのソリティアバリアントに特定のルールセットを使用します。 ボードは、1つの端にある「バスケット」と、それに続く1から始まる無数のカップで構成されています。一部のカップには、いくつかのビーズが含まれています。場合n番目のカップを正確に持っているnことでビーズを、あなたはそれからビーズ「種をまく」ことがあります。播種とは、すべてのnビーズをカップから取り出し、各カップに1つずつバスケットに向かって堆積させることを意味します。最後のビーズがバスケットに入ります。ボード上のすべてのビーズがバスケットに入ったときにプレーヤーが勝利します。 明らかに、2番目のカップにビードが1つしかない場合など、勝てないボードがたくさんあります。ビーズが0個のカップはすべて播種できず、2番目のカップには播種するのに十分なビーズがないため、合法的なプレーはありません。これは明らかに面白くないので、あなたの仕事は勝てるボードを作ることです。 仕事 ビーズの数を表す正の整数が出力されると、上記のように勝てるボードを作るために各カップに入れる必要のあるビーズの数を表す非負の整数のリストが出力されます。このリストには、末尾にゼロを含めないでください。 任意の数のビーズに対して、常に1つの勝利可能なボード構成があります。 デモンストレーション これは、4の入力と勝者のボードをプレイする方法のデモです[0, 1, 3]。勝者のボードはです。利用可能な唯一の動きから始めて、3番目のカップからビーズを播種します[1, 2, 0]。今、私たちは実際に選択肢を持っていますが、唯一正しいのは最初のカップを播種して、を取得することです[0, 2, 0]。次に、2番目のカップを降伏させ[1, 0, 0]、最後に最初のカップを再び播種して、すべての空のカップを取得します。 テストケース: 1 => [1] 2 => [0, 2] 3 => [1, 2] 4 => [0, 1, 3] 5 => [1, 1, 3] 6 => [0, 0, 2, 4] 7 => [1, 0, 2, 4] …

25
相対論的速度を計算する
特殊相対、反対方向に移動している別の物体に対して移動する物体の速度は、以下の式によって与えられます。 s=v+u1+vu/c2.s=v+u1+vu/c2.\begin{align}s = \frac{v+u}{1+vu/c^2}.\end{align} s = ( v + u ) / ( 1 + v * u / c ^ 2) この式では、vvvとuuuはオブジェクトの速度の大きさであり、cccは光速です(これは約3.0×108m/s3.0×108m/s3.0 \times 10^8 \,\mathrm m/\mathrm s、この課題に十分近い近似値)。 たとえば、あるオブジェクトがで動いていてv = 50,000 m/s、別のオブジェクトがで動いてu = 60,000 m/sいる場合、他のオブジェクトに対する各オブジェクトの速度はおよそになりますs = 110,000 m/s。これは、ガリレオ相対論(速度が単純に追加される)の下で予想されることです。ただし、v = 50,000,000 m/sおよびのu = 60,000,000 m/s場合、相対速度はおよそとなり、ガリレイ相対性理論によって予測された106,451,613 m/sものとは大幅に異なり110,000,000 m/sます。 チャレンジ 二つの整数所与vとuするように0 <= v,u …

4
アスキーダンクスター
入力の説明 文字列(最良の結果を得るには、すべての文字が印刷可能で、幅が同じである必要があります)。 出力の説明 パターンに従うキャラクターの星: 0 0 0 1 1 1 222 0123210 222 1 1 1 0 0 0 ここで0、1...は文字列の後続の文字です。出力は必ずしも1つの文字列である必要はありません-コンソールにスター文字を1文字ずつ出力することは問題ありません。 例 >> star('overflow') >> o o o v v v e e e r r r f f f l l l ooo overflowolfrevo ooo l l l f f …

7
汚染の最終段階
5x5の受信者の内部にウイルスがいます。汚染がどのように伝播するかを知っているので、あなたの使命は汚染の最終段階を出力することです。 受取人 これは、5x5の2次元配列として表されます。 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 場所1とは、ウイルスがすでに汚染されて0いる場所と、汚染されていない場所を意味します。 ウイルスの伝播方法 汚染された位置はきれいにできません。 クリーンな位置は、隣接する位置(北、東、南、西のセル)の少なくとも2つが汚染されている場合にのみ、次の段階で汚染されます。 汚染の最終段階は、クリーンなセルを汚染できなくなったときに発生します。 サンプル 汚染の段階1として上記の受信者を使用すると、段階2は次のようになります。 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 …

2
Retinaでのゴルフのヒント
Retinaでゴルフするための一般的なヒントはありますか?Retinaに少なくともいくらか特有のコードゴルフ問題全般に適用できるアイデアを探しています(たとえば、「コメントの削除」は回答ではありません)。回答ごとに1つのヒントを投稿してください。 参考までに、オンラインコンパイラはこちらです。 @ Sp3000は、Regex Golfのヒントもあると指摘しました。ここでの回答は、一般的な正規表現のゴルフのヒントではなく、Retina機能に特に焦点を当てる必要があります。
10 code-golf  tips 

1
蟻は立方体の上を歩くことによって言葉を綴ることができますか?
正の整数nと単語のリストの2つのパラメーターを取る関数を記述します。 n x n x n単位の立方体が与えられた場合、各表面単位にランダムな文字(AZ)を割り当てます。(3x3x3の立方体の場合、各面に9つのサーフェスユニットがあります。) 次に、水面に沿って歩く(顔を横切ることができる)アリが、提供された各単語を綴ることができるかどうかを判断します。単語を綴るには、文字が上下または左右に隣接している必要がありますが、必ずしも同じ顔にある必要はありません。[ わかりやすくするために編集:アリはパスを逆にして、文字を複数回使用できます。各表面単位は1文字として数えるので、繰り返される文字で単語を綴る(「見る」など)には、蟻は隣接する3つの単位を訪問する必要があります。] 関数は次の2つを出力する必要があります。 1)トポロジーを推測できるように、各面の各文字。たとえば、2x2x2キューブの場合、許容される出力は次のようになります。 QW ER TY OP UI DF JK XC AS GH LZ VB 2)各単語と、アリが立方体の表面に沿って歩くことによって単語を綴ることが可能かどうかを表すブール値。例えば: 1 ask 0 practical 1 pure 0 full ボーナスチャレンジ(ちょうど楽しみのためのスコアへの要因、しません):代わりのn個の立方体のサイズのみを表し、聞かせてn個も形状の次元を表しています。したがって、nが2の場合、2x2の正方形になります。N 3は、3×3×3キューブをもたらすであろう。及びN 4は4x4x4x4のたTesseractをもたらすであろう。
10 code-golf 

4
凸包の点(2D)
バックグラウンド 凸包点の有限数の頂点として、または内部のいずれかで、点のすべてを含む最小の凸多角形です。詳細については、非常によく定義されているPGMに関するこの質問を参照してください。 入力 N+1N >= 3通過した2次元座標()STDINは、次の形式で(他の通常のゴルフ入力も許可されます)渡されます(小数点以下の桁数は異なる場合がありますが、「妥当」であり、各数値は浮動小数点数として表すことができると想定できます)。 0.00;0.00000 1;0.00 0.000;1.0000 -1.00;1.000000 出力 STDOUTリストの最初のポイント((0.00;0.00000)上記の例)が他のNポイントの凸包にある場合に出力される(または同等の)真の値、それ以外の場合は偽の値。 これはcode-golfなので、バイト単位の最短のソリューションが優先されます。 ボーダーケース:ポイントが凸包の境界にある場合(クラッシュしない)、任意の値を返すことができます。これは、確率がゼロであるため、凸包の側面またはハルの外側の境界の頂点にある場合です。イベント(妥当な確率で)。 禁止:幾何学的問題を解決するためにのみ存在するもの(言語、演算子、データ構造、組み込み、またはパッケージ)(例:MathematicaのConvexHull)。汎用数学ツール(ベクトル、行列、複素数など)が許可されています。 テスト 返されるはずTRUEです:spiralTest1-TRUE、squareTest1-TRUE 返されるはずFALSEです:spiralTest2-FALSE、squareTest2-FALSE

4
コンテキスト内のタイトルキーワード
この課題は、D。Parnas、システムをモジュールに分解する際に使用される基準について説明されている問題に基づいており、J。Morrisの「関数型言語でのリアルプログラミング」で詳しく説明されています。 書籍のタイトルのリストをstdin引数として使用するプログラムまたは関数を、言語に適した便利な形式で記述します。例えば、 Green Sleeves Time Was Lost または ("Green Sleeves";"Time Was Lost") stdoutキーワードのアルファベット順のリストに戻るか印刷して、各キーワードを山括弧(<および>)で囲んで、元のタイトル内のコンテキストを示します。入力と同様に、出力は適切な形式にすることができます。これは、言語、改行で区切られた行、文字列のリストなどに便利です。 <Green> Sleeves Time Was <Lost> Green <Sleeves> <Time> Was Lost Time <Was> Lost タイトルは、1つのスペースで区切られた一連のキーワードで構成されます。キーワードにはアルファベット文字のみが含まれます。キーワードは辞書式にソートされます。タイトルは一意であり、キーワードは各タイトル内で一意ですが、同じキーワードが複数のタイトルに存在する場合があります。キーワードが複数のタイトルに存在する場合、出力には各外観が任意の順序でリストされます。たとえば、次の入力があるとします。 A Dugong A Proboscis 有効な出力は次のいずれかです。 <A> Proboscis <A> Dugong A <Dugong> A <Proboscis> または: <A> Dugong <A> Proboscis A <Dugong> A <Proboscis> これはコードゴルフです …

7
雨が降っていますか?わからない
これらは雨滴です: ! | . " : これらは雲の粒子です: ( ) _ @ $ & テキストのブロックが与えられたときに、雨が降っているかどうかを確認してほしい。すべての雨滴について、その上のどこかに雲の粒子がある場合、雨が降っています。雨粒ごとに1つの雲の粒子がなければなりません。あなたの結論を示す真実または偽の値を出力します。 有効な例 (@@@@@@) ( $ & ) Q ( ) .. . ! : . |" ! . ()()() ...... @_$ & errrr h_r-5 .:. . " 無効な例 ! () $$$$$ ( ) ::::: ..... これはコードゴルフなので、キャラクターの中で最も短いプログラムが勝ちます。

2
ポンのアスキーゲーム
アスキーポン 課題は、古典的なゲーム「ピンポン」を可能な限り短いコードでASCII文字で再現することです。 要件/仕様 「画面」は45x25文字にする必要があります。 空白は実際には空白でなければなりません。 パドルは9つの等号=========である必要があります。また、一番上と一番下の行にある必要があります(オリジナルは上から下ではなく左右に再生されることはわかっていますが、これはアスキーポンに適しています。 )。 ボールは、小文字、大文字、oまたはゼロにすることができます。 任意の種類の2つの入力ボタン(ユーザーが入力に文字を表示するキーを押しても問題ありません)は、プレーヤーのパドルを1つまたは2つのキャラクターを左右に一度に移動します。 ボールは、パドルや壁に当たったときに適切な角度で跳ね返る必要があります(ヒント:xまたはyの差の値を無効にします)。 スコアは出力のどこかに表示されます。スコアは、プレーヤーがボールを正常に打った回数です。 ボールがプレーヤーのパドルに当たらない場合は、プログラムを終了してください。 なければならないいくつかの AIの並べ替え(AIのパドルがちょうどボールのx値と一致した場合でも)。 ボールは垂直または水平に直線で移動できません。 開始画面/最初のフレームは次のようになります。 ========= o ========= score: 0 スコアリング これはコードゴルフなので、最短のコードが勝ちます...しかし、キャラクター数を減らすためにいくつかのボーナスがあります: -30キャラクター:パドルのどこに当たるかによってボールの弾道を変更 -10キャラクター:時間の経過とともにゲームをスピードアップ -20文字:AIを打ち負かす -20キャラクター:プレーヤーが静止し、勝ったり負けたりせずにゲームが永遠に続くような状況は避けてください(特定の軌道とAIパターンが原因) -20文字:ボールを(半)ランダムな軌道で動き始めます -25文字:リセットオプションを追加 以下は、JavaScriptにボーナスがない、ゴルフではない例です。 //init var x = 22, y = 12, xd = Math.random() < 0.5 ? -1 : 1, yd = 1, …

26
バランスを保ちながらゼロに最も近いN個の数
目的:正の整数が与えられた場合n: n奇数の場合、昇順でn最も近い数値のリストを出力します0 nが偶数の場合、Falsey値を出力します。 テストケース: 5 -> [-2,-1,0,1,2] 4 -> false (or any Falsey value) 1 -> [0] リファレンス実装 function update(){ var num = +document.getElementById("yield").value; if(num){ var out = document.getElementById("output"); if(num % 2 == 1){ // base is balanced var baseArr = []; for(var i=0;i<num;i++){ baseArr.push(i-Math.floor(num/2)); } out.innerHTML = baseArr.join(" "); …

8
英国の旗を印刷してください!
アメリカの国旗をプリントすることからインスピレーションを得た!これは直接のコピーですが、いくつかの対称性があるため英国の旗が付いていますが、それでもかなり複雑です! 課題は、次のASCIIアートをできるだけ少ないバイト数で作成することです。頭/画面(両方ではありません!)を90度回転させて正しく表示します。 __________________________________________ |\ \XXXXXXXXXXXX 000000 XXXXXXXXXXXX//0/| |0\ \XXXXXXXXXXX 000000 XXXXXXXXXXX//0/ | |\0\ \XXXXXXXXXX 000000 XXXXXXXXXX//0/ | |\\0\ \XXXXXXXXX 000000 XXXXXXXXX//0/ /| |X\\0\ \XXXXXXXX 000000 XXXXXXXX//0/ /X| |XX\\0\ \XXXXXXX 000000 XXXXXXX//0/ /XX| |XXX\\0\ \XXXXXX 000000 XXXXXX//0/ /XXX| |XXXX\\0\ \XXXXX 000000 XXXXX//0/ /XXXX| |XXXXX\\0\ \XXXX 000000 XXXX//0/ /XXXXX| |XXXXXX\\0\ \XXX 000000 …

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