タグ付けされた質問 「decision-problem」

入力が特定の基準を満たすかどうかを決定し、その決定を表すいくつかのデータを出力する必要がある課題の場合。

2
順列と一致します!
あなたの課題は、それ自体のすべての文字列の置換に一致する正規表現を作成することです。また、大文字と小文字を区別する必要があります。 したがって、たとえば、正規表現が次の場合: ABC これらの文字列と一致する必要があります(一致するだけです)。 ABC ACB BAC BCA CAB CBA 次のようなものと一致しないはずです。 AABC (contains an extra A) ABCD (contains an extra D) AC (no B) AAA (no B and C, extra 2 A's) abc (case-sensitive) ルール: 任意の種類の正規表現を使用できます。 標準の抜け穴が適用されます。 コードには少なくとも2つの異なる文字が必要です。つまり、次のようなソリューション1は無効です。 正規表現には、印刷可能なASCIIのみを含める必要があります。

16
関係が推移的かどうかを判別
チャレンジの説明 いくつかの定義から始めましょう: 関係は、要素の順序対の集合である(この課題では、我々は整数を使用することがあります) たとえば[(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]、関係です。 関係は、要素の任意の2つのペアに対して推移的と呼ばれ(a, b)、(b, c)この関係で、ペアが(a, c)また存在し、 [(1, 2), (2, 4), (6, 5), (1, 4)]それが含まれているため、推移的である(1, 2)と(2, 4)、しかし、(1, 4)同様に、 [(7, 8), (9, 10), (15, -5)]任意の二つのペアが存在しないため、推移的であり (a, b)、(c, d)本ようb=cです。 [(5, 9), (9, 54), (0, 0)]は推移的では(5, 9)あり(9, 54)ません。(5, 54) 整数のペアのリストを指定して、関係が推移的かどうかを判断します。 入出力 合理的な形式の整数のペアのリストが提供されます。関係を考える [(1, …

3
スタックベースの言語をトークン化する
私は、に取り組んできた別のと呼ばれるスタックベースのゴルフの言語Stackgoat。この課題では、Stackgoat(または実際には一般的なスタックベースの言語)のTokenizerを作成します。 例 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 仕様 処理する必要がある3つのタイプは次のとおりです。 ストリングス、何も内"" 数字、数字列 演算子、空白以外の任意の単一文字 空白は、文字列内にあるか、2つの数値を区切っていない限り、本質的に無視されます。 文字列/文字仕様: 文字列はで区切られ、が検出された"場合\、次の文字をエスケープする必要があります。 '文字はa で始まり、その後の'文字は文字列リテラルに変換されます。'a->"a" ' 常にその後に文字があります 終値を自動挿入する必要があります ルール: の形式evalは許可されません 入出力: 入力は、STDIN、関数パラメーター、または同等の言語を通じて取得できます。 出力は、配列または言語に最も近いものでなければなりません。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

13
転置、素数、ああ!
タスクは簡単です。プログラムは整数を入力として読み取り、それが素数であるかどうかを出力します。「yes / no」、「true / false」、または結果を明確に識別するものを印刷できます。 課題は、コードが転置された行と列で動作する必要があることです。 明らかな解決策(コメントを使用して文字ごとに垂直に繰り返される最短の「単純な」解決策)を除外するために、メトリックは通常のcode-golfとは少し異なります。 この課題ではフォーマットが非常に重要であるため、コードサイズはコードが収まる最小の長方形の領域で測定されます。簡単にするために、ソリューションを投稿するときに実際にそれを行う必要があります)。例えば int main() { return 0; } 4 * 13 = 52のサイズになります(そして明らかに、2つの基準のいずれにも適合しません:素数検出と転置可能)。 最小サイズが勝ちます。 関数の唯一の目的が素数の検索、生成、または検出である場合を除き、任意の言語およびライブラリ関数を使用できます。 編集: おそらく勝者はGolfscriptソリューションでしょうが、最高のCまたはC ++ソリューションに対して50ポイントの賞金を授与します!

2
有効なチェスの動きですか?
代替名: ChessMoveQ それぞれが4つの要素で構成される最大32個の要素のリストと、4つの要素を持つ2番目のリストが与えられた場合、2番目の入力で詳細な動きが有効なチェスの動きであるかどうかを判断します。 最初のリストは、ボード上の32個すべてのピースの位置を示しています。各要素は<colour>, <piece-name>, <x-coord>, <y-coord>、などの構造に従います["W", "K", 5, 1]。これは、白いキングが5, 1(e1通常のチェス盤で)オンであることを示します。最初の入力のすべての要素は一意です。<x-coord>そして<y-coord>、常に一つの例は以下のようになり1と8の間になります。 [["B", "K", 3, 8], ["B", "Q", 1, 5], ["B", "N", 4, 7], ["B", "N", 7, 8], ["B", "B", 2, 4], ["B", "R", 4, 8], ["B", "R", 8, 8], ["B", "P", 1, 7], ["B", "P", 2, 7], ["B", "P", 3, …

4
有効なペナルティシュートアウトプレフィックスですか?
でサッカー(また、サッカーとしても知られる)、ペナルティシュートアウトは、余分な時間(すなわち、サッカーの残業)の後、タイで終了することができない試合で使用することができる第二タイブレーカー尺度です。 ペナルティーシュートアウトでは、主審はコインを投げてどのゴールでシュートアウトが起こるかを決定し、次に別のコインを投げてどのチームが最初に開始するかを決定します。ただし、この課題に関連する唯一のことは、次に説明するとおりです。 各チームには開始時に5つのペナルティがあり、ペナルティスコアは0〜0です。いずれかの時点で、チームの残りのペナルティーが現在勝っているチームを変更するのに十分でない場合、シュートアウトは停止します。 残りのペナルティーはないが、両チームのポイントが等しい場合、追加のペナルティーが両チームに付与されます。これは、ポイントが等しくなくなるまで繰り返されます。 シュートアウトが停止した後、ペナルティスコアが最大のチームがゲームに勝利します。 チャレンジ あなたの課題は、二つのリスト与えられた、あるAとB罰則チームAとチームBは、彼らが有効なPK戦を表すかどうかを判断するために、それぞれ得点表します。勝利チームを決定できるかどうかに関係なく、入力によって表される状態に到達できる場合、シュートアウトは有効です。入力に記述された状態が少なくとも1つのシナリオに到達できる場合、入力は有効であるため、おそらく両方のシナリオ(チームA開始、チームB開始)についてテストする必要があることに注意してください。リストの長さが異なる場合、長いリストのチームが最初に開始します(他のリストよりも1つの要素しか持つことができず、短いリストのチームは開始できません。短いリストは時期尚早に使い果たされるため、連続して表示されます)。 詳細な例 以下の「ルール」セクションにスキップできます。これらは、課題の解決に役立つためのものです。 このシュートアウトを入力として受け取り、-ゴールが得られなかったこととゴールが得られたことをX意味するとします(それは無効です): Team A: - X X X X Team B: - - - - X Assuming team A starts first: Team A: - (0 - 0) (max possible score 4 - 5) Team B: - (0 - 0) (max possible score …

2
せっかちな可分性テスト
あなたの仕事は、ある数値が別の数値で割り切れるかどうかを判断するプログラムまたは関数を書くことです。キャッチは、数字のすべての数字が与えられていなくても、できるだけ早く答えを出すべきだということです。 あなたのプログラムは、整数とるべきD ≥2と、入力として一連の数字を。これらは、整数、別の数字を表すN個の最下位桁から始まる、1≥。最初の時点でいることをNのどちらかがしなければならないか、してはならないことでdivisbleもD、あなたのプログラムの出力すべき適切な解答して終了します。入力の終わりに到達した場合、完全なNがDで割り切れるかどうかを出力する必要があります。 Nの受け入れ可能な入力形式のリストを次に示します (含まれないものを許可する必要があると思われる場合はコメントを残します)。 標準入力:数字は別々の行に表示されます。 入力の終わりはEOFまたは特別な値です。 exitは、関数が戻るか、プログラムが終了することを意味します。 アナログ入力:キーストロークや各桁を表す10個のボタンなど。 入力の終わりは特別な値です。 exitは、関数が戻るか、プログラムが終了することを意味します。 グローバル状態の関数:連続した数字で繰り返し呼び出されます。 入力の終わりは特別な値です。 exitは、関数がnull以外の値を返すことを意味します。グローバル状態を使用する場合は、値が返された後、または関数が複数回機能するようにリセットした後にクリアする必要があることに注意してください。 Curried function:次の数字または値で呼び出される別の関数を返します。 入力の終わりは特別な値であるか、引数なしで関数を呼び出します。 exitは、関数が別の関数ではなく答えを返すことを意味します。 GUIプロンプトなど:繰り返し表示されます。 入力の終わりは「キャンセル」または同等の値、または特別な値です。 exitは、プロンプトが表示されなくなることを意味します。 イテレータ関数:入力は、呼び出されたときに次の数字を返すステートフルオブジェクトまたは関数 です。入力の終わりは例外または特別な値です。 exitは、反復子の呼び出しが停止することを意味します。 Dの入力と出力は、任意の受け入れ可能な標準方法を使用できます。 テストケース: 2; 6 => true 5; 6 => false 20; 0 3 => false 20; 0 4 => true 100; 1 => false 100; 0 …

12
仕事仲間からの挨拶ボット
毎週火曜日と木曜日に自宅で仕事をしている同僚がいます。午前8:00頃、彼は次のテキストを含むメッセージを送信します。 こんにちは今日は自宅で仕事をしています 彼が毎日家にいるという負担から彼を解放するために、私たちは彼のためにこの仕事を自動化したいと思います。 チャレンジ 次のようなコードをできるだけ少ないバイトで記述します。 現在の時刻を受け取る:コードは、現在の年、月(1〜12)、日(1〜31)、時間(0〜23)、分(0〜59)、および曜日の値を受け取ることができます。 (この番号が0から始まるか1から始まるかを選択できます。0/ 1が日曜日、月曜日、またはその他の日を意味する場合)。代わりに次のような構造を受け取ることがDate、DateTime、Calendarまたは他の時間関連の構造は、あなたの言語がそれを許可している場合。yyyyMMddHHmm必要に応じて日付を含む文字列、または日付と時刻の2つの個別の文字列、および曜日を含む整数を受け取ることもできます。お気軽に。 メッセージを仕事のチャットに送信する必要があるかどうかを示す、2つの一貫した真実と偽の値を返します。 ルール このコードは定期的に呼び出されると想定されています。それにもかかわらず、正確な周期性は無関係です。 曜日が火曜日または木曜日で、時刻が午前8時でエラーマージンが10分(7:50から8:10までを含む)である場合、真偽値を返す必要があります。 指定された日のそれらの時間の間にコードが初めて呼び出される場合にのみ、真偽値を送信する必要があります。ボットが同じメッセージを連続して何度も送信するのは望ましくありません。この制限を管理する方法は完全にあなた次第です。 コードは、繰り返し実行される独立したプログラムの場合もあれば、常に実行されているより大きなコードの一部である場合もあります。あなたの選択。 コードの実行の間に再起動は行われないと想定できます。 日付は常に正しいと仮定することができます。 コードについて、特に永続性を実現するために使用される方法について説明することをお勧めします。 例 (Week starts on Monday: 1, the following invokations will be made in succession) 2018,08,27,08,00,1 = falsey (not Tuesday or Thursday) 2018,08,28,07,45,2 = falsey (out of hours) 2018,08,28,07,55,2 = truthy (first time invoked …

30
3つの整数はすべて区別されますか?
入力として3つの整数が与えられます。入力は互いに異なっていてもいなくてもかまいません。3つの入力すべてが互いに異なる場合は1を出力し、入力が複数回繰り返される場合は0を出力する必要があります。 これはcode-golfなので、コードをできるだけ短くしてください!

3
山の指輪はありますか?
チャレンジ 正の整数の行列が与えられた場合、山の「リング」があるかどうかを判断します。このチャレンジの正式な定義は次のとおりです。正の整数のマトリックスが与えられた場合n、マトリックスn内のセルの閉じたリングがあり、そのリングに囲まれたすべてのセルが以下であるような厳密に大きい正の整数がありますへn。 真実の例を見てみましょう: 3 4 5 3 3 1 2 3 4 2 1 3 4 3 6 5 に設定nした場合2: 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 はっきりとわかるよう1に、エッジに沿ったsはリングを形成しています。 リングは、コレクション内の隣接するセルもグリッド上で隣接している(エッジまたはコーナー)セルの順序付けられたコレクションとして定義します。さらに、リングには少なくとも1つのセルが含まれている必要があります。つまり、コレクション内のセルを除くマトリックス全体をエッジのみのBFSフラッディングで埋めようとして、コレクション内のセルを走査しないようにするには、少なくとも1つのセルを逃す必要があります。 真実のテストケース 4 7 6 5 8 -> 1 1 1 1 1 …

15
私はピライ素数ですか?
A Pillaiさん素数が素数であるpppいくつかの肯定が存在するためmmmそのような(m!+1)≡0(mod p)(m!+1)≡0(mod p)(m! + 1) \equiv 0 \:(\text{mod } p)p≢1(mod m)p≢1(mod m)p \not\equiv 1\:(\text{mod }m) 換言すれば、整数、それがある場合Pillaiさんの素数である素数別の正の整数が存在する場合、ような階乗の、プラスで割り切れる及び場合で割り切れない。pppmmmmmm111pppp−1p−1p - 1mmm 入力として正の整数を指定し、それがピライ素数であるかどうかを判断します。ピライ素数の配列はOEIS A063980です。 たとえば、はピライ素数です。232323 これは素数であり、2つの要素しかありません。 m=14m=14m = 14およびは上記の条件を満たす:およびは分割しない。およびはも分割しません。23 ∣ (14 !+ 1 )14 22 23 ∣ (18 !+ 1 )18 22m=18m=18m = 1823∣(14!+1)23∣(14!+1)23 \mid (14! + 1)14141422222223∣(18!+1)23∣(18!+1)23 \mid (18! + 1)181818222222 テストケース …

18
関連する数字グループを見つける
最近、私の評判はでした25,121。各数字のグループ化(つまり、コンマで区切られた数字)が完全な正方形であることに気付きました。 あなたの挑戦は、非負の整数Nと単項ブールブラックボックス関数 f:Z * → Bが与えられると、Nの桁グループに適用されるfの各値が真である場合は真の値を返し、それ以外の場合は偽です。 右側から数を3のグループに分割することにより、数字のグループ化を見つけることができます。一番左のグループには、1、2、または3桁があります。いくつかの例: 12398123 -> 12,398,123 (3 digit groupings) 10 -> 10 (1 digit grouping) 23045 -> 23,045 (2 digit groupings) 100000001 -> 100,000,001 (3 digit groupings) 1337 -> 1,337 (2 digit groupings) 0 -> 0 (1 digit grouping) 追加のルール この関数は、ブール値(trueおよびなどfalse)、1sおよび0s、または真偽値にマッピングできます。回答でサポートされている形式を指定してください。 入力として整数、または整数文字列(数字で構成される文字列)を使用できます。 プログラムまたは関数を作成できます。 デジタルグループを関数fに渡す場合、不要な先行ゼロをすべて削除する必要があります。例えば、F、に適用した場合N = 123000のように実行されるべきであるF(123)およびF(0)。 …

9
巡回差分セットの検証
循環差分セットは、一意のプロパティを持つ正の整数のセットです。 ましょうnセットで最大の整数になります。 Let rは、0より大きく、以下の任意の整数(セット内にある必要はありません)n/2です。 してみましょうkことが解決策の数にとセットの任意のメンバーです。各ソリューションは順序ペアです。(また、多くの言語での実装とは異なり、このバージョンのモジュロは、追加することで負の数を正にすることに注意してください。)(b - a) % n = rab(a,b)n 最後に、これが循環差分セットである場合にのみ、の値はのk選択に依存しませんr。つまり、すべての値はr、上記の一致に対して同じ数の解を与えます。 これは、次の例で説明できます。 Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4 r=5: (4,9) (6,11) (11,5) の各値にrは同じ数の解(この場合は3)があるため、これは循環差分セットです。 入力 …

7
彼らは週の同じ日になることができますか?
チャレンジ 負でない整数を指定すると、(グレゴリオ暦の)2つの日付が何年も異なるために曜日を共有できるかどうかを出力します。年は、4で割り切れるが100で割り切れない場合、または400で割り切れる場合、うるう年と見なされます。 出力は次のとおりです。 falsey / truthy(どちらの向きでも) 任意の2つの異なる値 1つの明確な値と1つの何か プログラムの戻りコード別 成功/エラーによって 他の合理的な手段で-物議をかもしていると思われるかどうか尋ねる しかし、ない falsey / truthy以外の値の二つの非明確なセットによって(これはノーオペレーションを許可しないだろうと!) 詳細 これは、入力がOEISシーケンスA230995のメンバーであるかどうかです。 メンバー: 0, 5, 6, 7, 11, 12, 17, 18, 22, 23, 28, 29, 33, 34, 35, 39, 40, 45, 46, 50, 51, 56, 57, 61, 62, 63, 67, 68, 73, 74, 78, 79, …

7
子供のアルファベットマットは色別に適切にグループ化されていますか?
私の子供には、次のようなアルファベットマットがあります。 数か月後、マットのタイルをランダムに配置した後、疲れて、背景色に応じてセクションごとにグループ化されたマットのタイルをすべて配置しました。したがって、文字が背景色を表す場合、次のようなマットができました。 AABBCDDDE ABBCCCDEE ABCCCCDDE AACCCDDEE AAAACCCCE AAAAAACCC したがって、A、B、C、D、およびEの色については、マット内のすべてのタイルを同じ背景色で水平または垂直に接続する方法が常にあります。それは私が色によって適切にグループ化されたマットと呼ぶものです。次の表で、前の例のグループを確認できます。 AA A A AA AAAA AAAAAA BB BB B C CCC CCCC CCC CCCC CCC DDD D DD DD E EE E EE E また、すべての色に対して1つのグループしかないため、これは無効です。 ABA ABA カラーAタイルは1つのグループのみにグループ化されていないためです。また、タイルは水平または垂直に接続しないため、これも無効になります。 AB BA チャレンジ 印刷可能なASCII範囲の文字の2次元配列(両方の次元のサイズが1以上である限り正方形である必要はありません)が与えられている場合、配列が色で適切にグループ化されたマットを表すかどうかを確認します(配列内の異なる文字はそれぞれ異なる色を表します)。入力は、文字の2次元配列(2D char配列、同じ長さの文字列の配列など)を表す限り、任意の妥当な形式であり、出力は、真偽値と偽値(0 / 1、 't' / 'f'、true / false、何かが返され、戻り値が入力間で一貫している限り)。 これはコードゴルフなので、各言語の最短のプログラム/関数/メソッド/ラムダが勝つかもしれません! …

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