問題タブ [code-golf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - コードゴルフ:消灯
チャレンジ
入力ライトアウトボードを解決するための文字数による最短コード。
.
ライト アウト ボードは、オフのライトとオンのライトの 2 つの文字で構成されるさまざまなサイズの 2D 正方形グリッドです*
。
ボードを解決するには、すべての「ライト」をオフにする必要があります。ライトのトグル (つまり、オンのときにオフ、オフのときにオン) は、一度に 5 つのライトになります - 選択されたライトとライトは + (プラス) の形でそれを囲みます。中央のライトを「選択」すると、ボードが解決されます。
消灯以来!ソリューションの順序は関係ありません。出力は、選択する電球のマークが付いた新しいボードになります。上記のボードの解決策は
オフにする側の電球がない隅でライトをオフにしても、オーバーフローしません。
この場合、右下の電球を選択すると、3 つの電球のみがオフになります。
テストケース
コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。
language-agnostic - コードゴルフ:ピアノ
チャレンジ
指定された長さの入力音符から始まるピアノ鍵盤の一部を出力するための文字数による最短コード。
入力は[ACDFG]#|[A-G]
、キーボードの印刷を開始する音符()と、最初の音符を含む印刷するキーの長さを表す正の数で構成されます。
最初のキーは完全に印刷する必要があります。左の鋭いキーがある場合はカットされます。開始キーが鋭い場合と同じように、左のキーもカットされます。
シャープキーはカウントされず、白いキーのみがカウントされます。
テストケース
コードカウントには、入力/出力(つまり完全なプログラム)が含まれます。
code-golf - Code Golf: Tic Tac Toe
Post your shortest code, by character count, to check if a player has won, and if so, which.
Assume you have an integer array in a variable b
(board), which holds the Tic Tac Toe board, and the moves of the players where:
- 0 = nothing set
- 1 = player 1 (X)
- 2 = player 2 (O)
So, given the array b = [ 1, 2, 1, 0, 1, 2, 1, 0, 2 ]
would represent the board
For that situation, your code should output 1
to indicate player 1 has won. If no-one has won you can output 0
or false
.
My own (Ruby) solution will be up soon.
Edit: Sorry, forgot to mark it as community wiki. You can assume the input is well formed and does not have to be error checked.
Update: Please post your solution in the form of a function. Most people have done this already, but some haven't, which isn't entirely fair. The board is supplied to your function as the parameter. The result should be returned by the function. The function can have a name of your choosing.
c - n番目の素数を計算する最短の方法は何ですか?
「 n番目の素数を計算する」ための最短のCコードは何ですか?
意味のある文字の点で最短。つまり、セミコロン、空白以外の文字、キーワード、カンマの数。
入力:
改行で区切られた、標準入力からの整数n 。入力は EOF で終了します。
出力:
入力nの直後に、n番目の素数を改行で区切って標準出力に出力します。
(素数は < 10,000、つまりn < 1,230 であると想定できます。)
テストケース:
私の試み:
この問題では、可読性は問題ではありません。時間とメモリの点でコストがかかるが、制約を満たすコードは、ここではより良いと見なされます。
language-agnostic - コードゴルフ:コラッツ予想
http://xkcd.com/710/にインスパイアされたコード ゴルフです。
チャレンジ
0 より大きい正の整数を指定すると、その数値の雹のシーケンスを出力します。
ヘイルストーン シーケンス
詳細については、ウィキペディアを参照してください。
- 偶数の場合は2で割ります。
- 奇数なら3倍にして1足すればいい。
これを出た数だけ1になるまで繰り返す(1以降続くと の無限ループに入る1 -> 4 -> 2 -> 1...
)
コードで説明するのが最善の方法である場合もあるので、ウィキペディアからいくつか引用します
このコードは機能しますが、追加の課題を追加しています。プログラムは、スタック オーバーフローに対して脆弱であってはなりません。したがって、反復または末尾再帰のいずれかを使用する必要があります。
また、大きな数を計算でき、言語にまだ実装されていない場合のボーナスポイント。(または、固定長整数を使用して大きな数のサポートを再実装する場合)
テストケース
また、コード ゴルフには、完全なユーザー入力と出力が含まれている必要があります。
language-agnostic - コードゴルフ:トライフォース
これは、このスレッドに触発された/引用されたものです:http: //www.allegro.cc/forums/thread/603383
問題
ユーザーが1から7の範囲の数値入力を提供するとします。入力はコンソールから取得する必要があります。引数はあまり望ましくありません。
入力が1の場合、以下を出力します。
1より大きい値は、上記のパターンで終わるパターンの倍数を生成する必要がありますが、対称的にスタックされます。たとえば、3は次のように出力する必要があります。
裏面も印刷するとボーナスポイント。
言語ごとに1つの答えを維持して、私たち全員が改善できるようにすることはできますか?
language-agnostic - コードゴルフ - パイの日
チャレンジ
R
文字を使用して半径の円の表現を表示し*
、その後に π の近似値を表示するための、文字数による最短コード。
入力は単一の数値ですR
。
y
ほとんどのコンピュータはほぼ 2:1 の比率を持っているように見えるので、が奇数の行だけを出力する必要があります。これは、R
が奇数の場合、R-1
行を印刷する必要があることを意味します。R=13
明確にするための新しいテストケースがあります。
例えば。
編集:の奇数の値によって引き起こされる広範な混乱のため、R
以下に示す 4 つのテスト ケースに合格するすべてのソリューションが受け入れられます。
π の近似値は、文字数の 2 倍を で割ること*
によって得られR²
ます。
概算は、有効数字 6 桁以上である必要があります。
先頭または末尾のゼロが許可されているため、たとえば、3
、3.000000
、のいずれかがおよび003
の入力として受け入れられます。2
4
コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。
テストケース
ボーナス テスト ケース
c - ちょうど 1 文字を変更して壊れたループを修正する
いくつかの複雑な C パズルがあるサイトを見つけました。現在、私はこれを扱っています:
以下は、マイナス記号を 20 回出力することを意図した C コードの一部です。しかし、あなたはそれに気づくことができます、それはうまくいきません。
上記のコードを修正するのは簡単です。この問題を興味深いものにするには、上記のコードを 1 文字だけ変更して修正する必要があります。既知の解決策は 3 つあります。この 3 つすべてを取得できるかどうかを確認します。
解決方法がわかりません。--
に変更することで修正できることはわかっていますが、機能させるため++
にどの文字を変更すればよいかわかりません。
language-agnostic - コードゴルフ:点をつなぐ
子供の頃からこれらの絵を覚えているかもしれませんが、今度はコンピューターに絵を描かせましょう(完全なASCIIの素晴らしさで)。楽しむ!
説明:
入力は、「フィールド」を説明する複数の行(改行で終了)です。このフィールドには「数字」が散在しています(空白で区切られています)。すべての行は同じ長さであると見なすことができます(スペースを最後まで埋めることができます)。
- 数字は常に1から始まります
- それらは自然数の順序に従います:すべての「次の数」は1ずつ増加します
- すべての数値は、その左右で(少なくとも)1つの空白で囲まれています
タスク:
次の特性を使用して、これらの数値の間に自然な順序で
線を引きます(N <= 99と想定)。(1 -> 2 -> 3 -> ...N)
+
数字を' '文字に置き換えます- 水平線の場合:'
-
'を使用します - 垂直線の場合:'
|
'を使用 - 左と下または右と上に行く:
/
- 左と上または右と下に行く:
\
重要な注意事項:
タイプ4および5の線を描画する場合、(座標x1、y1およびx2、y2に接続する点が与えられた場合)次のように仮定できます
distance(x1,x2) == distance(y1,y2)
。または、言い換えると(ユーザーjballがコメントしたように):「水平方向または垂直方向に整列されていない連続する要素は、常にスラッシュまたはバックスラッシュの勾配に整列します」。ドットが接続されている順序に従うことが重要です(新しい線は古い線を打ち消す可能性があります)。
-サンプル入力1--
-サンプル出力1--
-サンプル入力2-
-サンプル出力2-(ユニコーンリファレンス)
勝者:
最短の解決策(コード文字数による)。入力は標準入力で読み取ることができます。
language-agnostic - コードゴルフ:イースタースパイラル
イースター・コード・ゴルフのセッションにスパイラルより適切なものは何ですか?
まあ、ほとんどなんでもいいと思います。
チャレンジ
アスタリスク ('*') で構成された素敵な ASCII スパイラルを表示するための、文字数による最短コード。
R
入力は、スパイラルの x サイズになる単一の数値です。もう一方の次元 (y) は常にR-2
です。R
プログラムは、常に奇数で >= 5 であると想定できます。
いくつかの例:
コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。どの言語でも使用できます。
私の簡単に勝てる 303 文字の長い Python の例:
さぁ、スパイラルに突入…