プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

5
ケースフォールドドイツ語
ドイツ語の文字列とケースの表示(小文字/大文字/タイトル)が与えられた場合、文字列をそのケースに折りたたみます。 仕様書 入力のみで構成されますa- zプラスäöüß-,.;:!?'"大文字および/または小文字で。 ターゲットケースは、一貫したタイプの3つの一意の値(それらを具体的に指定してください)として取得できます。3つの文字、3つの数字、または3つのビットパターン。(現在、他のフォーマットは、ケース仕様への回答の「アウトソーシング」を防ぐことを許可されていません。追加のフォーマットを許可する必要があると思われる場合はコメントしてください。) タイトルケースとは、文字の後に続く文字を除いてすべて大文字を意味します(文字はa– zプラスですäöüß)。 ガチャ ß大文字にする必要がある場合は、にする必要がありますẞ。一部のケースフォールディングビルトインとライブラリはこれを行いません。 ßタイトルケースにする必要がある場合は、にする必要がありSsます。一部のケースフォールディングビルトインとライブラリはこれを行いません。 ssテキスト内で発生する可能性があるため、ßまたはに変換しないでくださいẞ。 例 大文字die Räder sagen "ßß ss" für dich, wegen des Öls! はDIE RÄDER SAGEN "ẞẞ SS" FÜR DICH, WEGEN DES ÖLS! 小文字 die Räder sagen "ßß ss" für dich, wegen des Öls! は die räder sagen "ßß ss" für …

30
予約語を出力する
コンピューター言語の場合、予約語は、変数、関数、またはラベルの名前など、識別子として使用できない単語です。他のコンピューター言語の場合、キーワードは言語命令のセットと見なすことができます。 チャレンジ 選択した言語を使用して、選択した言語でコードを記述し、1から10までの数字を指定して、選択した言語の予約語(キーワード)を1<=n<=10出力しnます。 詳細 選択した言語で大文字と小文字が区別される場合、出力されるキーワードも大文字と小文字を区別する必要があります。 選択した言語で大文字と小文字が区別されない場合、出力されるキーワードはどのような場合でも使用できます。 選択した言語は言って10個の未満のキーワードがある場合はp任意のため、コードを出力しなければならないが、すべての予約語nの間pとを10。 可能であれば、演算子をキーワードと見なすかどうかを回答で指定してください。 Javaの可能なサンプル(JDK10) n=1 --> true n=3 --> try new interface n=4 --> continue this long break > <>の可能なサンプル n=1 --> > n=3 --> > < ^ n=4 --> > < \ / Brain-Flakの可能なサンプル n=1 --> ( n=3 --> ( ) [ ] n=9 …

2
クアルトにはいくつの抽選がありますか?
前書き この課題は、Project Eulerの問題に似ています。私はそれを思いついたのは、私が一見シンプルなボードゲームをプレイしていて、そのメカニズムに関する簡単な質問に答えるための効率的なソリューションを考え出せなかったからです。 Quartoは、4つの連続した楽しい変種です。これは、16個のユニークなピースを含む4 x 4のボードで再生されます(ピースは複製されません)。毎ターン、各プレイヤーはボードに1個の駒を置きます。各ピースには4つのバイナリ特性があります(ショート/トール、ブラック/ホワイト、スクエア/サーキュラー、ホロー/ソリッド)。目標は、4つの特性のいずれかについて、水平、垂直、または2つの対角線に沿って4つを連続して作成することです。つまり、4つの黒い部分、4つの白い部分、4つの高い部分、4つの短い部分、4つの正方形の部分、4つの円形の部分、4つの中空の部分、または4つの中実の部分です。 上の画像は完成したゲームを示しています。4つの正方形の駒があるため、4つ並んでいます。 チャレンジ クアルトでは、いくつかのゲームは引き分けに終わるかもしれません。 可能な終了位置の総数は16!、約20兆です。 それらの最終ポジションのいくつがドローですか? ルール ソリューションは、ドローであるエンドポジションの総数を計算して出力するプログラムでなければなりません。正解は414298141056 手動で推定されたゲームのルールの情報のみを使用できます(コンピューター支援の証拠はありません)。 問題の数学的簡略化は許可されますが、ソリューションで説明し、(手動で)証明する必要があります。 勝者は、CPU実行時間の点で最も最適なソリューションを持つものです。 勝者を決定するために、16 GB RAMを搭載したMacBook Pro 2,5 GHz Intel Core i7で、30m未満の報告された実行時間ですべてのソリューションを実行します。 他のボードサイズでも機能するソリューションを考え出すことのボーナスポイントはありません。それがいいのに。 該当する場合、プログラムは上記のハードウェアで1分以内にコンパイルする必要があります(コンパイラの最適化の乱用を避けるため)。 デフォルトの抜け穴は許可されていません 提出物 投稿してください: コードまたはコードへのgithub / bitbucketリンク。 コードの出力。 ローカルで測定された実行時間 あなたのアプローチの説明。 締め切り 提出期限は3月1日ですので、まだ十分な時間があります。

1
労働時間計算機
これは、私の会社がすべての従業員の労働時間の監視をどのように扱っているかに基づいています。一人一人がセンサーの前を通過できるカードを持っているので、時計は従業員がオフィスにチェックインまたはチェックアウトする時刻を記録します。レジスターがコードにリンクされるたびに: コード0:従業員がオフィスに到着する(またはオフィスに戻る)。 コード1:従業員は昼食のためにオフィスを離れます。 コード2:従業員は1日の終わりにオフィスを離れます。 コード3:従業員は仕事上の理由でオフィスを離れます。 コード4:従業員は個人的な理由で退社します。 コード0レジスタは「ゼロレジスタ」と呼ばれることもあり、コード1からコード4レジスタは「非ゼロレジスタ」と呼ばれることもあります。 したがって、ワーカーの通常の日は、次のような登録リストを生成します。 Code/Time ------------ 0 8:17 // The employee arrives at the office 4 11:34 // The employee leaves the office to smoke 0 11:41 // The employee returns to the office 1 13:37 // The employee leaves the office to have lunch 0 …

5
アドベントチャレンジ6:トランスポートドックのラベル変更
<<前 へ次へ>> PPCGコミュニティのおかげで、サンタはプレゼントを運送ドックに移動するための正しい順序に整理することができました。残念ながら、運送用ドックの看板は壊れているので、プレゼントをどこに置くかわからないのです!プレゼントはすべて一緒にグループ化されており、その範囲ではなく、サンタがより良いアイデアだったと認めています。 次に、ソートされた順序でプレゼントが与えられた場合、現在が正しい順序になるようなすべての可能な最小範囲構成を決定します。つまり、チャレンジ#5のアルゴリズムに従ってプレゼントを並べ替えても順序が変わらないように、すべての最小範囲構成を見つけます。 チャレンジ 最小範囲構成は、範囲がそれぞれ可能な限り小さい範囲のリストです。つまり、プレゼントの特定のサブセットをカバーするように範囲が指定されている場合、範囲の最小値と最大値はサブセットの最小値と最大値と同じでなければなりません。つまり、カバーの範囲を縮小すると、カバーではなくなります。 課題は、現在のサイズに適用できるすべての可能な最小範囲構成を見つけることです。例を見てみましょう:[3, 1, 2, 5, 4, 7, 6] 現在の構成全体の範囲をとることは、些細な場合です。この場合、[[1, 7]]解決策になります。 一意の要素を持つ例の場合、別の些細なケースになります[[3], [1], [2], [5], [4], [7], [6]](範囲を順序付ける必要がないため)。 この例では、我々はまた、それを見る[[1, 3], [4, 7]]と[[1, 3], [4, 5], [6, 7]]同様に、働くだろう[[1, 3], [5], [4], [6, 7]]と[[1, 3], [4, 5], [7], [6]]。 の最終的な答えは[3, 1, 2, 5, 4, 7, 6]でしょう[[[3], [1], [2], …

4
今、私たちはn次元で考えています!
質問:数値nが2以上の場合、座標がからまでの範囲の、2 n次元n x n x n x n x n x n ... x n格子上の点の異なるペアの数は、少なくとも距離がどれだけ離れているか?ペアとは、同じ2つのポイントが逆の順序で構成されているため、互いに区別されているとは見なされません。ペアの総数は非常に急速に増加することに注意してください。総対の数は行く、、、、、など0n - 1 n{(2,1,3,1), (3,2,1,3)}{(3,2,1,3), (2,1,3,1)}635132 6404 881 2501 088 367 840 テストケース: 2 -> 0 (all pairs are at most a distance of sqrt(2) < 2 apart) 3 -> 28 (They must either be (2,2,1) …

1
アドベントチャレンジ2:現在のVault Raid!
<<前 へ次へ>> チャレンジ ようやくサンタが現在の金庫室に入る方法を見つけたので、エルフは何とかして彼の前にエルフが入り、プレゼントを盗んだことに気づきました!彼らはまだ金庫を離れる方法を理解していませんので、サンタはそれらすべてを捕まえようとしなければなりません。サンタとエルフはどちらも走り回るのに無限のエネルギーを持っていますが、残念ながらエルフはエネルギーの無限大を持っているので、どこにでもループで走ってしまうと、エルフは自由になります。 任意の2つのノード間に存在するnノードとeエッジのグラフ、およびエルフとサンタの位置を考慮して、サンタが疲れる前に捕獲できるエルフの数を決定します。 追跡はターンベースです。各サイクルでは、最初にすべてのエルフが同時に移動し(互いに移動して同じノードに移動することもできます)、次にサンタが移動します。サンタがエルフと同じノードに移動した場合、サンタはそのエルフを捕らえました。各エルフは、1つのステップから1つのノードからその隣接ノードにのみ移動できます。最初は同じことがサンタにも当てはまりますが、サンタが捕まえたすべてのエルフに対して、サンタは1つの追加ステップを実行できます。したがって、サンタがエルフを捕まえた場合、サンタはノードからその隣の隣に移動できます。つまり、ノードに移動してから戻ることができます。ただし、この期間中、サンタはあまりにも速く走っているので、中間ステップで通過するエルフを捕まえません(したがって、彼がAにいる場合、AはBに接続され、BはCに接続され、エルフはオンになりますB、そしてサンタはA-> B-> Cに移動し、エルフはまだ捕まっていません)。ただし、サンタは一度にそれほど多くのステップを移動する必要はありません。彼は毎ターン最大1 +(捕獲されたエルフの数)まで移動します。 すべてのエルフは毎ターン移動する必要があり、エルフがサンタのノードに移動した場合、それらは捕まります。 すべてのエンティティ(エルフ、サンタ)は、最初は別個のノード上にあります。 仕様とルール あなたのプログラムは理論的にはどんなサイズの入力でも動作するはずです。入力は、グラフ、エルフの位置、およびサンタの位置として与えられます。グラフは任意の適切な形式(ノードのリスト+エッジのリスト、エッジのリスト、隣接行列、サイクル表記など)で取得でき、グラフの入力形式(インデックスノードのリストなど)。出力は、サンタがキャッチできるエルフの最大数を示す単一の正の整数である必要があります。 テストケース これらは、位置のエッジとノード番号のリストとして与えられます。 Input -> Output [(0, 1), (1, 2)], [0, 2], 1 -> 2 # Easy win for Santa, the elves get themselves caught :P [(0, 1), (1, 2), (2, 3), (3, 0)], [0, 1], 2 -> …


9
アドベントチャレンジ3:プレゼントを再生する時間です。
<<前 へ次へ>> 残念ながら、サンタはエルフを間に合わせることができませんでした!彼は今製造のプレゼントに戻らなければなりません。エルフは間違いなくサンタの奴隷ではないので、彼は彼らにいくら支払うかについての費用を理解しなければなりません。 チャレンジ プレゼントの情報を考慮して、それらすべてを製造するコストを決定します。 それぞれのプレゼントは段ボール箱に入れられ、最後にリボンが巻き付けられて包装紙で包まれます。包装紙は魔法のようで、重なり合う必要がないので、使用される包装紙の量は箱の表面積と正確に同等です。サンタがよりコンパクトに保管できるので、すべてのプレゼントは直角プリズムです。リボンは3方向すべてに回ります(そのため、ラッピングに使用されるリボンの長さは、3つの異なる周囲の長さの合計に等しくなります)。 幸いにも現在自体には既知のコストがあります。段ボールは1平方メートルあたり1ドル、包装紙は1平方メートルあたり2ドルです。(ヒント:表面積に3:Pを掛けるだけです)。リボンの価格は1メートルあたり1ドルです。 フォーマット仕様 入力はプレゼントのリストとして与えられ、各プレゼントには実際のアイテムのコストとプレゼントボックスの3つの寸法が含まれます。あなたの出力は、必要な総コストでなければなりません。 正確には、アイテムのコストを有する単一本のコストのための式c及び寸法x、y及びzですc + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)。 テストケース [[7, 8, 6, 7], [7, 7, 5, 5], [8, 9, 6, 7], [6, 5, 10, 10], [5, …

1
5文字のASCIIマップ
注:この投稿では、「文字」と「色」という用語は本質的に同じ意味です この画像: として表すことができます ....'''333 .eeee'''3e ..dddd33ee %%%dd####e (アスキー文字への色のマッピング) 4つの色の定理は、「隣接する領域に平面を分離してマップと呼ばれる図を生成する場合、隣接する2つの領域が同じ色にならないように、マップの領域に色を付けるために必要な色は4つだけです。2つコーナーではない共通の境界を共有する領域は隣接と呼ばれます。コーナーは3つ以上の領域で共有されるポイントです。」-ウィキペディア(リンク) これは、エッジを共有する2つの部分が色を共有しないように、4色を使用してマップに色を付けることが可能であることを意味します。 4色のみを使用してマップに色を付けるアルゴリズムは複雑であるため、この課題では、プログラムは5色以下を使用してマップに色を付けるだけで済みます。 色を変更した以前のマップは次のようになります。 これは次のように表すことができます ....'''333 .eeee'''3e ..dddd33ee 333dd....e または同等に @@@@$$$!!! @^^^^$$$!^ @@<<<<!!^^ !!!<<@@@@^ チャレンジ: ASCII文字(各文字が異なる色を表す)で構成される「マップ」が与えられた場合、マップを「色変更」(異なるASCII文字を使用してマップを表す)して、5色以下しか使用しないようにします。 例: 入力: %%%%%%%%%%%%##########$$$$$$$$%% *****%%%####!!!!!!!%%%%%%%%%#^^^ (((((((***>>>>??????????%%%%%%%% &&&&&&&&$$$$$$$^^^^^^^))@@@%%%%% ^^^^^^%%%%%%%%%%%%############## 可能な出力: 11111111111122222222223333333311 44444111222255555551111111112444 22222224441111444444444411111111 55555555222222255555553355511111 22222211111111111122222222222222 明確化: 入力マップは常に6文字以上を使用します 出力には5つの異なる文字を使用できます 出力では5文字未満を使用できます 入力は、適切な形式(配列の配列、または文字列の配列を含む)で取得できます。 これはコードゴルフなので、最も短い答えが優先されます。 サンドボックスリンク
9 code-golf 

6
ベクトルのすべての異なる順列を出力します
チャレンジ: 正の整数の可能性のある長いリストのすべての異なる順列を出力します。テスト時にベクトルの数が1,000未満であると想定する場合がありますが、プロセスは理論的には、サイズに関係なく、複数の数値を持つ任意のベクトルで機能します。 制限: メモリ使用量をO(n ^ 2)に制限する必要があります。ここで、nは入力ベクトルの要素数です。O(n!)を持つことはできません。つまり、すべての順列をメモリに保存することはできません。 時間の複雑さをO(結果サイズ* n)に制限する必要があります。すべての数値が等しい場合、これはO(n)になり、すべてが異なる場合、これはO(n!* n)になります。つまり、順列を作成して、他のすべての順列と照合して、確実に区別することはできません(つまり、O(n!^ 2 * n)になります)。 時間とメモリの制限が満たされていることを示す経験的測定は受け入れられます。 順列を実際に印刷/出力する必要があります(それらを格納することは不可能であるため)。 プログラムを十分に長く実行すると、すべての順列が(理論的には)出力されるはずです! 明確な順列: リスト[ 1、1、2 ]には、[ 1、1、2 ]、[ 1、2、1]、および[ 2、1、1 ]の 3つの順列があります。出力の順序を選択できます。 管理しやすいテストケース: Input: [1, 2, 1] Output: [1, 1, 2] [1, 2, 1] [2, 1, 1] Input: [1, 2, 3, 2] Output: [1, 2, 2, 3] …

7
列車がラベル付きの橋を渡る
連結された正の整数の数字でラベル付けされたタイルによって形成された長さBのブリッジを考えます。たとえば、Bが41の場合、次のようになります。 ----------------------------------------- 12345678910111213141516171819202122232425 橋を渡る長さTの列車を想像してみてください。列車の左端のポイントは、位置X(1インデックス)から始まります。問題をよりよく理解するために、B = 41、T = 10、X = 10でイベントのスキームを作成しましょう。列車は等号(=)と線を使用して描かれています。 __________ | ======== | | ======== | ----------------------------------------- 12345678910111213141516171819202122232425 列車は、その上にあるユニークなタイルの合計によって、各ステップで進むことができます。たとえば、列車が上に立つタイルは次のとおりです:[1, 0, 1, 1, 1, 2, 1, 3, 1, 4]、一意の(重複が排除された)タイルは次のとおり[1, 0, 2, 3, 4]です10。それらの合計はです。したがって、列車は10タイルで進むことができます。もう一度描画して、列車の左端のポイントが最後のタイルを通過するまで、このプロセスを繰り返します。 __________ | ======== | | ======== | ----------------------------------------- 12345678910111213141516171819202122232425 一意のタイルの合計:1 + 5 + 6 + 7 + …

17
素因数分解における素数
PPCGで別のプライムチャレンジが行われるのを見ました。いくつかのプライムが大好きです。それから私は紹介文を読み間違えて、ここで創造的な頭脳が何を思いついたのか疑問に思いました。 提起された質問は取るに足らないものだったことがわかりますが、私が読んだ(誤った)質問についても同じことが言えるのでしょうか。 6は2 ^ 1 * 3 ^ 1で表すことができ、50は2 ^ 1 * 5 ^ 2で表すことができます(^は指数を示します)。 あなたのタスク: プログラムまたは関数を記述して、この数の表現にいくつの異なる素数があるかを判別します。 入力: 1 <n <10 ^ 12の整数n。通常の方法で取得されます。 出力: nの一意の素因数を表すために必要な個別の素数の数。 テストケース: Input Factorisation Unique primes in factorisation representation 24 2^3*3^1 2 (2, 3) 126 2^1*3^2*7^1 3 (2, 3, 7) 8 2^3 2 (2, 3) 64 …

23
アドベントチャレンジ5:プレゼントを輸送ドックに移す!
<<前 へ次へ>> PPCGコミュニティのおかげで、サンタはすべてのプレゼントを再製造することができ、組み立てラインの後、プレゼントは輸送ドックに移動する準備ができました! 輸送用そりは特定のサイズに特化しているため、サンタの各輸送ドックは現在のサイズの範囲しか保持しません(軽量で無駄になり、重くなり、そりが負荷を処理できなくなります)。したがって、彼はあなたが彼が彼のプレゼントを取り、それらを正しい輸送ドックに分類するのを助けるあなたを必要としています。 チャレンジ リストと輸送ドックの範囲を考慮して、プレゼントを正しい順序で安定して整理します。 たとえば、これを見てみましょう。プレゼントは[5, 3, 8, 6, 2, 7]で、ドックの範囲は[[1, 5] and [6, 10]]です。 プレゼント5、3と2最初のドックやプレゼントに入り8、6、及び7第二ドックに入ります。これはと表示できます[[5, 3, 2], [8, 6, 7]]。このリストは入力よりも並べ替えstablyられますが、各ドック内では、プレゼントの順序は入力の順序と同じでなければなりません(それ以外の場合は、リスト全体を並べ替えることができます)。 この場合の最終的な出力は[5, 3, 2, 8, 6, 7](フラットリストとして)になります。 フォーマット仕様 あなたが(例えば、上記の場合の範囲はとして与えることができる任意の合理的なフォーマットの整数のフラットリストと範囲のリストとして入力を与えられる[[1, 5], [6, 10]]、[1, 5, 6, 10]または[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])。出力は、適切な形式の整数のフラットリストである必要があります。 入力には重複した値を含めることができます。この場合、それらのすべてのインスタンスを返す必要があります。現在のすべてのサイズは正確に1つのサイズ範囲にあり、範囲が重複することはないと想定できます。現在のすべてのサイズがカバーされている限り、範囲にギャップが存在する可能性があります。 ルール 標準抜け穴が適用されます これはcode-golfなので、バイト単位の最短の回答が優先されます 回答は受け付けられません …

7
pseudoprimesをゴルフしましょう!
はじめに/背景 で、最近の議論で暗号チャット私は議論するために/のヘルプ挑戦されたフェルマー素数判定テストとカーマイケル数を。このテストは、a^(p-1) mod p==1常に素数に当てはまるがp、常にコンポジットには当てはまらないという前提に基づいています。カーマイケル番号は、基本的にはフェルマートのテストで最悪の敵です。取得するために同時に素数にならないように選択aする必要がある番号です。が共素数でない場合、本質的には、自明ではない因子を見つけましたpa^(p-1) mod p!=1apそして、誰もが知っているように、因数分解は非常に難しい場合があります。特に、すべての要素が十分に大きい場合。これで、Fermatテストが実際にはあまり使用されない理由がよくわかります(より優れたアルゴリズムがあります)。これは、(セキュリティの観点から)防御者としてのあなたが同じような量の作業を行わなければならない数があるためです。攻撃者(つまり、数を因数分解します)。 これらの数値が魅力的である理由がわかったので、可能な限り最短の方法で数値を生成します。必要に応じて、生成したコードを記憶することができます。 カーマイケル番号は、OEISではA002997としても知られています。関連する課題はすでに ありますが、サイズではなく速度が最適化されているため、ここからのエントリは競争力がありません。同じ議論が逆の方向にも当てはまり、ここのエントリはサイズを優先して速度とトレードオフをする可能性があります。 仕様 入力 これは標準のシーケンスチャレンジなので、正または負でない整数nを入力として使用します。n必要に応じて、0または1のインデックスを付けることができます(指定してください)。 出力 出力は、必要にn応じて、-番目のカーマイケル番号または最初のnカーマイケル番号のいずれかになります(指示してください)。 仕様 整数xは、xが複合である場合にのみカーマイケル数であり、のすべての整数yについてgcd(x,y)=1、それを保持しy^(x-1) mod x==1ます。 誰が勝ちますか? これはcode-golfなので、バイトで最短のコードが優先されます!標準のIOと抜け穴のルールが適用されます。 テストケース 最初のいくつかのカーマイケル番号は次のとおりです。 561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

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