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

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

20
整数が指定された基数(基数)の回文であるかどうかを判別
stdinから2つの整数を読み取るプログラムを作成します。それぞれの改行は終了し、以降は「number」および「radix」と呼ばれます。 数がその基数での回文である場合(例えば、あなたが望む任意の固定メッセージを出力しtrue、t、1) 数はその基数(例えばで回文ではない場合、あなたが望む任意の異なる固定メッセージを印刷しfalse、f、0、など) これらのメッセージは実行ごとに同じである必要がありますが、メッセージの内容(ゴルフに最適なもの)に関するルールはありません。 入力が有効な2つの正の整数であると仮定できます。「数」は超えません2147483647、「基数」は超えません32767。 外部リソースを使用することはできませんが、言語にデフォルトで含まれている任意の数学関数を使用できます。 注: 基数は、数値の基数にすぎません。 サンプルの実行: 16 10 false 16 3 true 16 20 true 121 10 true 5 5 false 12346 12345 true 16781313 64 true 16781313 16 true

1
ダクトテープ正規表現の決定者
あなたの仕事は、StackExchangeネットワーク上のサイトから供給されたコードスニペットを使用して、特定の文字列が有効な正規表現であるかどうかを決定するプログラムを作成することです。 この課題のために、正規表現の方言は取り除かれ、ほとんどの場合メタ文字の最小限のセットになります()*?|\。そのため、組み込みの正規表現パーサーを使用することはできません。 \メタ文字をエスケープするために使用されます。その後にメタ文字が必要です。 エスケープされていない括弧はバランスをとる必要があります *また、?前に非メタ文字、括弧で囲まれたグループ、またはエスケープされたメタ文字のいずれかが必要です。 他のすべての印刷可能なASCII文字と、改行、タブ、スペースは、非メタ文字としてサポートされている必要があります。他の文字を含む文字列で何が起こるかは未定義です。 正規表現の実際の意味は、この課題にとって重要ではありません。 例 Truthy: abc a? (a|)* () a|b* \* \\ \\* a*b?(cd|e) + [ } (123\))* \| (a(b(c|d)*e)*f)* (|\)*) (abc)+* (abc)+ +abc ^ last test case is an actual newline Falsy: ?abc * ** \ ( a*? a?* ? a) (\) (|\)* \() |* …

2
これはティチュの有効な遊びですか?
Tichuは、標準の52カードデッキと4枚の追加カードで構成されるデッキからカードを順番にプレイするカードゲームです。 ドラゴン他のカードよりも大きな値を持ち、 ワイルドカードとして機能するフェニックス 犬あなたのパートナーにターンを渡し、 値が1 のMah Jong(および保持している人が最初に再生します) 最初のプレーヤー(「リード」があると言われている)は、次のタイプのカードの組み合わせのいずれかをプレイすることを選択できます。 シングル(例えば6) 対(JJ) トリプル(555) フルハウス(QQQ33) -トリプルとペア ストレート(56789) - 5以上の連続したカード トラクタ(223344) -ペアの任意の連続配列 その後のプレーヤーは、同じタイプのカードのセットをプレイすることのみが許可されますが、厳密にそれよりも高くなります。たとえば、のQQ上で再生できますJJが、QQKKできません(ペアではなくトラクターです)。フルハウスはトリプル(例えば77722> 44499)で注文され、ストレートとトラクターは同じ長さでなければなり456789ません(の上でプレイすることはできません23456)。エースは高いです。 例外が1つあります。同じカードの4つは爆弾であり、上位の爆弾以外のものの上でプレイできます。1 ドラゴンは単独で、またはリードを使って(または他の場所では)プレイできます。フェニックスは、ワイルドカードであるだけでなく、ドラゴン以外のシングルの上でプレイすることもできます。2犬はリードがなければ単独でプレイでき、すぐにターンを終了します。3 あなたの課題は、前のプレーを考慮して、特定のティチュプレーが有効かどうかを判断することです。 両方のプレイを任意の順序で整数または文字列のリストとして受け入れることができます。どちらの場合も、整数/文字へのカードのマッピングを選択できます。前のプレーがあった場合、それは常に有効であり、そうでない場合(つまり、プレーヤーがリードしている場合)、最初の入力は空の配列/文字列(他の入力のタイプと一致)になります。カードが特定の順序で提供されることは保証されていません。 出力は、厳密に2つの異なる値のセットから選択する必要があります。1つはプレイが合法であることを示し、もう1つは合法ではないことを示します。 カードのセットがデッキに実際に存在するかどうかをテストする必要はありません(たとえば、7が4つしかないため、77766その後に続くこと88877は不可能です)。そのようなケースは決して与えられません。 次のテストケースで234567890JQKAは、2からaceをRPD1表し、それぞれドラゴン、フェニックス、犬、麻雀を表します。空の文字列は、ここではとして示されてい-ます。これらの劇は合法です: 6 J JJ QQ 555 KKK 44499 77722 23456 56789 223344 QQKKAA 49494 72727 A R A P P R 66 7P P6 …

6
ルミクブを遊ぼう!
注:これはゲームRummikubのバリエーションに関連しています 背景とルール Rummikubはタイルベースのゲームです。赤、オレンジ、青、黒の4色があります。各色には13のタイル(1から13までのラベルが付いています)があり、色に依存しない2つのジョーカーもあるため、合計で54個になります。このRummikubのバリエーションでは、各プレーヤーは14タイルを受け取り、タイルの数が一定になるように、ラウンドごとに1つのタイルを取得し、別のタイルを1つずつドロップする必要があります。プレイヤーはお互いのタイルを見ることはありません。目標は、すべてのピースが少なくとも1つのグループに属するようにタイルをグループ化することです(以下を参照)。プレーヤーがすべてのピースをグループ化すると、タイルボードをドロップして、ピースを公開します。他の人は、すべての組み合わせが有効かどうかを確認し、有効な場合は、プレイヤーがラウンドに勝利します。 タイルをどのようにグループ化できますか? グループには2つのタイプしかありません。 マルチカラーグループ: 彼らは3つまたは4つのタイルで構成されています。 同じ番号のタイルのみが含まれています。 すべてのタイルは異なる色です。 例:RED 9, BLUE 9, BLACK 9。 単色グループ: それらは少なくとも3つのタイルで構成されます。 13個を超えるタイルを含めることはできません。 それらには、昇順で異なる連続番号のタイルのみが含まれます。 すべてのタイルは同じ色です。 でラベル付けされたタイルは、でラベル付けされたタイルの後に配置され1 ない場合があります13。 例:RED 5, RED 6, RED 7。 待って、ジョーカーは何をしますか? ジョーカーはゲームのどの部分でも代用できます。たとえば、最初の例は JOKER, BLUE 9, BLACK 9、RED 9, JOKER, BLACK 9またはになりRED 9, BLUE 9, JOKERます。同じことが他の例にも当てはまります。ただし、同じグループに2人のジョーカーを配置することはできないため、このようなことJOKER, ORANGE 8, JOKERは禁止されています。 仕事 Rummikubタイルグループを指定して、それが有効かどうかを判断します。2つのジョーカーを除いて、重複するタイルが表示されないこと、および入力として受け取ったタイルが有効であること(たとえば、60表示されないようなもの)が保証されます。 入出力 入力を取り、標準的な方法で出力を提供できます。 …

5
二次シーケンスからの有効な用語?
4つの番号が与えられます。最初の3つはaaaそれぞれシーケンスのbbb、b、およびcccです。 Tn=an2+bn+cTn=an2+bn+cT_n=an^2+bn+c これら4つの数値は、どのような方法でも入力できます。出力は、2つの別個の出力の一つは、あなたの答えに第四の数は、配列中の用語である(上記の式はのための少なくとも1つの解決策があること一つの手段言及されるべきであるnnnとき整数であり、B、C及びT nはは指定された値に置き換えられます)、もう一方は反対です。aaabbbcccTnTnT_n これはコードゴルフなので、バイト単位での最も短い答えが勝ちます。プログラムは、数値が負または正(または0)、10進数または整数であるa,b,c,Tna,b,c,Tna, b, c, T_n任意の入力に対して機能する必要があります。問題を回避し、ある程度の複雑さを保つために、非整数は常に.5.5.5終わります。標準のループホールは許可されていません。 テストケース a |b |c |T_n |Y/N ------------------------ 1 |1 |1 |1 |Y #n=0 2 |3 |5 |2 |N 0.5 |1 |-2 |-0.5|Y #n=1 0.5 |1 |-2 |15.5|Y #n=5 0.5 |1 |-2 |3 |N -3.5|2 |-6 |-934|Y #n=-16 0 |1 |4 |7 |Y …

13
小さなtautogramチェッカーはありますか?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 昨年休業。 最近コードゴルフを始めて、最小のオートグラムチェッカーを書こうとしました。 tautogramは、たとえば、すべての単語は、同じ文字で始まるした文である:花がフランスから頭角を現します。 文を入力として、それがトートグラムかどうかを判別します。 テストケース Flowers flourish from France True This is not a Tautogram False 私はこのpythonコードを思いつきました(それが私の主な言語であるため): print(True if len(list(set([x.upper()[0] for x in __import__('sys').argv[1:]]))) == 1 else False) 使用法: python3 tautogram.py Flowers flourish from France # True python3 tautogram.py This is not a Tautogram # False 文にはカンマとピリオドを含めることができますが、他の特殊文字は含めず、大文字と小文字とスペースのみを含めることができます。 サイズは98バイトです。任意の言語で小さなソリューションはありますか?

24
パスワードBishop Goodness
このから派生し、現在は削除されています。 文字列が与えられた場合、それが適切なBishopパスワードを構成する場合は(truthy / falsyまたは2つの一貫した値)に答えます。これは、次のすべての条件が満たされた場合です。 10文字以上 3桁以上([0-9]) それは回文ではありません(逆転してもそれ自体と同じです) コードがBishopの適切なパスワードである場合、0バイトのボーナスを受け取ります。 警告:実際のパスワード強度の尺度としてBishopの良さを使用しないでください! 例 適切なBishopパスワード PPCG123GCPP PPCG123PPCG PPCG123gcpp 0123456789 Tr0ub4dor&3 不正なBishopパスワード PPCG123 (短すぎる) correct horse battery staple (桁が足りない) PPCG121GCPP (パリンドローム) (桁が短すぎて足りない) abc121cba (短すぎて回文) aaaaaaaaaaaa (パリンドロームで足りない) abc99cba (すべてが間違っている)

15
マルチレベルのマーケティング「レッグ」投資ルール
マルチレベルのマーケティング関連の課題。 仲間は報われることを望んでいます。そのため、N投資家を惹きつけ(N>=1)、各i番目の投資家が投資しましたx[i]。合計がしきい値を超えるとx[0]+x[1]+...+x[N-1] >= T、ピアに報酬が与えられます。ただし、次の条件が満たされている場合のみ。 投資家の最低額はM、(M<=N)より大きくする必要があります 少なくとも1つの整数kについて、k>=Mとk<=Nで、k投資家は少なくともT/kそれぞれに投資する必要があります。 N, x[], T, Mピアの報酬が生成されるかどうかを決定する必要がある場合(ブール結果、「はい」または「いいえ」)。最短のコードが勝ちます。 例: N=5; M=3; T=10000、ピアの報酬を生成するには、次のいずれかを満たす必要があります。 いずれか3つが少なくとも3334を投資 各4は少なくとも2500を投資 5つすべてがそれぞれ最低2000を投資 N=6; M=2; T=5000: 任意の2つがそれぞれ2500以上を投資 いずれか3つが少なくとも1667を投資 任意の4つが少なくとも1250ずつ投資 いずれか5つが少なくとも1000を投資 6つすべてがそれぞれ少なくとも834投資しました 一般化:すべてのk、場所k>=M、およびk<=N: どんなkのN投資家は、少なくとも投資しT/k、それぞれを テストケース: フォーマット: N, x[], T, M -> correct answer 6, [999, 999, 59, 0, 0, 0], 180, 3 -> 0 6, [0, 60, …

1
たたみばりソルバー
バックグラウンド タタミバリはニコリが設計した論理パズルです。 :Tatamibariパズルは、その中のシンボルの三つの異なる種類の長方形のグリッド上で再生され+、-。と|。ソルバーは、次の規則に従ってグリッドを長方形または正方形の領域に分割する必要があります。 すべてのパーティションには、シンボルが1つだけ含まれている必要があります。 +シンボルは、正方形の中に含まれている必要があります。 |シンボルは、幅よりも大きい高さを有する矩形に含まれなければなりません。 -シンボルは、高さよりも大きな幅を有する長方形に含まれなければなりません。 4つのピースが同じコーナーを共有することはありません。(これが通常の畳の置き方です。) 以下は、解決策を含むパズルの例です。 仕事 与えられたタタミバリパズルを解きます。 入出力 入力は、指定されたタタミバリパズルを表す2Dグリッドです。各セルは、4つの文字のいずれかが含まれています+、-、|、、お好みのキャラクターは非手掛かり細胞を表現するために。テストケースでは、アスタリスク*が使用されています。 タタミバリパズルの有効なソリューションを明確に表すことができる適切な出力形式を選択できます。これには以下が含まれますが、これらに限定されません(不明な場合は、コメントで質問してください)。 4タプルのリスト。各タプルには、長方形の上部インデックス、左インデックス、幅と高さ(または同等の表現)が含まれます。 入力と同じ形状の数値グリッド。各数値は長方形を表します 座標セットのリスト。各セットには、長方形内のセルのすべての座標が含まれます パズルに複数のソリューションがある場合、有効なソリューションをいくつでも(1つ以上)出力できます。入力には少なくとも1つのソリューションがあることが保証されています。 テストケース Puzzle: |-* *+| *-* Solution: 122 134 554 ===== Puzzle: +*** **|* *+** ***- Solution: 1122 1122 3322 3344 ====== Puzzle: |*+*+ ***** ****- ***+| +**** Solution: 12233 12233 44444 55667 …

5
魔術師の魔法書
編集:私は以前D&Dをプレイしたことがないので、最初にこの質問をしたとき、適切に調査していませんでした。このことをお詫び申し上げます。dnd5eのルールにできる限り忠実に回答を無効にする可能性のあるいくつかの編集を行っています。ごめんなさい。 最近のHot Network QuestionのD&Dファンは、魔術師が選択したスペルが可能性と一致するかどうかを判断するのに問題があるようです。 前書き (これはすべて前述の質問ですでに説明されています) 魔術師は最初から2つのレベル1の呪文を知っています(レベル1): [1, 1] ソーサラーがレベルを取得するたびに(レベル12、14、16、18、19、20を除く)、彼らは新しい呪文を習得します(必須)。 さらに、レベルアップするときに、(オプション)1つのスペルを別のスペルに置き換えることを選択できます。 学習して置き換えられる呪文は、有効な呪文スロットレベルである必要があります。これは、魔術師のレベルの半分を切り上げたものです。次の表を参照してください。 Sorcerer level Highest spell level possible 1 1 2 1 3 2 4 2 5 3 6 3 7 4 8 4 9 5 10 5 11 6 12 6 13 7 14 7 15 8 16 8 …

2
Modilar SNISPの停止問題を解決する
Befingeの停止問題を解決するという精神で、Modilar SNISPと呼ばれる別の2D言語を定義しましょう。Modilar SNISPには、次の6つの手順があります。 \ 命令ポインタを次のように指示します。 上から近づいた場合は右に進みます。 右から近づいたら上へ。 下から近づいた場合は左に進みます。 左から近づいたら下へ。 / 命令ポインタを次のように指示します。 上から近づいた場合は左へ。 左から近づいたら上へ。 下から近づいた場合は右に進みます。 右から近づいたら下がる。 ! 次の命令をスキップします。 @ IPの場所と方向を呼び出しスタックにプッシュします。 #呼び出しスタックからIPの場所と方向をポップして復元し、次の命令をスキップします。呼び出しスタックが空の場合、実行は停止します。 . 何もしません。 命令ポインタは、左上隅から右に向かって始まります。それがプレイフィールドを離れると、実行は停止します。 Modilar SNISPはPDAよりも強力ではありません。無制限のストレージの唯一のソースは有限のアルファベット(すべてのIP(場所、方向)ペアのセット)を持つスタック(呼び出しスタック)であるためです。停止の問題はPDAで決定できるため、この課題は常に可能です。 チャレンジ あなたの目標は、Modilar SNISPプログラムを表す文字のマトリックスを受け取り、停止するかどうかに応じて2つの異なる出力の1つを返すプログラムを作成することです。 これはcode-golfなので、有効な最短のプログラム(バイト単位)が優先されます。 仕様書 文字のマトリックスを取る方法は柔軟です。改行で区切られた文字列、文字列の配列、文字の配列の配列、2次元の文字の配列、幅を表す整数を持つ文字のフラットな配列などはすべて受け入れられます。テストケースでは、最初の選択肢を選択します。 入力行列は長方形で(短い行にパディングする必要がないため)、長さと幅がゼロでないと想定できます。 真実/偽物だけでなく、2つの異なる出力を選択できます。 あなたが入力行列が唯一の有効なコマンドで構成されることを前提とすることができます(\、/、!、@、#、および.)。 コマンドが「次の命令をスキップする」と言われた場合、スキップする次の命令があると想定できます。特に、(1)IPがプレイフィールドのエッジにあり、(2)IPがそのエッジに対して垂直に移動しているため、「次の命令」がプレイフィールドの外側にあるような状況では発生しません。 テストケース 次のスニペットは、言語でプログラムをテストするために使用できます。これは、ここで指定された実際の仕様よりも若干許容範囲が広いことに注意してください(たとえば.、no-ops 以外の文字を許可します)。 function htmlEscape(t){let i=document.createElement("span");return i.innerText=t,i.innerHTML}function tick(){snisp.tick(),snisp.update()}function run(){runButton.style.display="none",stopButton.style.display="",code.style.display="none",executionArea.style.display="",snisp.initialize(),intervalId=setInterval(tick,INTERVAL_MS)}function stop(){runButton.style.display="",stopButton.style.display="none",code.style.display="",executionArea.style.display="none",clearInterval(intervalId)}let TICKS_PER_SECOND=5,INTERVAL_MS=1e3/TICKS_PER_SECOND,runButton=document.getElementById("run-button"),stopButton=document.getElementById("stop-button"),code=document.getElementById("code"),executionArea=document.getElementById("execution-display"),intervalId,snisp={x:null,y:null,direction:null,callStack:null,stopped:null,playfield:null,padRows:function(){let t=Math.max(...this.playfield.map(t=>t.length));for(let i=0;i<this.playfield.length;i++)this.playfield[i]=this.playfield[i].padEnd(t,".")},initialize:function(){this.x=0,this.y=0,this.direction="right",this.callStack=[],this.stopped=!1,this.playfield=code.value.split("\n"),this.padRows(),this.update()},getCurrentChar:function(){let t=this.playfield[this.y];if(void 0!=t)return …

6
それは満足できる数ですか?
このチャットの会話に触発されました 満たす数は、その10進表現形式である数でありabx、以下の特性を有します: x末尾の繰り返しの最長サフィックス、または末尾に繰り返しがない場合は最後の数字(123333-> 3333、545656-> 5656、123-> 3) bx(123333-> 2、55545656-> 4)の前の1桁 a残りのプレフィックスです(123333-> 1、55545656-> 555) a == c**b(**は指数を表します)、cはx(1623333-> 4(3 3 3 3、not 33 33))の最小繰り返し部分の繰り返し数です) 例えば、8300と満足する数でありa = 8、b = 3、c = 2、およびx = 00。24651ので、満足する数ではないx = 1、b = 5、a = 246何の整数が存在しないと、cその満たしますc^5 = 246。1222も満足のいく数値ではありません。これは、x = 222およびを使用するとb = 1、残りの数字がないためです。a。 正の整数を指定するとn >= 100、出力するかどうかnを指定すると、が満足できる数値。 例 8300: True (a=8, b=3, …

4
許可はありますか?
チャレンジ ファイルのUNIXパーミッションとその所有権(ユーザーIDとグループID)の記号表記を示す文字列を指定しAて、特定のユーザーがファイルの読み取り/書き込み/実行のパーミッションを持っているかどうかを判断します。 関連。 UNIXシステムでの権限 UNIXでは、すべてのファイルは、パーミッション(3つのクラスがあるユーザー、グループ、および他のどのグループには属しているユーザーを含む)と所有権を、。 記号表記は10文字で構成されます。この課題では、最初のキャラクターは重要ではありません。残りの9文字は、3つの文字の3つのセットに含まれ、ユーザー、グループ、その他のクラスの権限を表します。各セットの文字は、読み取り/書き込み/実行が許可されているかどうかを示します。許可されている場合はr、wまたはになりxます。それ以外の場合はになります-。 そのノートのsetuid、setgidの及びスティッキービットは、各セットの3番目の文字を変更することができるs、S、tまたはT。単純なルールは次のとおりです。文字が小文字の場合、権限が設定されます。そうでなければ、そうではありません。 (権限の記号表記の詳細については、こちらを参照してください。) すべてのユーザーにはユーザーIDがあり、すべてのグループにはグループIDがあります。すべてのIDは負でない整数になります。ユーザーは少なくとも1つのグループに属します。ユーザーAがファイルへのアクセスを取得したい場合、システムは次のようにユーザーの権限を確認します。 ファイルがuser Aに属している場合は、userクラスの権限を確認してください。 ファイルがに属していないが、ファイルAがA属するグループに属している場合は、グループクラスの権限を確認してください。 それ以外の場合は、他のクラスの権限を確認してください。 ただし、例外が1つあります。ユーザーIDが0(スーパーユーザー)の場合、ユーザーは何でも実行する権限を持っています。 仕様書 プログラム/関数は、これらを適切な形式の入力として受け取る必要があります。 記号表記のアクセス許可。 ファイルが属するユーザーIDとグループID。 のユーザーID A、およびA所属するグループIDのリスト。 アクセスのタイプ。読み取り、書き込み、実行には、3つの異なる1桁または1文字の値を使用できます。 Aファイルへのアクセス権限がある場合は真の値を返し、そうでない場合は偽の値を返す/出力します。 表記の最初の文字は常に-(通常のファイル)であると想定できます。 これはcode-golfなので、バイト単位での最短が勝ちます! テストケース ここのフォーマットは[permissions, user ID of file, group ID of file, user ID of A, group IDs of A, type(r/w/x)]です。 [-rwx------, 13, 15, 13, [15, 24], r]: …

16
プライムクラスターを共有しますか?
プライムクラスタ整数Nよりも高い2は最高素数によって形成対として定義される厳密より低いNプライム最低厳密以上N。 整数が素数自体である場合は、上記の定義を以下、そのプライムクラスタが素数の組であることに注意先行及び後続それは。 仕事 2つの整数整数N、M(N、M≥3)が与えられた場合、NとMが同じ素数クラスターを持っているかどうかに基づいて、真/偽の値を出力します。 これはcode-golfであるため、目的はバイト数をできるだけ減らすことです。したがって、すべてのプログラミング言語で最も短いコードが優先されます。 テストケース/例 例えば、のプライムクラスタ9がある[7, 11]ので、: 7は9より厳密に低い最高の素数であり、 11は9よりも厳密に高い最低の素数です。 同様に、67の素数クラスターは[61, 71](67は素数であることに注意)です。 真実のペア 8、10 20、22 65、65 73、73 86、84 326、318 513、518 偽のペア 4、5 6、8 409、401 348、347 419、418 311、313 326、305

3
完全カバーパズル
チャレンジ グループ化された文字のセットが与えられたら、それらをボード全体に配置して、領域全体を覆うようにします。 ボード表現(別名SHIP DECK) ボードは6x6グリッドです。 常に36の正方形があります。 列はAFとマークされています。 行には1〜6のマークが付けられています。 例: A B C D E F +---+---+---+---+---+---+ 1 : : : : : : : +---+---+---+---+---+---+ 2 : : : : : : : +---+---+---+---+---+---+ 3 : : : : : : : +---+---+---+---+---+---+ 4 : : : : : : …

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