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

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

3
音素アブギダ
キャラクター これらのUnicode文字を英語のIPA子音と呼びましょう: bdfhjklmnprstvwzðŋɡʃʒθ そして、これらのUnicode文字を英語のIPA母音と呼びましょう : aeiouæɑɔəɛɜɪʊʌː (はい、ː単なる長母音マークですが、この課題のために母音として扱います。) 最後に、これらは一次および二次ストレスマークです: ˈˌ ことに留意されたいɡ(U + 0261)小文字gではなく、一次ストレスマーカーˈ(U + 02C8が)アポストロフィではなく、ː(U + 02D0)は、結腸ではありません。 あなたのタスク 単語が与えられたら、続く子音の上に母音を重ね、前に来る子音の下に強勢マーカーを置きます。(質問のタイトルが示唆するように、子音母音シーケンスがユニットとしてまとめられているような書記体系はabugidaと呼ばれます。)入力が与えられると、出力ˈbætəlʃɪpを生成します。 æə ɪ btlʃp ˈ 単語は上に定義した、子音、母音、およびストレスマークの文字列であることが保証されます。連続する強勢記号は決して存在せず、それらは常に単語の先頭および/または子音の前に置かれます。 テストケース 母音が連続している場合があります。例えば、kənˌɡrætjʊˈleɪʃənとなり ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 単語が母音で始まる場合、子音と「ベースライン」に印刷:əˈpiːlとなり ː i əpl ˈ 初期の強調母音を含むテストケース:にˈælbəˌtrɔsなります ə ɔ ælbtrs ˈ ˌ 長い言葉:にˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəsなる æ ː ː ʊ uə aə …

12
ワンパス迷路を生成する
奇数の整数N(5 <= N <= 51)が与えられた場合、次の要件に従う辺の長さNの迷路を生成します。 迷路はキャラクター | -とで構成する必要があり+ます。|キャラクターを垂直の壁、-キャラクターを水平の壁として使用する必要があり、その壁が回転する場合、キャラクター+を使用する必要があります。 パスの幅は1文字でなければなりません。 迷路は少なくとも4回回転する必要があります。 迷路の外壁は、開始点と終了点の2点で壊れている必要があります。 迷路は、開始から終了までの1つの非破壊パスで構成されている必要があります。 たとえば、次は有効な迷路です:(N = 5) +---+ | | | | | | --+-- そして用N = 7: --+---+ | | | | | | | | | | | | | | | | +---+-- これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。

5
A047841:自伝的な数字
定義 番号を記述するプロセスは次のとおりです。 から0までの各番号9は、番号に含まれています。 その数字の頻度を書き留め、次に数字を書き留めます。 たとえば、番号の場合10213223: の1発生が0あります 2の発生1、 3の発生2、 2の発生3。 したがって、記述する数値10213223は10213223(10最初のプロパティ21から、2番目のプロパティからなど)です。 数字の出現回数は9を超える場合があることに注意してください。 仕事 自分自身を説明するすべての数字を印刷/出力する必要があります。 スペック 標準の抜け穴が適用されますが、出力をハードコーディングしたり、プログラムに出力に関連する情報を保存したりすることはできません。 出力の番号は任意の順序で指定できます。 出力内の数字は重複することが許可されています。 出力の代わりに印刷することを選択した場合、任意の区切り文字を使用できます。 出力の代わりに印刷することを選択した場合、出力の前置または後置、あるいはその両方が許可されます。 区切り文字、接頭辞、および接尾辞に数字を含めることはできません(U + 0030〜U + 0039)。 ソリューションは1日で計算する必要があります。 全リスト(109アイテム) 22 10213223 10311233 10313314 10313315 10313316 10313317 10313318 10313319 21322314 21322315 21322316 21322317 21322318 21322319 31123314 31123315 31123316 31123317 31123318 31123319 31331415 31331416 31331417 …

2
ソリティアチェスパズルを解く
最近、ソリティアチェスとして知られるパズルゲームを紹介されました。ここでルールを要約します。 ボードは4x4チェッカーボードです。 すべてのピースは同じ色(チームなし)であり、すべてのピースは他のピースをキャプチャできます。 すべての動きはキャプチャでなければなりません。空の正方形に移動しません。 最後にちょうど1つのピースが残っている必要があります。 すべてのピースはチェスの場合とまったく同じように移動しますが、1つの変更点があります。ポーンは任意の斜め方向にキャプチャできます(技術的にはferzになります)。知らないかもしれない人のために、私は運動図を含めました。 ここでは、チェスの他のルール(チェック、キャスティングなど)は適用されません。キャプチャがすべてです。 キング(K) K * . . | * K * . | * * * . * * . . | * * * . | * K * . . . . . | . . . . | * * * . …
12 code-golf  chess 

3
投票の三角形を確認する
投票数我々は、ラベルう、Bは、それぞれ行及び列は、任意の昇順になるように、三角形にBを通って1から番号を配置するいくつかの方法(B + 1)/ 2です。最初の4つの投票番号は次のとおりです。 a(0) = 1 a(1) = 1 a(2) = 1 a(3) = 2 a(3)は2です。つまり、1から2までの数字3(3+1)/2 = 6をこのような三角形に配置するには2つの方法があります。 1 1 2 3 or 2 4 4 5 6 3 5 6 詳細については、OEISシーケンスエントリを参照してください。 投票の三角形を与えられたあなたの挑戦は、その正しさを検証することです。投票三角形の条件を満たす(行と列が増加する)場合、三角形を正しく配置するために他にいくつの方法(入力の方法を除く)を出力する必要があります。入力三角形が正しく構成されていない場合は、何も出力しないでください。 末尾の改行が許可されます。 入力 有効な投票三角形である場合とそうでない場合がある数字の三角形。例えば: 1 2 3 4 5 6 1 10 5 9 8 2 7 …

18
10進数へのすべてのバイナリの組み合わせ
免責事項 この質問は、この質問の複製ではありません。特定の桁をカウントしていません。初期パラメーターで既に設定されているためです。この質問は、提供された数字に基づいてバイナリ文字列から構築できる10進数に焦点を当てています。 チャレンジ それぞれゼロ()と1()の数を表す2つの整数Xとが与えられた場合、提供されたゼロと1のみを使用してバイナリ文字列を作成することで決定できるすべての可能な10進数を計算し、出力として表示します。Y01 例1: 入力: 0 1 出力: 1 説明:説明1する対象は1つだけであり、一方向にのみ変換できます。 例2: 入力: 1 1 出力: 1,2 説明:011に10変換し、2 に変換します。 例3: 入力: 3 2 出力: 3,5,6,9,10,12,17,18,20,24 説明:3 0秒と2 1秒で00011(3)、00101(5)、00110(6)、01001(9)、01010(10)、01100(12)、10001(17)、10010(18)、10100(20)、11000(24) 制限と規則 コードが機能するの0 < X + Y <= 16は、出力の最大数が16からのみ発生する場合1(つまり、パラメーター0と)のみ16です。 上記の制限の結果、出力で予想される数値の範囲はfrom 0および65535です。 コンマ区切りリスト、配列、STDOUTに出力されるリストなど、結果の出力が提供される限り、関数またはコードを受け入れます。出力について強調しなければならない唯一の基準は、ソートする必要があることです。 これはコードゴルフであり、最小バイトは最大の栄光を受け取ります。 愚かな抜け穴を容認しません
12 code-golf  binary 

8
密番号シーケンス
OEIS:A167171 緻密数が正確(除数として1自体を含む)、非プライム除数として多くの素因数として持つ数です。同様に、それは素数または2つの異なる素数の積です。最初の100個の密な数字は次のとおりです。 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 29, 31, 33, 34, 35, 37, 38, 39, 41, 43, 46, 47, 51, 53, 55, 57, 58, 59, 61, 62, 65, 67, 69, 71, 73, 74, 77, 79, 82, 83, 85, 86, …

30
文字列の累積勾配を出力します
チャレンジ などの文字列が与えられた場合、文字Hello World!値に分解します72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33。 次に、連続する各文字ペアの差を計算します29, 7, 0, 3, -79, 55, 24, 3, -6, -8, -67。 最後に、それらを合計して最終結果を出力します-39。 ルール 標準的な抜け穴が適用されます この正確なタスクを実行する既製の機能を使用しない クリエイティブなソリューションが推奨されます 楽しんで これはcode-golfとしてマークされ、バイト単位の最短回答が勝ちますが、選択されません。

6
チェダーでのゴルフのヒント
Cheddarは、プログラミングを簡単、高速、直感的に行えるように設計された、ユーザーDowngoatによって作成された高レベルの機能的+オブジェクト指向プログラミング言語です。 チェダーでゴルフをするための一般的なヒントは何ですか?私はコードゴルフの問題に適用できるアイデアを探していますが、少なくともチェダー特有のアイデアも探しています(たとえば、「不要な空白を削除する」は答えではありません)。
12 code-golf  tips 

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

8
配列を自動ネストする
誰もがネストされたリストを愛しています!ただし、ネストされたリストを作成するのが難しい場合があります。深くネストするか、浅くネストするかを決定する必要があります。したがって、あなたの挑戦のために、リストを「自動ネスト」する必要があります。リストを自動ネストするには、リスト内のアイテムのすべてのペアを比較します。 2番目の項目が小さい場合は、次のように2つの要素の間に閉じ括弧と開き括弧を挿入して、2つの要素を分離します。 } { {2 , 1} たとえば、に{2, 1}なり{2}, {1}、に{3, 2, 1}なります{3}, {2}, {1} 2番目の項目が同じ場合、何も変更しません。たとえば{1, 1, 1}、同じままでに{2, 1, 1, 1}なり{2}, {1, 1, 1}ます。 2番目の項目が大きい場合、次のすべての項目を1レベル深くネストします。例えば、{1, 2}なる{1, {2}}と{1, 2, 3}なります{1, {2, {3}}} チャレンジ 数値のリストを受け取り、自動ネスト後に同じリストを返すプログラムまたは関数を作成する必要があります。ご使用の言語のネイティブリスト形式(または最も近い代替形式)または文字列として、この入力を取得してください。私の例のように中括弧を使用する必要はありません。一貫性がある限り、言語で最も自然な括弧を使用できます。リストには整数のみが含まれると仮定しても安全です。また、リストには少なくとも2つの数字が含まれると想定することもできます。サンプルIOを次に示します。 {1, 3, 2} --> {1, {3}, {2}} {1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, …

3
一般化された誕生日の問題
今夜、婚約者は私の誕生日を祝うために夕食に連れて行ってくれました。外出中、50人でいっぱいのレストランで5人のゲスト(私を含む)にハッピーバースデーが歌われるのを聞きました。これは私に不思議に思いました-元の誕生日の問題(人の部屋にいる2人がN同じ誕生日を共有する確率を見つける)は非常に単純で簡単です。しかし、少なくともk人のうちN、同じ誕生日を共有する確率を計算するのはどうでしょうか? ご参考までに、合計50人のうち少なくとも5人が同じ誕生日を共有する確率は、約1/10000です。 チャレンジ 2つの整数Nとが与えられた場合k、ここでN >= k > 0、少なくともkグループのN人々が同じ誕生日を共有する確率を出力します。物事を単純にするために、365の誕生日が常に存在し、すべての日が平等であると仮定します。 以下のためにk = 2、これはオリジナルの誕生日の問題に帰着し、確率である1 - P(365, N)/(365)**N(ここP(n,k)でn個の要素から形成されたk長順列の数)。の値が大きい場合k、このWolfram MathWorldの記事は役に立つかもしれません。 ルール 出力は決定的であり、選択した言語に対して可能な限り正確でなければなりません。これは、モンテカルロ推定またはポアソン近似がないことを意味します。 Nそしてk、あなたの選択した言語で表現可能な最大の整数を超えないようにします。選択した言語に整数の厳密な最大値がない場合(メモリの制約を除く)、Nおよびkは任意に大きくなる可能性があります。 浮動小数点の不正確さに起因する精度エラーは無視される場合があります-ソリューションは完全に正確な無限精度のフロートを想定する必要があります。 テストケース フォーマット: k, N -> exact fraction (float approximation) 2, 4 -> 795341/48627125 (0.016355912466550306) 2, 10 -> 2689423743942044098153/22996713557917153515625 (0.11694817771107766) 2, 23 -> 38093904702297390785243708291056390518886454060947061/75091883268515350125426207425223147563269805908203125 (0.5072972343239854) 3, 3 -> 1/133225 (7.5060987051979735e-06) 3, 15 …

3
自己参照多項式
与えられた次数ごとに、(で評価される)がallの多項式の項の係数になるように(n少なくとも1つ)積分多項式を構築することができます。それらを一意にするために、先頭の係数(の係数)が正で最小であることを要求します。pp(k)pkx^k0 <= k <= nx^n これらの多項式にはいくつかの興味深い特性があります。この挑戦をするように私を促したスレッドでいくつかの参照を見つけることができます。これらの多項式はhttps://oeis.org/A103423でも見つけることができます。 先験的な予期しないプロパティの1つは、次の条件に応じてルートがどのように動作するかnです。 ソース(/ u / zorngovおよび/ u / EpicSauceSc2による) 仕事 非負の整数n出力が与えられ、正のn先行係数が最小の次数の自己参照積分多項式。 詳細 出力は、文字列としてx^2-x-1、または係数のリストとして、人間が読める形式にすることができます[1,-1,-1]。(係数の順序は逆の場合もありますが、一貫している必要があります。) 最初のいくつかの出力 n=0: 1 n=1: x n=2: x^2-x-1 n=3: 10*x^3-29*x^2-6*x+19 n=4: 57*x^4-325*x^3+287*x^2+423*x-19 n=5: 12813*x^5-120862*x^4+291323*x^3+44088*x^2-355855*x-227362

9
リストを選択する
整数のリストと整数Lを指定すると、等しい長さのサブリストに分割されたN出力。LN 割り切れない長さ Nの長さを分割しない場合L、すべてのサブリストが同じ長さになることはできません。 いずれの場合でも、出力の最後のサブリストは、リストの残りを含むようにその長さを適合させるものです。 すべてのサブリストというこの手段L最後のものを除いては、長さであるべきであるがlength(L) // N、どこ//床の部門(例えばです3//2 = 1)。 いくつかのルール L 空にすることができます。 N >= 1。 任意の組み込みを使用できます。 を介して入力をSTDIN関数の引数として、または同様のものとして受け取ることができます。 出力をSTDOUTに出力し、関数から返すか、同様のものを出力できます。 あなたの言語のリストと整数の最も自然な表現である限り、リストと整数に任意の形式を選択できます。 テストケース Input: [1,2,3,4], 2 Output: [[1,2],[3,4]] Input: [-1,-2,3,4,-5], 2 Output: [[-1,-2],[3,4,-5]] Input: [1,2,3,4], 1 Output: [[1,2,3,4]] Input: [4,8,15,16,23,42], 5 Output: [[4],[8],[15],[16],[23,42]] Input: [4,8,15,16,23,42], 7 Output: [[],[],[],[],[],[],[4,8,15,16,23,42]] Input: [2,3,5,7,11,13,17,19,23], 3 Output: [[2,3,5],[7,11,13],[17,19,23]] …

3
ドア賞を受賞する可能性はありますか?
私の地元のACMの章では、会議に参加する人々にドア賞を贈ります。ただし、プログラミングパズルを解くと勝つ可能性が高くなります(ただし、私は常にそのパズルを解きます)。したがって、一部の人には1つのエントリがあり、他の人には2つのエントリがあります。ラッフルプログラムの仕組みは、誰かがパズルを解くときに別のエントリを追加することではありません。代わりに、人が持っている「ライブ」の数を追跡し、その人がランダムサンプリングアルゴリズムの各パスで選択された場合、その人の数を減らします。したがって、次のように機能します。 Doorknob: 1. xnor: 2. Justin: 2. Alex: 1. Dennis: 2. 次に、プログラムはのいずれかをランダムに選択し[Doorknob, xnor, Justin, Alex, Dennis]、数値をデクリメントします(たとえば、選択しますJustin)。 Doorknob: 1. xnor: 2. Justin: 1. Alex: 1. Dennis: 2. そして繰り返します。誰かの「ライブ」の数が0(Justin再度選択しよう)になった場合、リストから削除されます。 Doorknob: 1. xnor: 2. Alex: 1. Dennis: 2. これは、一人が残るまで続きます。その人が勝者です。 さて、本当の問題は、私が勝つ可能性はどのくらいだったのかということです。 次の2つの入力が与えられます。 n。これはチャレンジに参加した人の数です k。これは、n2人の命を持っている(そのうちの)人の数です。この番号には常にあなたが含まれます。 だから、もし私が関数を持っていてpを呼び出したp(10, 5)場合、それは合計10人の人が賞金を獲得する確率になります。 勝つ確率を正確に、または小数として出力することが期待されています。いずれにしても、答えは4を含め、正確にアップしてある必要があります番目の小数点後の小数点以下の場所。その桁に丸めるかどうかはあなた次第です。 あなたのソリューションは、高い確率で小数第 4 位までの回答を出力するランダム化ソリューションかもしれません。使用するビルトインRNGは本当にランダムであり、少なくとも90%の確率で正しい答えを出力する必要があると仮定できます。 さらに、コードはのためにのみ動作する必要がありますがn, k <= 1000、好奇心の強い人向けのテストケースよりも大きなテストケースを提供しました。 …

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