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

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

4
平方根の数
タスクは次のとおりです。正の整数xと素数を指定すると、などのn > x最小の正の整数を出力yし(y * y) mod n = xます。この質問の重要な部分は、ブルートフォースソリューションを除外する、以下で指定される制限時間です。 そのような値がない場合y、コードは出力されますN。 テストケース (2, 5, N), (3, 5, N), (4, 5, 2), (524291, 1048583, N), (529533, 1048583, N), (534775, 1048583, 436853), (540017, 1048583, 73675), (536870913, 1073741827, 375394238), (542239622, 1073741827, 267746399), (547608331, 1073741827, N), (552977040, 1073741827, 104595351), (1099511627676, 1099511627791, N), (1099511627677, 1099511627791, 269691261521), …

3
見積もりを引用してください!
引用は、「もう一つの一環として、一つの式の繰り返し」です。アメリカ英語では、引用は前の文のように二重引用符( ")で囲まれています。ただし、引用が別の引用内にある場合、この規則は異なります。この場合、内部引用は単一引用符で囲まれます。 ( ')。 チャレンジ 入力として文字列を指定すると、内部引用に使用される二重引用符と単一引用符を交換して、その文字列の割り当て可能なバージョンを出力します。 ただし、キャッチは1つだけです。すべての単一引用符が引用に使用されるわけではありません。このチャレンジでは、次の場合にのみ、単一引用符が引用に使用されます。 マークの前に英数字以外の文字、または マークの後に、スペースではない英数字以外の文字が続きます 引用に使用されるマークは、バランスが取れていることが保証されています。つまり、無効な入力を処理する必要はありません。また、二重引用符は、単一引用符を使用して引用を表すことができる状況でのみ使用されます。 テストケース A man, a plan, a canal, Panama. "A man, a plan, a canal, Panama." Socrates once said, "An unexamined life is not worth living." "Socrates once said, 'An unexamined life is not worth living.'" @musicman523 said, "Socrates once said, …

22
n番目のベル番号を出力する
A ベル番号(OEIS A000110は)N標識された(別個の)要素のセットを分割する方法の数です。0番目のベル番号は1として定義されます。 いくつかの例を見てみましょう(パーティションのサブセットとブレースを示すために括弧を使用します): 1: {1} 2: {[1,2]}, {[1],[2]} 3: {[1,2,3]}, {[1,2],[3]}, {[1,3],[2]}, {[2,3],[1]}, {[1],[2],[3]} ベル番号を計算するには多くの方法があり、自由に使用できます。1つの方法をここで説明します。 ベル数を計算する最も簡単な方法は、二項係数にパスカルの三角形に似た数三角形を使用することです。ベル番号は、三角形の端に表示されます。1から開始して、三角形の各新しい行は、前の行の最後のエントリを最初のエントリとして、左の隣人と左上の隣人にそれぞれの新しいエントリを設定することによって構築されます。 1 1 2 2 3 5 5 7 10 15 15 20 27 37 52 0インデックスまたは1インデックスを使用できます。0インデックスを使用する場合、入力は3output 5である必要がありますが2、1インデックスを使用する場合は出力する必要があります。 プログラムは、15番目のベル番号まで動作し、を出力する必要があり1382958545ます。理論的には、プログラムはより大きな数を処理できる必要があります(つまり、ソリューションをハードコーディングしないでください)。 編集:三角法によって計算されないため、0(0インデックス付けの場合)または1(1インデックス付けの場合)の入力を処理する必要はありません。 テストケース(0インデックス付けを想定): 0 -> 1 (OPTIONAL) 1 -> 1 2 -> 2 3 -> 5 …
13 code-golf  math 

10
私は二次タクシーですか?
バックグラウンド ラマヌジャンの番号1729は、ハーディがこの番号を持っている病院でラマヌジャンを訪問するためにタクシーに乗り込んだという話から、おそらくタクシーの番号と呼ばれます。 それ以来、2つの(正の整数の)n乗の合計として2つの(または「k」)異なる方法で表現できる「タクシー番号」として知られる整数クラスの最も有名なものとして知られています。 1729は、2つの異なる方法で2つの立方体の合計として表現できる最小の自然数で、最初の「3,2」タクシー番号(「n、k」が一般的)になります。 チャレンジ 番号を指定して、それが「3,2」「二次タクシー番号」であるかどうかを決定します-1729(キューブの2つの一意の合計)と同じ制約を満たしますが、「3 、2 "クラス(もちろん1729です)。 例: 1729 = 10 ^ 3 + 9 ^ 3 = 12 ^ 3 + 1 ^ 3 4104 = 15 ^ 3 + 9 ^ 3 = 16 ^ 3 + 2 ^ 3 13832 = 2 ^ 3 + 24 …

18
連続したデジタル製品の合計収束
正の整数を考えるとn(例:n=1234444999) 連続した数字の実行に分けます: [1, 2, 3, 4444, 999] 各実行のデジタル製品を取ります。 [1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729] 合計して... 991 これが単一の数値に収束するまで繰り返します。 1234444999 991 82 10 1 最後の番号を返します。 テストケース BASE CASES: 0 = 0 ... 9 = 9 OTHER CASES: 1234444999 = 1 222222222222222 = 8 111222333444555666777888999000 = 9 11122233344455566677788899 …

16
このサイトはダウンしていますか、それとも私だけですか?
チャレンジ チャレンジは簡単で、http://isup.meを使用して、入力したWebサイトが稼働しているかどうかを判断します。 サイトが稼働している場合は、真の値を返し、サイトが停止している場合は、偽の値を返す必要があります。 ルール 入力は、stackexchange.comやなどのWebアドレスになりますgoogle.co.uk。入力の文字列の先頭になどが含まれることはありませんがhttp://、https://文字列の先頭www.またはcodegolf.先頭には含まれる場合があります。 isup.me/URLURLが入力されているサイトを使用する必要があります。 サイトが立ち上がると、次のようになります。 http://isup.me/codegolf.stackexchange.com サイトがダウンしている場合、次のようになります。 http://isup.me/does.not.exist isup.me以外のURL短縮サービスは許可されていません。 入力例 おそらくアップ(現在の状況に応じて): google.de codegolf.stackexchange.com worldbuilding.meta.stackexchange.com tio.run store.nascar.com isup.me ダウンします: made.up.com fake.com.us why.why.why.delilah store.antarcticrhubarbassociation.an 勝ち バイト単位の最短コードが優先されます。

3
パスワードを読む:モバイルで!
MD XFの最近の挑戦のおかげで、今では多くの異なる言語でパスワードを読むことができます!問題は、アプリケーションをモバイルデバイスに移植する必要があり、パスワードの入力方法が少し異なることです。 チャレンジ キーボードから文字列を読み取ります。 文字kが入力されるたびに、短い時間間隔で表示します。 時間間隔が経過した後、またはユーザーが別の文字を入力した後、k一部の文字に置き換えcます。 ルール c定数でなければなりません。同じ文字でなければなりません。 c 任意の可視文字を使用できます(つまり、改行、スペース、タブ、または印刷不可にすることはできません)。 c入力されたものに基づくことはできませんk。c最初のものkが読み込まれる前に定義/定数されなければなりません。 c プログラムを実行するたびに同じでなければなりません。 ck他のすべての規則が守られている限り、偶然のように指定された値のいずれかです。 kリアルタイムで印刷する必要があります。ユーザーがnew kを入力したらすぐに表示する必要があります。 kに変更される前に、エンドユーザーに表示される必要がありますc。時間間隔は0.5秒以上でなければなりません。 kc妥当な時間内に交換する必要があります。時間間隔は5秒を超えてはなりません。 新しい文字が入力されるとすぐに、時間間隔が終了したかどうかに関係なく、入力したキーを置き換えkてc、kすぐに新しいキーとして使用する必要があります。 キャラクターを変更する必要があるたびに、画面をクリアして再描画することは許容されます。 他のすべての規則に従っている限り、入力および出力の合理的な方法を使用できます。 入力された文字数が端末/グラフィカルウィンドウの幅より長くなることはないと想定できます。 端末を使用している場合、プログラムは改行が入力されるかEOFに達した後に終了するはずです。 プログラムは、モバイル環境と他の環境の両方で、ここで説明されているように機能する必要があります。 プログラムは、入力に印刷可能な文字(文字、数字、記号)のみが含まれ、場合によっては改行(バックスペース、矢印キー、削除など)が含まれないと想定する場合があります。 Ctrl + Cを押すと、プログラムが終了する場合があります。 プログラムが起動した場合、ウィンドウを閉じることでプログラムを終了できます。 得点 これはcode-golfなので、各言語で最短の答えが勝ちます! 例 これは、どのように見えるかの例です。これはモバイルプラットフォームで記録されますが、デスクトッププラットフォームでも機能するはずです。
13 code-golf  string 

8
すべてのアナグラム、およびサブアナグラムも見つけてください!
この質問は頻繁にオフに基づいているこの質問が、追加の多くの困難を提起する必要があります。 あなたのタスク 文字列を受け取ったときに、可能なすべてのアナグラムを出力するプログラムまたは関数を作成する必要があります。この質問のために、アナグラムは元の文字列と同じ文字を含む文字列ですが、元の文字列ではありません。サブアナグラムは、入力された文字列のサブストリングのアナグラムです。アナグラムとサブアナグラムは、実際の単語である必要はありません。 入力 標準の入力方法で、文字列を受け入れることができます。これは、長さが0を超える場合があります。ASCII文字を含めることができます。 出力 入力された文字列の可能なアナグラムとサブアナグラムのすべてを標準的な方法で出力できます。同じ文字列を2回出力したり、入力と同じ文字列を出力したりしないでください。 その他の規則 標準の抜け穴は許可されていません 得点 これはcode-golfで、最小バイトが勝ちます。

2
あなたの死をかわす!
前書き 「ムフハハハハ!」マッドサイエンティストは笑います。「あなたは私の小さなゲームに閉じ込められています!」 あなたの前には死の蛇の穴があり、あなたの後ろには底のない割れ目があります。抜け道はありません、あなたは立ち往生しています! 「あなたの前の2つのステップは蛇の穴であり、あなたの後ろの2つのステップは割れ目です。しかし!移動する前に、前後の一連のステップを書き留め、私にそれらを与えなければなりません。しかし! 「Mビット感じ悪を今日、私はあなたの代わりにすべてのステップを取ることができます、すべてのn番目のステップは、どこnあなたの配列の長さよりも小さいです! 今、賢明に選択してください。」 あなたの差し迫った死の前にあなたがとることができる最大のステップ数は何ですか? 仕事 上記のイントロは、最近、真実であることが証明されたエルドの不一致推測のひねりです(これについて詳しく知りたい場合は、James Grimeによるこのビデオを参照してください-私は彼からひねりの質問を「盗みました」)。 イントロへの答えは11手順ですが、私は証拠を詳しく説明しません。あなたと2つの「危険」との間の距離が3歩数である場合の答えは1160歩数ですが、それはまだ適切に検証されていません。 あなたの仕事は、あなたが達成できるステップの最長シーケンスを生成するプログラムを作成することですx。ここxで、あなたと2つの「危険」の間のステップ数です。プログラムはの入力を受け取り、xそのための有効なシーケンスを出力する必要がありますx。 この課題のために+、一歩前進を-表し、一歩後退を表します。 したがって、入力の出力2は次のとおりです。 +--+-++--++ nマッドサイエンティストが何を選んでも、それはうまくいきます。私たちの挑戦のために、x = 5。 注:このチャレンジは、このチャレンジやこのチャレンジのだまされたものではありません。私のチャレンジは、コードそのものではなく、出力に焦点を当てているためです。つまり、コードゴルフチャレンジではありません。それに加えて、これらの課題はに基づいx = 3ており、既に上限が設定されています。 ルール: プログラム全体が回答に収まるはずです。ただし、収まらない場合は、追加のGithubリポジトリなどを提供してください。 コードを最適化することでより良いスコアを取得できる場合は、回答とプログラムの両方を更新できますが、そうすることで、以下のリストのすべてを更新する必要があります。 あなたの答えでは、あなたが持っている必要があります: プログラム全体、またはコードをホストするGHリポジトリへのリンク 生成されるステップの量- これが最終スコアになります。 また、ペーストビンまたは類似のものでシーケンスのオンラインバージョンを提供する必要があります。これはあなたの答えを確認できるようにするためです。 最終スコアが最後に更新された時間なので、履歴を確認する必要はありません シーケンスを事前にハードコーディングすることはできません。 あなたのプログラムはすべてのために働く必要がありますx(ここでxあなたとピットとキャズムの間のステップ数です)が、あなただけのスコアを提供する必要がありますx = 5。 最大スコアの答えが勝ちます!

4
モジュラーパワータワーの評価
2つの数値nとmが与えられた場合、無限の電力塔を評価します。 n ^(n + 1)^(n + 2)^(n + 3)^(n + 4)^ ... mod m ^は右結合であることに注意してください。したがって、2 ^ 3 ^ 4 = 2 ^(3 ^ 4)。さて、どうやって値を右連想演算子の無限シーケンスに割り当てることができますか? f(n、m、i)を、無限の電力塔の最初のi項を含む電力塔として定義します。次に、i> Cごとにf(n、m、i)= f(n、m、C)のような定数Cがあります。したがって、無限の電力塔は特定の値に収束すると言えます。その価値に興味があります。 プログラムは、合理的な最新のPCで10秒未満でn = 2017、m = 10 ^ 10を計算できる必要があります。つまり、ブルートフォーシングを行わずに、実際のアルゴリズムを実装する必要があります。 プログラミング言語の数値制限については、n <2 30およびm <2 50であると想定できますが、アルゴリズムは理論的には任意のサイズn、mで機能する必要があります。ただし、プログラムはこれらのサイズ制限内の入力に対して正しくなければなりません。入力がこれらの制限内であれば、中間値のオーバーフローは許されません。 例: 2, 10^15 566088170340352 4, 3^20 4 32, 524287 16

4
最速の近似公約数
概要 この課題では、中規模の数値の倍数よりも大きい小さなオフセットである2つの数値が与えられます。小さなオフセットを除いて、両方の数値のほぼ除数である中規模の数値を出力する必要があります。 関係する数値のサイズは、難易度パラメーターによってパラメーター化されますl。あなたの目的は、l1分以内に可能な限り最大の問題を解決することです。 セットアップ 特定の問題では、秘密の番号がありp、これはランダムl^2(l*l)ビット番号になります。乗算器は2つありq1, q2、これはランダムなl^3ビット番号になりr1, r2、オフセットは2つありlます。 プログラムへの入力はx1, x2、次のように定義されます。 x1 = p * q1 + r1 x2 = p * q2 + r2 Pythonでテストケースを生成するプログラムを次に示します。 from random import randrange from sys import argv l = int(argv[1]) def randbits(bits): return randrange(2 ** (bits - 1), 2 ** bits) p = randbits(l ** …

1
Githubメッセンジャー
目標:この目標は、文字列を取得し、メッセージを表示するために何日に貢献する必要があるかを出力します。 仕様 入力 サポート文字とスペース(すなわち[A-Za-z ]) スペースは空白です 3X7 文字は、以下で提供されるこの5x7 DOTマトリックスフォントで定義されています 各文字のサイズが最小の境界長方形である(例えばl = 3x7、e = 5x5) 着色 5色あります C0, C1, C2, C3, C4 CXとのY貢献が必要3X <= y < 3(X+1) 文字はC1とC2 スペースには色がありません 各文字サイズは、隣接する文字と正確に1列重複する必要があります セルに複数の色がある場合は、使用します C3 ドットマトリックス ドットマトリックスはGithubの貢献履歴グラフです 今日が2017年5月1日月曜日の場合: 4-30 5-07 5-15 [5-01] 5-08 5-16 5-02 5-09 . 5-03 5-10 . 5-04 5-12 . 5-05 …
13 code-golf  date 

7
古いCコードTransmogrifier *
*トランスモーグリファイアとは何ですか? でCプログラミング言語と呼ばれる地層がある有向グラフとトリグラフにあまり一般的でない文字を評価2と3文字の配列です。たとえば??-、キーボードにがない場合に使用できます~。 テキストが与えられたら、次のダイグラフおよびトライグラフのすべてのインスタンス(左側)を、正しい短いゴルフのキャラクター(右側)に置き換えます。 ??= # ??/ \ ??' ^ ??( [ ??) ] ??! | ??< { ??> } ??- ~ <: [ :> ] <% { %> } %: # ソース 入力 入力はASCIIテキストです。末尾の改行が許可されます。有効なCコードである必要はありません。 出力 出力は同じテキストであり、上記のダイグラフおよびトライグラフのすべてのインスタンスが、左から右に評価された短縮バージョンに置き換えられます。末尾の改行が許可されます。有効なCコードである必要はありません。 テストケース => 入力と出力を分離します。 if (true ??!??! false) { => if (true || false) { …
13 code-golf  string 

5
Word Poker、誰が勝つか?
入力は2つの5文字の単語になります。それらは実際には辞書の単語である必要はなく、それぞれ5文字だけで、すべて小文字またはすべて大文字で選択できます。入力ワードにはAZのみが表示され、それらは常に5文字の長さになります。 あなたのプログラムは、あたかもポーカーハンドであるかのように両方を獲得し、ハイハンドを出力します。もちろん、ここではスーツは適用されません。ランキングのみなので、フラッシュはありません。 典型的なポーカーランキングシステムは、「1ペア」、「2ペア」、「3種類」、「ストレート」、「フルハウス」、「4種類」、「5種類」、そしてもちろん手(この場合は言葉)には何の価値もない可能性があります。 同数の場合、 Aに近い文字はより高いとみなされるため、AsのペアはBのペアを破ります。場合によっては、両方のハンドが同一であるかもしれませんが、異なる順序(または異なる順序)である場合、その場合はハンドまたは再ソートされたバージョンを出力します。 この外部ページには、勝者を特定する方法に関する情報が含まれており、特にポーカーのハンドを獲得する方法に慣れていない場合に備えて、特定のランキング内の関係に対処しています。 ストレートの場合:文字はアルファベットで隣接している必要があり、折り返すことはできません。したがって、「defgh」は任意の順序でストレートですが、「xyzab」はそうではありません。 シングルハンドを獲得する方法の例: word | scored as --------------------- ccccc | 5 of a kind <-- highest ranking woooo | 4 of a kind opopo | full house vurst | straight vovvu | 3 of a kind ppoww | 2 pairs upper | 1 pair kjsdf …
13 code-golf  string 

2
地図を拡大する
あなたの仕事は、地図を入力として、縮尺に応じてズームアウトまたはズームインすることです。指定された縮尺はズームアウトする縮尺であるため、0〜1の縮尺は実際にズームインすることに注意してください。 たとえば、次の(不適切に作成された)マップがあるとします。 ..____.... ../OOO\... ..\OO/\... .......... スケールファクター2の場合、最初に2x2セクションに分割する必要があります。 .. | __ | __ | .. | .. .. | /O | OO | \. | .. ---------------------- .. | \O | O/ | \. | .. .. | .. | .. | .. | .. そして、各セクションで最も一般的なキャラクターを見つけます。 .__.. ..... あいまいなセクションがあったことに注意してください。 __ OO …
13 code-golf  string 

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