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

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

5
コードゴルフ:消灯!
すべての可能性を渡す最短のコードが勝つ 多くのグリッドベースのゲームは、点灯するライトのグリッドで開始されます。いずれかのライトを押すと、そのライトとそれに隣接する4つのライトが切り替わります。ライトを切り替えると、最初にオンまたはオフになったかどうかに応じて、オフまたはオンになります。目標は、最後にすべてのライトがオフになるシーケンスでライトをヒットすることです。 「X」は点灯しているライトを表します。「O」は、消灯しているライトを表します。「P」は押された正方形を表します。 XOO XOO XOX XOX XXX XOX XOP -> XXO -> OPO -> XOX OOX OOX POO XXO XOO Intial Grid Press 1 Press 2 Press 3 Ending Grid 入力は、引数または標準入力として渡されたファイルから直接取得できます。入力の最初の行が含まれていますX(1 <= X <= 20)、意味光のグリッドのサイズ、xとにより、X。2行目にはy(0 <= y <=(x * 3)2)、つまり最初に点灯したライトの数が含まれます。次のy行には、グリッド上のライトの座標が「行列」の形式で含まれています。既にオンになっている(以前に切り替えられた)ライトは、再度オフに切り替える必要があります。次の行には、押されたライトの数であるzが含まれます。最終 z 行には、「行列」の形式で、押されたライトの座標が押された順序で含まれています。 間違った入力はありません。すべての数値は、グリッドの指定された境界内にあります。 出力は、すべてのライトが切り替えられた後の最終グリッドになります。それはあるべきn個によって、n個のグリッド。点灯している各エリアには、大文字の「X」を使用する必要があります。消灯している各エリアには、大文字の「O」を使用する必要があります。 グリッド外の影響を受けるライトは無視する必要があります。グリッドのエッジでライトを切り替えると、グリッド自体にあるライトにのみ影響します。 テストケース 入力 4 5 …

6
順列をサイクルに分解する
順列はサイクルのセットに分解できるというよく知られた定理があります。あなたの仕事は、できる限り短いプログラムを書くことです。 入力: 2行。最初は数値を含みN、2番目はN範囲内の異なる整数を含みます[0,N-1]スペースで区切られれます。これらの整数は、N要素の順列を表します。 出力: 順列の各サイクルに1行。各行は、スペースで区切られた整数のサイクル順のリストである必要があります。 サイクルは任意の順序で出力でき、各サイクルは任意の位置から出力できます。 例1: 8 2 3 4 5 6 7 0 1 この入力は、順列0-> 2、1-> 3、2-> 4、3-> 5、4-> 6、5-> 7、6-> 0、7-> 1をエンコードします。これは、次のようなサイクルに分解されます。 0 2 4 6 1 3 5 7 同様に有効な出力は 5 7 1 3 2 4 6 0 例2: 8 0 1 3 4 5 6 …

17
Code-Golf:円の中の格子点
次の図に問題を示します。 円の半径として整数を指定し、中心の円内(境界を含む)の格子点の数を計算する関数を作成します。 画像は次のとおりです。 f[1] = 5 (blue points) f[2] = 13 (blue + red points) チェック/デバッグの他の値: f[3] = 29 f[10] = 317 f[1000] = 3,141,549 f[2000] = 12,566,345 適切なパフォーマンスが必要です。f [1000]の場合、1分未満としましょう。 最短のコードが優先されます。通常のコードゴルフ規則が適用されます。 例としてf [1001]の計算とタイミングを投稿してください。

19
自明でない力
最小のプログラムを作成して、2 ^ 12以下の非自明な力を順番に出力します 非自明な力は、底と指数が1より大きいことを意味します 先頭の空白はオプションです 複数のソリューションがある場合、順序は重要ではないため、 16 = 4^2, 2^4 大丈夫です サンプル出力: 4 = 2^2 8 = 2^3 9 = 3^2 16 = 2^4, 4^2 25 = 5^2 27 = 3^3 32 = 2^5 36 = 6^2 49 = 7^2 64 = 2^6, 4^3, 8^2 81 = 3^4, 9^2 100 …
15 code-golf  math 

10
Piの数字を計算する
これはやや異なるタスクです。1024桁目の16進数から始まる1024桁のπを計算します。 正式:プログラムは1分以内に完了し、次の出力が生成されます。 25d479d8f6e8def7e3fe501ab6794c3b976ce0bd04c006bac1a94fb6409f60c45e5c9ec2196a246368fb6faf3e6c53b51339b2eb3b52ec6f6dfc511f9b30952ccc814544af5ebd09bee3d004de334afd660f2807192e4bb3c0cba85745c8740fd20b5f39b9d3fbdb5579c0bd1a60320ad6a100c6402c7279679f25fefb1fa3cc8ea5e9f8db3222f83c7516dffd616b152f501ec8ad0552ab323db5fafd23876053317b483e00df829e5c57bbca6f8ca01a87562edf1769dbd542a8f6287effc3ac6732c68c4f5573695b27b0bbca58c8e1ffa35db8f011a010fa3d98fd2183b84afcb56c2dd1d35b9a53e479b6f84565d28e49bc4bfb9790e1ddf2daa4cb7e3362fb1341cee4c6e8ef20cada36774c01d07e9efe2bf11fb495dbda4dae909198eaad8e716b93d5a0d08ed1d0afc725e08e3c5b2f8e7594b78ff6e2fbf2122b648888b812900df01c4fad5ea0688fc31cd1cff191b3a8c1ad2f2f2218be0e1777ea752dfe8b021fa1e5a0cc0fb56f74e818acf3d6ce89e299b4a84fe0fd13e0b77cc43b81d2ada8d9165fa2668095770593cc7314211a1477e6ad206577b5fa86c75442f5fb9d35cfebcdaf0c7b3e89a0d6411bd3ae1e7e4900250e2d2071b35e226800bb57b8e0af2464369bf009b91e5563911d59dfa6aa78c14389d95a537f207d5ba202e5b9c5832603766295cfa911c81a4a94a14a94a14a94a94a4a73a14a94a14a94a14a4a94a14a94a14a7a4a7a94a14a4a7a7a9a4a7a9a4a7a4a7a4a7a4a7a4a7a7a4a7a4a7a4a7a4a7a4a7a4a7a4a7a4a7a4a7a4a3a4a7a4a3a4a3a4a7a7a7a8a8a8a7a7a8a7a8a7b8a9a8a7b8a9b8a9b8e7e4e2501e7e4900250e2d2071b35e226e 最短の長さのプログラムが勝ちます。実行時にすべての数字を計算する必要があります。πを計算するアルゴリズムを実装する必要はありません。言語がすでにその機能を提供している場合は、それを使用できます。

12
glob Matcherを実装する
一致するパターンと文字列の関数を実装し、パターンがWHOLE文字列に一致する場合はtrueを返し、そうでない場合はfalseを返します。 globパターンの構文は次のとおりです。 ? 任意の1文字と一致します + 1つ以上の文字に一致します * 0個以上の文字に一致します \ 逃げる ルール: 評価なし、正規表現への変換なし、システムglob関数の呼び出しなし。 I / Oは不要です。関数を書くだけです 最短勝ち 例: glob('abc', 'abc') => true glob('abc', 'abcdef') => false IMPORTANT! glob('a??', 'aww') => true glob('a*b', 'ab') => true glob('a*b', 'agwijgwbgioeb') => true glob('a*?', 'a') => false glob('?*', 'def') => true glob('5+', '5ggggg') => true …

30
分割を実施する
整数除算を処理するお好みの言語で除算アルゴリズムを実装します。正数のみを処理する必要がありますが、負および混合符号除算を処理する場合のボーナスポイントもあります。結果は端数のある結果のために切り捨てられます。 プログラムが入っていて/、\、divまたは類似した演算子を。言語のネイティブの除算機能を使用しないルーチンでなければなりません。 最大32ビットの除算のみを処理する必要があります。繰り返し減算を使用することはできません。 入力 新しい行またはスペースで区切られた標準入力で2つの入力を取得します(選択) 740 2 出力 この場合、出力はになります370。 最短の解決策が勝ちます。

24
来週の13日金曜日
次回金曜日が月の13日になると予測できる最短のプログラムは何ですか? 完全に機能するプログラムである必要があります(単なる関数/サブルーチンではありません) 次の形式で日付を印刷する必要があります。 YYYY-MM-DD ユーザーがコマンドライン引数として、または STDIN ユーザーが開始日を指定しない場合、開始日として今日を使用します。 開始日が13日金曜日の場合、プログラムは次の13日金曜日を見つける必要があります。 今日プログラムを実行する場合(2011年2月16日)、次の出力が表示されます。 $ ./fr13th 2013-05-09 2013-09-13 $ ./fr13th 2007-06-29 2007-07-13 $ ./fr13th 2007-07-13 2008-06-13 $ ./fr13th 2011-05-13
15 code-golf  date 

18
浮動小数点XOR
あなたの仕事はとても簡単です。2つの浮動小数点を与え、それらのビットごとのxorまたはバイナリ表現を与え、それを浮動小数点として出力します。 例えば、 Normal: 16.7472 ^ 123.61 = 7.13402e-37 Binary: 01000001100001011111101001000100 ^ 01000010111101110011100001010010 = 00000011011100101100001000010110 Normal: 2.2 ^ 4.4 = 1.17549e-38 Binary: 01000000000011001100110011001101 ^ 01000000100011001100110011001101 = 00000000100000000000000000000000 Normal: 7.898 ^ 3.4444 = 1.47705e-38 Binary: 01000000111111001011110001101010 ^ 01000000010111000110101001111111 = 00000000101000001101011000010101 制限/説明: 入出力は、任意の便利な方法で指定できます。 このプログラムは、完全なプログラムでも機能だけでもかまいません。どちらでも構いません。 float型には任意のサイズを指定できますが、最小サイズは2バイトです。 標準的な抜け穴は禁止されています。 最短のコードが優先されます。

30
前進2歩、後退1歩
私が目的地から10歩離れているとしましょう。「二歩前進、一歩後退」という古いことわざに従って歩きます。目的地に正確に立つまで、2歩前進します。(これには、目的地を通過してそこに戻ることが含まれる場合があります)。何歩歩きましたか? もちろん、私は10歩離れていないかもしれません。私は11歩、つまり100歩かもしれません。10歩を測定し、問題を解決するために前後に歩き続けるか、...コードを書くことができます。 関数を記述して、Nステップ離れるのに必要なステップ数を順番に計算します。2ステップ前進、1ステップ後退します。 ステップ0で開始したと仮定します。「2ステップ先」を1ステップではなく2ステップとしてカウントします。 すべてのステップが一定の長さであると仮定します。 そのスペースに到達したときに最初にとったステップ数を返します。(たとえば、10ステップ離れると26ステップかかりますが、ステップ30でもう一度ヒットします)。26に興味があります。 好きな言語を使用してください。 入力として正の整数を受け入れる必要があります。これはターゲットステップを表します。 最小バイト数が勝ちます。 例: 5つのステップを取得したい: | | | | | | <- I'm at step 0, not yet on the grid. | |X| | | | <- I take two steps forward, I'm on step 2: the count is 2 |X| | | | …

2
有効なチェスの動きですか?
代替名: ChessMoveQ それぞれが4つの要素で構成される最大32個の要素のリストと、4つの要素を持つ2番目のリストが与えられた場合、2番目の入力で詳細な動きが有効なチェスの動きであるかどうかを判断します。 最初のリストは、ボード上の32個すべてのピースの位置を示しています。各要素は<colour>, <piece-name>, <x-coord>, <y-coord>、などの構造に従います["W", "K", 5, 1]。これは、白いキングが5, 1(e1通常のチェス盤で)オンであることを示します。最初の入力のすべての要素は一意です。<x-coord>そして<y-coord>、常に一つの例は以下のようになり1と8の間になります。 [["B", "K", 3, 8], ["B", "Q", 1, 5], ["B", "N", 4, 7], ["B", "N", 7, 8], ["B", "B", 2, 4], ["B", "R", 4, 8], ["B", "R", 8, 8], ["B", "P", 1, 7], ["B", "P", 2, 7], ["B", "P", 3, …

2
答える質問をいくつかください!
前書き 時々私は退屈し、PPCGに新しい質問がないので、PPCGの過去からランダムな質問を掘ってほしいです。 チャレンジ 入力としてユーザーのPPCG IDを指定します(たとえば、私のIDは30525です)。ランダムに選択されたPPCG質問のURLを出力します。質問が次の基準を満たさない場合、基準を満たすまで別の質問を選択する必要があります。 質問者は、質問にIDが入力されたユーザーであってはなりません 質問にIDが入力されたユーザーが質問に回答していないこと 質問は未回答であってはなりません。それはおそらく難しすぎるでしょう 質問には10個以上の回答を含めることはできません。おそらく簡単すぎるでしょう 質問にはcode-golfタグを付ける必要があります ルール URL短縮サービスは許可されていません。 Stack Exchange APIとStack Exchange Data Explorerを使用できます。 実際のPPCGユーザーのIDのみが与えられます。 万一、適切な質問がない場合は、何も出力する必要はありません(未定義の動作は問題ありません)。 サイドチャレンジ 余分なポイントは授与されませんが、実行時にブラウザーウィンドウを開いて上記の基準に従うランダムなPPCG質問を作成する使用可能なブックマークレットを誰かが設計していただければ幸いです。ユーザーIDはプログラムにハードコーディングする必要があります(ブックマークレットの場合のみ)。 チャレンジ バイト単位の最短コードが優先されます。

5
バイナリ畳み込み
バイナリ畳み込みは数値Mで記述され、数値に適用されNます。のバイナリ表現の各ビットについてM、ビットが設定されている場合(1)、出力の対応するビットは、対応するビットに隣接する2ビットをXORすることで与えられますN(必要に応じて折り返します)。ビットが設定されていない場合(0)、出力の対応するビットはの対応するビットによって与えられNます。 実用的な例(8ビット値): ましょうN = 150、M = 59。それらのバイナリ表現は(それぞれ)10010110と00111011です。 Mのバイナリ表現に基づいて、ビット0、1、3、4、および5が畳み込まれます。 ビット0の結果は、ビット1と7をXORすることで得られ1ます(折り返すため)。 ビット1の結果は、ビット0と2のXOR演算によって得られ0ます。 ビット2の結果は、元のビット2で与えられ、を生成し1ます。 ビット3の結果は、ビット2と4のXORによって得られ0ます。 ビット4の結果は、ビット3と5のXOR演算によって得られ0ます。 ビット5の結果は、ビット4と6のXORによって得られ1ます。 ビット6と7の結果は、元のビット6と7で与えられ、とを生成0し1ます。 したがって、出力は10100110(166)です。 チャレンジ とが与えられたときN、on Mによって記述されたバイナリ畳み込みを実行した結果を出力しMますN。入力および出力は、便利で一貫性があり、明確な形式である場合があります。Nそして、M常に(包括的)範囲[0, 255](8ビット符号なし整数)にあり、バイナリ畳み込みを実行するために、バイナリ表現を8ビットにパディングする必要があります。 テストケース 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

18
簡単に減量する方法は?
この質問では、運動をして体重を減らすことにのみ焦点を当てますが、体重を減らす方法はまだたくさんあります。 異なるスポーツは異なる量のカロリーを消費します。 たとえば、1時間のビリヤードをプレイすると102カロリー[1]を消費できますが、15分間のバスケットボールをプレイすると119カロリー[1]を燃焼できます。 簡単さを比較する正確な方法は、消費カロリーを必要な時間で割ることで、簡単さの指標(EI)が得られます。 たとえば、15分間のフェンシングでは85カロリーを消費でき、85/15のEIが得られます。 次の形式のリストが表示されます。 [["fencing",15,85],["billiards",60,102],["basketball",15,119]] またはあなたが望む他のフォーマット。 次に、最高のEIを持つスポーツを出力します。 TL; DR タプル[name,value1,value2]出力のリストが与えられると、namewhere value2/value1が最高になります。 制約 あなたはありませんプロセスで整数でない任意の実数を作ります。 組み込みの分数を使用することはできません。 仕様(仕様) 結果を満たす名前が複数ある場合、それらの空でないサブセットまたはそれらの要素を出力できます。 名前はregexと一致し/^[a-z]+$/ます。つまり、小文字のラテン標準アルファベットのみで構成されます。 リストは空になりません。 テストケース 入力: [["fencing",15,85],["billiards",60,102],["basketball",15,119]] 出力: basketball 参照資料 http://calorielab.com/burned/

8
Hello Worldのポリグロットを作成する
「Hello World!」を出力するテキストファイルを作成します コンパイル/解釈するときにできるだけ多くのプログラミング言語で、できるだけ短くします。 提出のスコアはとして計算されますC / 2 ^ ((L - 1) / 4)。ここで、「C」はテキストファイルの文字数、「L」はプログラムが有効な言語の数です。もちろん最低スコアが勝ちます。

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