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

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

24
並べ替えられた!Combinatorics:Subfactorialの計算
subfactorial又はrencontres番号(A000166は)置換の組合せ論に表示階乗番号と同様の番号のシーケンスです。特に、n番目の階乗!nは、n個の要素のセットの混乱の数を示します。混乱とは、同じ位置に要素が残っていない順列です。サブ階乗は、次の繰り返し関係を介して定義できます。 !n = (n-1) (!(n-1) + !(n-2)) 実際、階乗についても同じ再帰関係が成り立ちますが、下位階乗については次から始まります。 !0 = 1 !1 = 0 (階乗の場合、もちろん1!= 1になります。) あなたの仕事は計算することである!nは、与えられたn個。 ルール 階乗のように、階乗も非常に速く成長します。プログラムが入力nのみを処理でき、!nが言語のネイティブの数値型で表現できる場合は問題ありません。ただし、アルゴリズムは理論的には任意のnに対して機能する必要があります。つまり、積分結果と中間値は、言語で正確に表現できると仮定できます。定数eが有限精度で保存または計算される場合、これは定数eを除外することに注意してください。 結果は正確な整数である必要があります(特に、科学表記法で結果を近似することはできません)。 プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース n !n 0 1 1 0 2 1 3 2 4 9 5 44 6 265 10 1334961 12 176214841 13 2290792932 14 32071101049 20 895014631192902121 …

30
数値の逆数(1 / x)
チャレンジ (浮動小数点/ 10進数)数を指定して、その逆数、つまり1を数で割った値を返します。出力は、単なる整数ではなく、浮動小数点/ 10進数でなければなりません。 詳細仕様 入力を浮動小数点/ 10進数の形式で受け取る必要があります... ...少なくとも有効数字4桁の精度が必要です(必要な場合)。 多いほど良いですが、スコアには含まれません。 許容可能な出力方法で出力する必要があります... ...数の逆数。 これは、1 / x、x⁻¹として定義できます。 少なくとも有効数字4桁の精度で出力する必要があります(必要な場合)。 入力は正または負で、絶対値は[0.0001、9999]の範囲内にあります。小数点以下4桁以上、ゼロ以外の最初の桁から4桁以上は与えられません。出力は、最初の非ゼロから4桁目まで正確である必要があります。 (ありがとう@MartinEnder) 入力例を次に示します。 0.5134 0.5 2 2.0 0.2 51.2 113.7 1.337 -2.533 -244.1 -0.1 -5 4桁を超える精度を持つ入力は決して与えられないことに注意してください。 Rubyのサンプル関数は次のとおりです。 def reciprocal(i) return 1.0 / i end ルール 受け入れられたすべての形式の出力が許可されます 禁止されている標準的な抜け穴 これはcode-golfで、バイト単位の最短回答が勝ちますが、選択されません。 明確化 入力を受け取ることはありません0。 報奨金 この課題はほとんどの言語では明らかに些細なことですが、より難解で異常な言語では楽しい課題になる可能性があります。 @DJMcMayhemは、ブレインフラックは浮動小数点数では難しいことで有名なので、最短のブレインフラックの回答に対して+150ポイントの賞金を授与します。 @ L3viathanは、最短のOIL回答に対して+150ポイントの報奨金を授与します。OILにはネイティブの浮動小数点型はなく、除算もありません。 …

7
通訳通訳
この質問に対するジョージ・エジソンのコメントに基づいて、最小の自己解釈通訳を書きます。 選択した言語を使用できます。 空の言語はカウントされません。プログラムの長さは少なくとも2文字でなければなりません。 プログラムは言語全体を解釈する必要はなく、言語機能のチューリング完全サブセット(インタープリターを含む)のみを解釈する必要があります。 クインはカウントされません。 言語の組み込みeval関数または同等の関数を使用しないでください。同じことがのために行くapplyなど、

22
人生、宇宙、ASCIIアートへの答え
簡単な課題:できるだけ少ないバイト数で次のテキストを出力してみてください。 the answer toli fetheuniv ersea nde ver ything the ans wer tol ife the uni ver sean dev ery thin gth ean swer tolifetheuni ver seandeveryth ing the ans wer tol ifetheuniver sea ndeverything 元の図面には332文字が含まれています。 ルール 入力なしまたは未使用の入力。 出力は、任意の妥当な形式(文字列、文字列のリスト、文字のマトリックスなど)にすることができます。 必要に応じて、描画に小文字ではなく大文字を使用できます。 末尾の空白と改行が許可されます。 これはcode-golfなので、各言語の最短のプログラム/機能が勝つかもしれません! ノート これは、私たちがゴルフをコーディングするのは見知らぬ人ではないという重複の可能性があると特定されています。ルールを知っているので、私もそうです。その質問は、テキストの検索と置換に関するものでした。ここでは、特定のテキストを使用して図形を描画する必要があります。現在の回答のうち少なくとも2つは、この場合、ゴルフ言語がプレーンな圧縮アルゴリズムに勝ることを示しています。

25
マジックポップカウント数
32ビット符号なし整数のセットビット数をカウントする有名なトリッキーなアルゴリズムがあります。 int popcount(unsigned x) { x = (x & 0x55555555) + ((x >> 1) & 0x55555555); x = (x & 0x33333333) + ((x >> 2) & 0x33333333); x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F); x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF); x …

30
465アレンジメント
これが課題です。範囲内のすべての整数を出力するコードを作成します。簡単に聞こえますが、ここで注意が必要な部分があります。最小の番号から開始し、次に最大の番号になります。次に、配列にまだない最小の番号。それから、まだその中にない最高。 例: 1〜5を開始点としてみましょう 番号は[1、2、3、4、5]です。 私たちは最初のものを取るので、[1]。残りの数字は[2、3、4、5]です。最後に、新しい配列は[1、5]です。残りの数字は[2、3、4]です。最初の新しい配列は[1、5、2]です。残りの数字は[3、4]です。最後の新しい配列は[1、5、2、4]です。残りの数字は[3]です。最初の新しい配列は[1、5、2、4、3]です。残りの数字はありません、完了です。出力[1、5、2、4、3] ルール: これはコードゴルフです。最小のバイト数で、あらゆる言語で記述してください。 標準的な抜け穴はありません。 オンライン通訳へのリンクをお願いします。(例:https : //tio.run/) 2つの入力、両方とも整数。範囲の下限と範囲の上限。 出力のデータ型は何でも構いませんが、正しい順序で数字を表示する必要があります。 例 低:4高:6結果:4 6 5 低:1高:5結果:1 5 2 4 3 低:-1高:1結果:-1 1 0 低:-1高:2結果:-1 2 0 1 低:-50高:50結果:-50 50 -49 49 -48 48 -47 47 -46 46 -45 45 -44 44 -43 43 -42 42 -41 41-40 40 …
24 code-golf 

4
感謝していません!…またはそれは?
前書き ストリートトークは、特にプログラマーにとっては理解するのが非常に難しい場合があります。 私たち全員が都市環境で生き残るのを助ける通訳を作成するのはあなたの仕事です。 チャレンジ 入力として英語の文を指定して、文の結果が正か負かを決定するプログラムまたは関数を作成します。 文には否定的な単語が含ま0れ2ます。プログラマなら誰でも知っているように、二重の負は正になります。したがって、コードは、次の規則に従って、true / falsey値を出力または返す必要があります。 No negative words -> truthy One negative word -> falsey Two negative words -> truthy 否定的な単語のリスト: no、not、none で終わるもの n't never、neither、nor nobody、nothing、nowhere エッジケースが1つあります。文がで始まるときはいつでも、No,結果を決定するときにその単語は否定的な単語として扱われません(否定的な単語の数にカウントされるので、もう1つだけあります)。 文は基本的な文法規則(大文字、句読点)に従い、辞書から検索できる単語のみを含みます(幸いなことに、これは質問のタイトルを無効にしません)。この文には固有名詞は含まれません(申し訳ありませんが、Dr。いいえ、あなたは外出しています)。 テストケース 真実: Yes. It's noon. Hello, World! What is this? Ain't no thang! Never say never. No, it's noon …

30
base-n番号からのASCIIアート圧縮解除
これは、Magic Octupus Urnによる05AB1Eの回答に触発されました。 2つの引数、正の整数と文字列/文字のリストが与えられた場合: 数値をbase-nに変換します。nは文字列の長さです。 各文字について、base-n番号のその文字のインデックスのすべての外観をその文字に置き換えます。 新しい文字列を印刷するか返します。 例: Input: 2740, ["|","_"] 2740 -> 101010110100 in base 2 -> Replace 0s with "|" and 1s with "_" Output: _|_|_|__|_|| Input: 698911, ["c","h","a","o"] 698911 -> 2222220133 in base 4 -> Replace 0s with "c", 1s with "h", 2s with "a", and 3s …

21
これを何回押すべきですか?
私たちは皆、昔ながらの電話キーパッドに慣れていますよね?参考までに、次のようになります。 小文字のASCII文字と単一のスペースのみで構成される文字列を考えると、あなたの仕事は、上記のように電話のキーパッドで文字列全体を入力するために必要なタップ数を返すことです。 これに不慣れな方のために、以下にその仕組みを示します。 2たとえば、数字が付いたキーには、文字列もabc書き込まれています。を入力するにはa、このキーを1回b押すc必要があります。2回押す必要があり、3回押す必要があります。 同じキーにある連続した文字の場合、もう一度押す前に1秒待つ必要があります。したがって、を入力する場合はcb、を3回押してc、1秒待ってから、を2回押しbて5タップする必要があります。 同じことが他のすべてのキーにも当てはまりますが、1回押すだけでよい1 つのスペースを除きます。また、キー7に9は4つの文字があります。同じアルゴリズムが適用され、唯一の違いは文字数です。各キーに対応する文字列は、上の画像(ただし小文字)、または受信する可能性のあるすべての文字を含む次のリストにあります。 "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " " テストケース 入力->出力(説明) ""-> 0(何もタップしないでください) "water"-> 8( "w、a、t"はそれぞれ1タップ(キー9、2および8)、 "e"は2タップ(キー3)、 "r"は3タップ(キー7) )、1 + 1 + 1 + 2 + 3 = 8) 「石鹸」-> 9(4 + 3 + 1 + 1) 「カンデラ」-> 13(3 + 1 + …

9
Graeco-Latin正方形を生成する
免責事項:私は、非総当たり的な解決策を知りません Graeco-Latin正方形は、同じ長さ 2つのセットの場合、のセルの配置であり、各セルには、最初のセットの要素と2番目のセットの要素の一意の(正方形全体)ペアが含まれます。そのため、ペアのすべての最初の要素とすべての2番目の要素は、行と列で一意です。使用される最も一般的なセットは、推測できるように、ギリシャ語とラテン語のアルファベットの最初の文字です。nnnn × nn×nn \times nnnn これは、4x4のグレコラテン広場の写真です。 Graeco-Latinの正方形は、見た目と同じくらい便利です(Wikipediaの記事では、「実験の設計、トーナメントのスケジューリング、および魔方陣の構築」に言及しています)。あなたのタスクは、正の整数与えられ、グレコ-ラテン二乗を生成します。nnnn × nn×nn\times n 入力 正の整数 ; Graeco-Latin正方形が存在することが保証されます(つまり、)。n > 2n>2n > 2n × nn×nn\times nn ≠ 6n≠6n \ne 6 出力 二次元配列、配列の配列、平坦化された配列、または直接出力としての辺の長さnのGraeco-Latin正方形。 ノート ギリシャ語とラテン語のアルファベットを特に使用する必要はありません。たとえば、正の整数のペアを出力することもできます。 任意に拡張できないアルファベットを使用する場合、(理論的には、宇宙の熱死の前にコードを終了する必要はありません)少なくとも20の最大辺の長さをサポートする必要があります。 これはcode-golfなので、最短のコードが優先されます!
24 code-golf 

7
六角形を展開する
ASCIIアートの六角形を入力として指定し、辺がすべて1単位長い出力1 _____ ____ / \ / \ / \ / \ / \ \ \ => \ \ \ / \ / \____/ \ / \_____/ 入力六角形は180度の対称性を持ちますが、それ以外の場合、辺はすべて異なる長さにできます。上記では、辺の長さ(2、4、3)は(3、5、4)に拡大されます。辺の長さはゼロ以外になります。 六角形は、アンダースコア_、スラッシュ/、およびバックスラッシュで構成されています\。(アンダースコアで作成された)水平エッジのうち、上端は独自の線上にありますが、下端はそうではありません。 I / O ここではスティッカーになりますが、ここではascii-artの書式設定が必要です。入力と出力は、行のリストではなく、イメージを表す改行を含む文字列にする必要があります。もちろん、コードは各行を順番に印刷して画像を生成するか、言語がそれを行うことができる場合は入力のために1行ずつSTDINを読み取ることができます。 詳細 入力には、必要に応じてオプションの末尾の改行を含めることができますが、それ以外の場合は空の行はありません。入力に末尾のスペースがないようにするか、各行を同じ長さ(最長の行)に埋め込むスペースを選択できます。 出力は、入力と同様に画面の左端と同じ高さにする必要があります。上下に余分な改行があり、末尾にスペースがある場合があります。 テストケース 入力に続いて出力。 _ / \ \_/ __ / \ / \ \ / \__/ ____ …

13
2つの回文では不十分です
などの一部の数字は、10を底とする回文です。数字を逆の順序で書くと、同じ数字になります。142411424114241 いくつかの数字は2つの回文の合計です。たとえば、、またはです。110 = 88 + 22110=88+22110=88+222380 = 939 + 14412380=939+14412380=939+1441 他の数字では、2回の回文では不十分です。たとえば、21は2回の回文の合計として書くことはできず、できる最善の方法はです。21 = 11 + 9 + 121=11+9+121=11+9+1 整数入力nを受け取り、n2つの回文の合計として分解できないth数を出力する関数またはプログラムを作成します。これは、OEIS A035137に対応しています。 1桁(0を含む)は回文です。 シーケンスの標準ルールが適用されます。 入出力は柔軟です 0インデックスまたは1インデックスを使用できます n番目の項、最初のn項、または無限シーケンスを出力できます (補足:すべての整数は、最大3つのパリンドロームの合計として分解できます。) テストケース(1-indexed): 1 -> 21 2 -> 32 10 -> 1031 16 -> 1061 40 -> 1103 これはコードゴルフなので、最短の答えが勝ちです。

3
配列からツリーを描く
1桁の正の整数の入れ子になっている可能性のある空でない配列(一意であることが保証されていない)を指定すると、ボックス描画文字を使用してASCIIアート表現をツリーとして出力します┌ ┴ ┐ ─ │ ┬ ┼。(これらはコードページ437からコピーされましたが、同等の表現を使用できます)。 配列のすべての整数は、ツリーの葉でなければなりません。配列の同じレベルの要素は、ツリーの同じレベルに存在する必要があります。すべての要素は、明確に区別できるように十分な空白で区切る必要があります(1つのスペースの最小幅を決定するのはユーザー次第です)。 たとえば、与えられた配列[[1, [2]], [3, [4, 5]]]、次のツリーを出力します ┌─┴─┐ ┌┴┐ ┌┴─┐ 1 │ 3 ┌┴┐ 2 4 5 配列の場合[1, 2, 3]、ツリーは次のようになります ┌─┼─┐ 1 2 3 しかし、配列[[1, 2, 3]]は次のようになります │ ┌─┼─┐ 1 2 3 配列[1, [1, [1, [1]]]]は次のようになりますが ┌─┴┐ 1 ┌┴─┐ 1 ┌┴┐ 1 │ 1 …

17
50,000未満のスネーキング番号のリストを作成します
スネークナンバーチャレンジ 1〜50,000のスネークナンバーがいくつあるのだろうか。 このゲームのスネーキング番号は、1つのキーを上下左右に動かすことにより、従来の番号パッド(下の形式)で入力できる番号です。 7 8 9 4 5 6 1 2 3 0 たとえば、5番から始める場合、次の有効な移動として4、6、8、または2を選択できますが、7、3、9、および1は現在のキーに対して斜めに配置されるため、立ち入り禁止です。したがって、5、2の場合、次に実行可能なキーの選択肢は0、1、3、または5です。 このコードゴルフの演習では、1〜50kの正のスネーキング数のリストと、基準を満たすすべての数の最終カウントを出力します。 ルール 数字をゼロから始めることはできません。 数値は正の整数でなければなりません。 左から右に読むそれぞれの連続した数字は、数字パッドの周りに「蛇」しなければなりません。 ヘビはキーを斜めに移動できません 番号0は、番号1と2の両方からアクセスできます。 番号をペアにすることはできません(例:22) 有効なスネーキング番号の例: 12369 45201 1254 10102 1 12 987 無効な番号の例 1238 - 8 is not connected 0001 - multiple leading 0s 0101 - leading 0 159 - snake cannot …
24 code-golf 

30
ゼロから遠ざかる
ゼロから遠ざかる ゼロに向かってラウンドに触発されました。 任意の合理的な方法で入力された数値を、「ゼロから離れる」ように数値を切り上げます-正の数値は切り上げ、負の数値は切り捨てます。 入力を文字列として(たとえば、STDINを介して)取得する場合は、小数点の有無にかかわらず数値を処理できる必要があります。数値として使用する場合、少なくとも浮動小数点精度(倍精度は不要)または有理数を処理できる必要があります。 必要に応じて、小数点付きの浮動小数点数(42.0など)を出力できます。(または、回答が短くなる場合は、テストケースに浮動小数点と出力整数を出力させることもあります。) 標準的な抜け穴などは許可されません テストケース -99.9 => -100 -33.5 => -34 -7 => -7 -1.1 => -2 0 => 0 2.3 => 3 8 => 8 99.9 => 100 42.0 => 42 -39.0 => -39 サンドボックスリンク
24 code-golf  number 

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