問題タブ [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.
code-golf - コード ゴルフ: すべてのアナグラムを見つける
その単語の文字を並べ替えて別の単語を形成できる場合、その単語はアナグラムです。
仕事:
与えられた単語リストからアナグラムのすべてのセットを見つけるための、文字数による最短のソース コード。
スペースと改行は文字としてカウントする必要があります
コード定規を使う
---------10--------20--------30--------40--------50---- ----60--------70--------80--------90--------100-------110- ------120
入力:
各単語が改行で区切られた stdin からの単語のリスト。
例えば
出力:
アナグラムのすべてのセット。各セットは個別の行で区切られています。
実行例:
私は149文字のperlソリューションを持っており、さらに数人が投稿するとすぐに投稿します:)
楽しむ!
編集:説明
- アナグラムは大文字と小文字を区別しないと仮定します (つまり、大文字と小文字は同等です)。
- 複数のアイテムを含むセットのみを印刷する必要があります
- アナグラムの各セットは一度だけ印刷する必要があります
- アナグラム セット内の各単語は 1 回だけ出現する必要があります
EDIT2: さらなる説明
- 2 つの単語の大文字と小文字のみが異なる場合は、それらを同じ単語に折りたたむ必要があります。折りたたまれた単語に使用する大文字と小文字のスキームを決定するのはユーザー次第です。
- 単語のセットは、各単語が何らかの方法で区切られている限り (コンマ区切りやスペース区切りが有効である限り)、新しい行で終了する必要があります。一部の言語にはクイック配列印刷メソッドが組み込まれていることを理解しています。これにより、スペースで区切られた配列を出力しない場合にそれを利用できるはずです。
string - コードゴルフ:ワードサーチソルバー
注:これは私の最初のコードゴルフのチャレンジ/質問であるため、以下の正しい形式を使用していない可能性があります。この特定の質問にタグを付ける方法がよくわかりません。これはコミュニティウィキにする必要がありますか?ありがとう!
このコードゴルフの課題は、単語検索を解決することです。
ウィキペディアで定義されている単語検索は次のとおりです。
ワード検索、ワード検索、ワードシーク、ワードスルース、またはミステリーワードパズルは、グリッド内の単語の文字であるワードゲームであり、通常は長方形または正方形の形状をしています。このパズルの目的は、ボックス内に隠されているすべての単語を見つけてマークすることです。単語は、水平、垂直、または斜めにすることができます。多くの場合、隠された単語のリストが提供されますが、より挑戦的なパズルはプレーヤーにそれらを理解させるかもしれません。多くの単語検索パズルには、すべての隠された単語が関連しているテーマがあります。
このチャレンジの単語検索はすべて長方形のグリッドになり、検索する単語のリストが提供されます。単語は、垂直、水平、または斜めに書くことができます。
入出力
ユーザーは単語検索を入力してから、グリッドで検索する単語を入力します。これらの2つの入力は、作成する関数に渡されます。これらのオブジェクトをどのように宣言して処理するかは、あなた次第です。
以下に説明する戦略または独自の戦略を使用して、関数は検索で特定の単語を検索し、その開始座標(単に行番号と列番号)と終了座標を出力します。単語が2つ見つかった場合は、両方の座標セットを出力する必要があります。単語が回文である場合、単語の「開始」となる一方の端を任意に選択できます。
例
入力:
見つける言葉:codegolf
出力:
戦略
使用を検討する可能性のあるいくつかの戦略を次に示します。使用する戦略を決定するのは完全にあなた次第です。このリストに含まれている必要はありません。
- 単語の最初の文字を探しています。出現するたびに、周囲の8文字を見て、単語の次の文字がそこにあるかどうかを確認します。
- 上記と同じですが、同じ文字が2つ並んでいる単語の一部を探す点が異なります。
- アルファベットの各文字がグリッド全体に存在する頻度を数え、検索する必要のある単語から最も出現頻度の低い文字の1つを選択して、その文字を検索します。文字が出現するたびに、周囲の8つの文字を調べて、単語の次の文字と前の文字がそこにあるかどうかを確認します。
excel - コードゴルフ:Excelの列名に相当する数値
チャレンジ
Excelの列文字列に相当する数値を出力する文字数による最短のコード。
たとえば、A
列は1、2 B
、というように続きます。を押すZ
と、次の列は、、というAA
ようAB
になります。
テストケース:
コードカウントには、入力/出力(つまり完全なプログラム)が含まれます。
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つの無効なパターンがあります:
|-|-|
そして|=|=|
それは曖昧さを生み出します。指定された入力文字列にそれらが含まれることはありません。 - 入力変数はすべて同じです。パターンを表す数値と文字列。
- 応募者は関数を作成する必要があります。
テストケース
編集:期待される結果を修正
language-agnostic - コードゴルフ:Code39バーコード
チャレンジ
Code39バーコードのASCII表現を描画するための文字数による最短のコード。
Code 39に関するウィキペディアの記事:http: //en.wikipedia.org/wiki/Code_39
入力
入力は、Code39バーコードの有効な文字列になります。これは、43文字が有効であることを意味します:0
-- 9
A
(Z
スペース)および
-.$/+%
。文字は*
開始文字と停止文字として使用されるため、入力には表示されません。
出力
Code 39バーコードでエンコードされた各文字には、9つの要素、5つのバー、および4つのスペースがあります。バーは#
文字で表され、スペースはスペース文字で表されます。9つの要素のうち3つは幅が広くなります。幅の狭い要素は1文字幅になり、幅の広い要素は3文字幅になります。各文字パターンの間に、単一のスペースの文字間スペースを追加する必要があります。バーコードの高さが8文字になるように、パターンを繰り返す必要があります。
開始/停止文字*
(bWbwBwBwb)は、次のように表されます。
- 開始文字と停止文字
*
は、バーコードの開始と終了時に出力する必要があります。 - バーコードの前後に静かなスペースを含める必要はありません。
- チェックディジットを計算する必要はありません。
- 完全なASCIICode39エンコーディングは必要ありません。標準の43文字だけです。
- 出力内容を識別するために、ASCIIバーコード表現の下にテキストを印刷する必要はありません。
- 必要に応じて、キャラクターをより高密度の別のキャラクター
#
に置き換えることができます。フルブロック文字U+2588を使用すると、印刷時にバーコードを実際にスキャンできるようになります。
テストケース
コード数には入出力(フルプログラム)が含まれます。
language-agnostic - Code Golf: 1x1 黒ピクセル
最近、お気に入りの画像エディターを使用して 1x1 の黒いピクセルを作成しました (これは、HTML で塗りつぶされたボックスを安価に描画したい場合に便利です)。モノクロPNGにしたのに120バイトになってしまった!つまり、それはちょっと急です。120 バイト。 1 ピクセルの場合。次に、それを GIF に変換すると、サイズが 43 バイトに減少しました。はるかに優れていますが、それでも...
チャレンジ
1x1 の黒ピクセルを生成する、または生成する最短の画像ファイルまたはプログラム。提出物は次のとおりです。
- 1x1 の黒ピクセルを表すイメージ ファイル。選択する形式は、1x1 よりも大きな画像を表現できる必要があり、アドホックであってはなりません (つまり、コード ゴルフ用に作成したばかりの画像形式であってはなりません)。画像ファイルはバイト数でランク付けされます。
- このような画像ファイルを生成するプログラム。プログラムは、通常のコード ゴルフと同様に、文字数によってランク付けされます。
回答がこれら 2 つのカテゴリのいずれかに該当する限り、すべてがフェア ゲームです。
また、画像ファイルの場合は、外部の画像ホストを使用するのではなく、16 進数またはエスケープで指定してください :-)
math - コード ゴルフ: すべて +-*/ 3 つの整数の組み合わせ
スペースで区切られた 3 つの整数を取り、可能な加算、減算、乗算、および除算演算のすべての組み合わせを実行し、使用した演算の組み合わせで結果を表示するプログラムを作成します。
例:
$./solution 1 2 3
次の出力が得られます
1+2+3 = 6
1-2-3 = -4
1*2*3 = 6
1/2/3 = 0
(整数の回答のみ、0.5 で切り上げ)
1*2-3 = -1
3*1+2 = 5
等...
操作規則の順序が適用されます。括弧が使用され(3-1)*2 = 4
ていない、つまり組み合わせではないことを前提としていますが、「余分なクレジット」のためにこれを実装できます
0 による除算が発生した結果については、単純に NaN を返します。
編集:入力の並べ替えが必要です。つまり、入力が の場合1 2 3
、3*1*2
有効な組み合わせです。