問題タブ [rosetta-stone]
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 - コードゴルフ:コラッツ予想
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
コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。
テストケース
ボーナス テスト ケース
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 の例:
さぁ、スパイラルに突入…
string - コードゴルフ:ワードサーチソルバー
注:これは私の最初のコードゴルフのチャレンジ/質問であるため、以下の正しい形式を使用していない可能性があります。この特定の質問にタグを付ける方法がよくわかりません。これはコミュニティウィキにする必要がありますか?ありがとう!
このコードゴルフの課題は、単語検索を解決することです。
ウィキペディアで定義されている単語検索は次のとおりです。
ワード検索、ワード検索、ワードシーク、ワードスルース、またはミステリーワードパズルは、グリッド内の単語の文字であるワードゲームであり、通常は長方形または正方形の形状をしています。このパズルの目的は、ボックス内に隠されているすべての単語を見つけてマークすることです。単語は、水平、垂直、または斜めにすることができます。多くの場合、隠された単語のリストが提供されますが、より挑戦的なパズルはプレーヤーにそれらを理解させるかもしれません。多くの単語検索パズルには、すべての隠された単語が関連しているテーマがあります。
このチャレンジの単語検索はすべて長方形のグリッドになり、検索する単語のリストが提供されます。単語は、垂直、水平、または斜めに書くことができます。
入出力
ユーザーは単語検索を入力してから、グリッドで検索する単語を入力します。これらの2つの入力は、作成する関数に渡されます。これらのオブジェクトをどのように宣言して処理するかは、あなた次第です。
以下に説明する戦略または独自の戦略を使用して、関数は検索で特定の単語を検索し、その開始座標(単に行番号と列番号)と終了座標を出力します。単語が2つ見つかった場合は、両方の座標セットを出力する必要があります。単語が回文である場合、単語の「開始」となる一方の端を任意に選択できます。
例
入力:
見つける言葉:codegolf
出力:
戦略
使用を検討する可能性のあるいくつかの戦略を次に示します。使用する戦略を決定するのは完全にあなた次第です。このリストに含まれている必要はありません。
- 単語の最初の文字を探しています。出現するたびに、周囲の8文字を見て、単語の次の文字がそこにあるかどうかを確認します。
- 上記と同じですが、同じ文字が2つ並んでいる単語の一部を探す点が異なります。
- アルファベットの各文字がグリッド全体に存在する頻度を数え、検索する必要のある単語から最も出現頻度の低い文字の1つを選択して、その文字を検索します。文字が出現するたびに、周囲の8つの文字を調べて、単語の次の文字と前の文字がそこにあるかどうかを確認します。
code-golf - コードゴルフ:マンデルブロ集合
コードゴルフの通常のルール。これが例としてのPythonでの実装です
結果は次のようになります
画像ライブラリの使用が許可されています。または、ASCIIアートを使用することもできます。このコードは同じことをします
結果
編集:
アスキーアートのルール:
- 行/列のサイズはパラメーター化されており、コードは任意の有効な値で機能する必要があります。
- 反復回数に応じて、密度が少なくとも3レベル異なります(したがって、そこにある私のプロトタイプは準拠していません)
- 水平方向(つまり、私のプロトタイプは準拠していません)
- 重要なパラメータは固定されています(最大反復= 1000、暴走値x x + y y <= 4.0)
グラフィックのルール:
- 行/列のサイズはパラメーター化されており、コードは任意の有効な値で機能する必要があります。
- 少なくとも3レベルの色、グレースケール
- 水平方向(私のプロトタイプは準拠しています)
language-agnostic - コードゴルフ:フレンドリーナンバーの略語
この質問に基づく:数値をわかりやすい形式に丸める方法はありますか?
課題-更新されました! (仕様から数百の略語を削除)
整数(小数なし)を短縮する文字数による最短のコード。
コードには完全なプログラムを含める必要があります。
関連する範囲はfrom 0 - 9,223,372,036,854,775,807
(符号付き64ビット整数の上限)です。
省略形の小数点以下の桁数は正になります。次のように計算する必要はありません:(920535 abbreviated -1 place
これは次のようになります0.920535M
)。
数十と百の位(0-999
)の数字は決して省略されるべきではありません(小数点以下の数字の省略形は57
-不必要で友好的ではありません)。1+
5.7dk
ゼロから半分を丸めることを忘れないでください(23.5は24に丸められます)。銀行家の丸めは冗長です。
関連する番号の略語は次のとおりです。
h = hundred (10
2
)
k = thousand (10
3
)
M = million (10
6
)
G = billion (10
9
)
T = trillion (10
12
)
P = quadrillion (10
15
)
E = quintillion (10
18
)
サンプル入力/出力(入力は個別の引数として渡すことができます):
最初の引数は、短縮する整数になります。2番目は小数点以下の桁数です。
関連する質問からの元の回答(JavaScript、仕様に準拠していません):
language-agnostic - コードゴルフ:MSM乱数ジェネレーター
チャレンジ:
Middle-Squareメソッドを使用して一連の(疑似)乱数を生成する文字数による最短のコード。
(疑似)乱数生成のミドルスクエア法は、1946年にジョンフォンノイマンによって最初に提案され、次のように定義されています。
R n + 1 = mid((R n)2、m)
例えば:
3456 2 = 11943936
mid(11943936)= 9439
9439 2 = 89094721
mid(89094721)= 0947
947 2 = 896809
mid(896809)= 9680
9680 2 = 93702400
mid(93702400)= 7024
もう一つの例:
843 2 = 710649
mid(710649)= 106
106 2 = 11236
mid(11236)= 123
123 2 = 15129
mid(15129)= 512
512 2 = 262144
mid(262144)= 621
621 2 = 385641
mid(385641)= 856
856 2 = 732736
mid(732736)= 327
327 2 = 106929
mid(106929)= 069
69 2 = 4761
mid(4761)= 476
476 2 = 226576
mid(226576)= 265
の定義mid
:
どうやら、の正確な定義に関していくつかの混乱がありmid
ます。このチャレンジの目的のために、開始シードと同じ桁数を抽出していると想定します。つまり、開始シードが4桁の場合、中央から4桁を抽出します。開始シードが3桁の場合 、中央から3桁を抽出します。
正確な真ん中が見つからない場合の数値の抽出については、数値710649を検討してください。真ん中の3を抽出する場合は、あいまいさがあります(106または064)。その場合は、文字列の先頭に最も近い3を抽出します。したがって、この場合、106を抽出します。
それを考える簡単な方法は、それが正しい桁数でない場合、その数にゼロを埋めることです。たとえば、先行ゼロを710649にパディングすると、 0710649になり、中央の3桁が106になります。
テストケース:
シードの長さについては何も想定しないでください。たとえば、シードが常に4桁の数字になるとは限りません。
4桁の乱数を生成する3456の開始シードは、次の系列(最初の10)を生成する必要があります。
9439、947、9680、7024、3365、3232、4458、8737、3351、2292
4桁の乱数を生成する8653の開始シードは、次の系列(最初の10)を生成する必要があります。
8744、4575、9306、6016、1922、6940、1636、6764、7516、4902
3桁の乱数を生成する843の開始シードは、次の系列(最初の10)を生成する必要があります。
106、123、512、621、856、327、69、476、265、22
5桁のラノム番号を生成する45678の開始シードは、次のシリーズ(最初の10)を生成する必要があります。
86479、78617、80632、1519、30736、47016、10504、3340、11556、35411
先行ゼロに関する限り、答えは先行ゼロを表示するべきではないということです:)。
language-agnostic - コードゴルフ:あみだくじ
チャレンジ
あみだくじの方法を使用して、数値と有効な文字列パターンが与えられた場合に、数値解を出力する文字数による最短のコード。
例
明確化
- 入力を気にしないでください。他の場所で与えられた値を考慮してください。
- 両方の入力値が有効です。列番号は既存の列に対応し、パターンには記号、、、(および[スペース]、[LF])のみが含まれ
|
ます。また、隣接する2つの列の両方にダッシュを含めることはできません(同じ行に)。-
=
- パターンの寸法は不明です(最小1x1)。
明確化#2
- 2つの無効なパターンがあります:
|-|-|
そして|=|=|
それは曖昧さを生み出します。指定された入力文字列にそれらが含まれることはありません。 - 入力変数はすべて同じです。パターンを表す数値と文字列。
- 応募者は関数を作成する必要があります。
テストケース
編集:期待される結果を修正