問題タブ [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.

0 投票する
70 に答える
11468 参照

language-agnostic - コードゴルフ:コラッツ予想

http://xkcd.com/710/にインスパイアされたコード ゴルフです。

チャレンジ

0 より大きい正の整数を指定すると、その数値の雹のシーケンスを出力します。

ヘイルストーン シーケンス

詳細については、ウィキペディアを参照してください。

  • 偶数の場合は2で割ります。
  • 奇数なら3倍にして1足すればいい。

これを出た数だけ1になるまで繰り返す(1以降続くと の無限ループに入る1 -> 4 -> 2 -> 1...

コードで説明するのが最善の方法である場合もあるので、ウィキペディアからいくつか引用します

このコードは機能しますが、追加の課題を追加しています。プログラムは、スタック オーバーフローに対して脆弱であってはなりません。したがって、反復または末尾再帰のいずれかを使用する必要があります。

また、大きな数を計算でき、言語にまだ実装されていない場合のボーナスポイント。(または、固定長整数を使用して大きな数のサポートを再実装する場合)

テストケース

また、コード ゴルフには、完全なユーザー入力と出力が含まれている必要があります。

0 投票する
23 に答える
3902 参照

language-agnostic - コードゴルフ:トライフォース

これは、このスレッドに触発された/引用されたものです:http: //www.allegro.cc/forums/thread/603383

問題

ユーザーが1から7の範囲の数値入力を提供するとします。入力はコンソールから取得する必要があります。引数はあまり望ましくありません。

入力が1の場合、以下を出力します。

1より大きい値は、上記のパターンで終わるパターンの倍数を生成する必要がありますが、対称的にスタックされます。たとえば、3は次のように出力する必要があります。

裏面も印刷するとボーナスポイント。

言語ごとに1つの答えを維持して、私たち全員が改善できるようにすることはできますか?

0 投票する
26 に答える
9141 参照

language-agnostic - コードゴルフ - パイの日

チャレンジ

SO でのコードゴルフのガイドライン

R文字を使用して半径の円の表現を表示し*、その後に π の近似値を表示するための、文字数による最短コード。

入力は単一の数値ですR

yほとんどのコンピュータはほぼ 2:1 の比率を持っているように見えるので、が奇数の行だけを出力する必要があります。これは、Rが奇数の場合、R-1行を印刷する必要があることを意味します。R=13明確にするための新しいテストケースがあります。

例えば。

編集:の奇数の値によって引き起こされる広範な混乱のため、R以下に示す 4 つのテスト ケースに合格するすべてのソリューションが受け入れられます。

π の近似値は、文字数の 2 倍を で割ること*によって得られます。
概算は、有効数字 6 桁以上である必要があります。
先頭または末尾のゼロが許可されているため、たとえば、33.000000、のいずれかがおよび003の入力として受け入れられます。24

コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。

テストケース

ボーナス テスト ケース

0 投票する
16 に答える
4146 参照

language-agnostic - コードゴルフ:点をつなぐ

子供の頃からこれらの絵を覚えているかもしれませんが、今度はコンピューターに絵を描かせましょう(完全なASCIIの素晴らしさで)。楽しむ!

説明:

入力は、「フィールド」を説明する複数の行(改行で終了)です。このフィールドには「数字」が散在しています(空白で区切られています)。すべての行は同じ長さであると見なすことができます(スペースを最後まで埋めることができます)。

  • 数字は常に1から始まります
  • それらは自然数の順序に従います:すべての「次の数」は1ずつ増加します
  • すべての数値は、その左右で(少なくとも)1つの空白で囲まれています

タスク:

次の特性を使用して、これらの数値の間に自然な順序で を引きます(N <= 99と想定)。(1 -> 2 -> 3 -> ...N)

  1. +数字を' '文字に置き換えます
  2. 水平線の場合:' -'を使用します
  3. 垂直線の場合:' |'を使用
  4. 左と下または右と上に行く:/
  5. 左と上または右と下に行く:\

重要な注意事項:

  1. タイプ4および5の線を描画する場合、(座標x1、y1およびx2、y2に接続する点が与えられた場合)次のように仮定できますdistance(x1,x2) == distance(y1,y2)。または、言い換えると(ユーザーjballがコメントしたように):「水平方向または垂直方向に整列されていない連続する要素は、常にスラッシュまたはバックスラッシュの勾配に整列します」。

  2. ドットが接続されている順序に従うことが重要です(新しい線は古い線を打ち消す可能性があります)。

-サンプル入力1--

-サンプル出力1--

-サンプル入力2-

-サンプル出力2-ユニコーンリファレンス

勝者:

最短の解決策(コード文字数による)。入力は標準入力で読み取ることができます。

0 投票する
10 に答える
1930 参照

language-agnostic - コードゴルフ:イースタースパイラル

イースター・コード・ゴルフのセッションにスパイラルより適切なものは何ですか?
まあ、ほとんどなんでもいいと思います。

チャレンジ

アスタリスク ('*') で構成された素敵な ASCII スパイラルを表示するための、文字数による最短コード。

R入力は、スパイラルの x サイズになる単一の数値です。もう一方の次元 (y) は常にR-2です。Rプログラムは、常に奇数で >= 5 であると想定できます。

いくつかの例:

コード カウントには、入力/出力 (つまり、完全なプログラム) が含まれます。どの言語でも使用できます。

私の簡単に勝てる 303 文字の長い Python の例:

さぁ、スパイラルに突入…

0 投票する
7 に答える
4989 参照

string - コードゴルフ:ワードサーチソルバー

注:これは私の最初のコードゴルフのチャレンジ/質問であるため、以下の正しい形式を使用していない可能性があります。この特定の質問にタグを付ける方法がよくわかりません。これはコミュニティウィキにする必要がありますか?ありがとう!

このコードゴルフの課題は、単語検索を解決することです。

ウィキペディアで定義されている単語検索は次のとおりです。

ワード検索、ワード検索、ワードシーク、ワードスルース、またはミステリーワードパズルは、グリッド内の単語の文字であるワードゲームであり、通常は長方形または正方形の形状をしています。このパズルの目的は、ボックス内に隠されているすべての単語を見つけてマークすることです。単語は、水平、垂直、または斜めにすることができます。多くの場合、隠された単語のリストが提供されますが、より挑戦的なパズルはプレーヤーにそれらを理解させるかもしれません。多くの単語検索パズルには、すべての隠された単語が関連しているテーマがあります。

このチャレンジの単語検索はすべて長方形のグリッドになり、検索する単語のリストが提供されます。単語は、垂直、水平、または斜めに書くことができます。


入出力

ユーザーは単語検索を入力してから、グリッドで検索する単語を入力します。これらの2つの入力は、作成する関数に渡されます。これらのオブジェクトをどのように宣言して処理するかは、あなた次第です。

以下に説明する戦略または独自の戦略を使用して、関数は検索で特定の単語を検索し、その開始座標(単に行番号と列番号)と終了座標を出力します。単語が2つ見つかった場合は、両方の座標セットを出力する必要があります。単語が回文である場合、単語の「開始」となる一方の端を任意に選択できます。


入力:

見つける言葉:codegolf

出力:


戦略

使用を検討する可能性のあるいくつかの戦略を次に示します。使用する戦略を決定するのは完全にあなた次第です。このリストに含まれている必要はありません。

  • 単語の最初の文字を探しています。出現するたびに、周囲の8文字を見て、単語の次の文字がそこにあるかどうかを確認します。
  • 上記と同じですが、同じ文字が2つ並んでいる単語の一部を探す点が異なります。
  • アルファベットの各文字がグリッド全体に存在する頻度を数え、検索する必要のある単語から最も出現頻度の低い文字の1つを選択して、その文字を検索します。文字が出現するたびに、周囲の8つの文字を調べて、単語の次の文字と前の文字がそこにあるかどうかを確認します。
0 投票する
15 に答える
4008 参照

code-golf - コードゴルフ:マンデルブロ集合

コードゴルフの通常のルール。これが例としてのPythonでの実装です

結果は次のようになります

マンデルブロ集合

画像ライブラリの使用が許可されています。または、ASCIIアートを使用することもできます。このコードは同じことをします

結果

編集

アスキーアートのルール:

  • 行/列のサイズはパラメーター化されており、コードは任意の有効な値で機能する必要があります。
  • 反復回数に応じて、密度が少なくとも3レベル異なります(したがって、そこにある私のプロトタイプは準拠していません)
  • 水平方向(つまり、私のプロトタイプは準拠していません)
  • 重要なパラメータは固定されています(最大反復= 1000、暴走値x x + y y <= 4.0)

グラフィックのルール:

  • 行/列のサイズはパラメーター化されており、コードは任意の有効な値で機能する必要があります。
  • 少なくとも3レベルの色、グレースケール
  • 水平方向(私のプロトタイプは準拠しています)
0 投票する
9 に答える
10079 参照

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 (102)
k = thousand (103)
M = million (106)
G = billion (109)
T = trillion (1012)
P = quadrillion (1015)
E = quintillion (1018)

サンプル入力/出力(入力は個別の引数として渡すことができます):

最初の引数は、短縮する整数になります。2番目は小数点以下の桁数です。


関連する質問からの元の回答(JavaScript、仕様に準拠していません):

0 投票する
15 に答える
2068 参照

language-agnostic - コードゴルフ:MSM乱数ジェネレーター

チャレンジ:

Middle-Squareメソッドを使用して一連の(疑似)乱数を生成する文字数による最短のコード。

(疑似)乱数生成のミドルスクエア法は、1946年にジョンフォンノイマンによって最初に提案され、次のように定義されています。

R n + 1 = mid((R n2、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

先行ゼロに関する限り、答えは先行ゼロを表示するべきではないということです:)。

0 投票する
6 に答える
2480 参照

language-agnostic - コードゴルフ:あみだくじ

チャレンジ

あみだくじの方法を使用して、数値と有効な文字列パターンが与えられた場合に、数値解を出力する文字数による最短のコード。

明確化

  1. 入力を気にしないでください。他の場所で与えられた値を考慮してください。
  2. 両方の入力値が有効です。列番号は既存の列に対応し、パターンには記号、、、(および[スペース]、[LF])のみが含まれ|ます。また、隣接する2つの列の両方にダッシュを含めることはできません(同じ行に)。-=
  3. パターンの寸法は不明です(最小1x1)。

明確化#2

  1. 2つの無効なパターンがあります:|-|-|そして|=|=|それは曖昧さを生み出します。指定された入力文字列にそれらが含まれることはありません。
  2. 入力変数はすべて同じです。パターンを表す数値と文字列。
  3. 応募者は関数を作成する必要があります。

テストケース

編集:期待される結果を修正