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

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

15
助けて!パスワードを忘れた!
助けて!Stack Exchangeにログインしたばかりですが、パスワードを忘れてしまいました!ログオフする前に解決する方法が必要です。 幸いなことに、私は優秀なハッカーです。パスワードのハッシュを見つけることができただけでなく、Stack Exchangeのハッシュアルゴリズムも見つけました!各桁のASCII値にその桁の位置を掛けて、それらすべての値を合計します。例えば: "135" -> 1*49 + 2*51 + 3*53 = 310 私のパスワードは3桁の長さで、各文字は0〜5の数字(正規表現に一致するようになります:)であることを覚えていますが^[0-5]{3}$、それでも推測するには余りにも多くの可能性があります。ハッシュを潜在的なパスワードに変換できるプログラムが必要ですが、熟練したハッカーであるにもかかわらず、命を救うためにコーディングすることはできません!私はこれらのテストを手で書くことができました: input -> output 288 -> 000 // lowest possible hash 290 -> 200, 010 298 -> 022, 050, 103, 131, 212, 240, 321, 402, 430, 511 318 -> 555 // highest possible hash ハッシュの1つを受け取り、使用できるすべての可能なパスワードを印刷するプログラムを作成できますか? 入力は常に少なくとも1つの有効なパスワードを生成できます。文字列を明確に識別できる限り、任意の出力形式が許可されます。また、先行ゼロについても心配していません。したがって、潜在的なパスワードがの場合、またはを001受け入れます。011 Stack …
24 code-golf  math 

22
偶数は素数になることができますか?
シーケンス 誰でも知っているのは、偶数の素数だけです2。うん しかし、でn連結されると素数n-1になる特定の偶数があります。 まず1第一に、10素数ではないので、リストにありません。2(21)および3(32)でも同様です。しかし、4作品のため43素数であるので、シーケンスの最初の番号ですa(1) = 4。次の番号その作品(いずれも6(65)も8(87)の仕事は)ある10ので、109素数であるので、a(2) = 10。それから22、2221がプライムなので、さらに束をスキップしa(3) = 22ます。等々。 明らかに、このシーケンス内のすべての項は偶数です。これは、n連結された奇数が偶数にn-1なる(に3変わるなど32)ため、素数にならないためです。 これは、OEISのシーケンスA054211です。 チャレンジ nこのシーケンスのどこかに収まる入力番号(つまり、n連結されたn-1素数)が与えられると、このシーケンスでの位置を出力します。0インデックスまたは1インデックスのいずれかを選択できますが、提出の際にどちらを指定してください。 ルール 入力と出力は、言語のネイティブ整数型に適合すると仮定できます。 入力と出力は、任意の便利な形式で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください! 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 以下の例は1から始まります。 n = 4 1 n = 100 11 n = 420 51

10
TIO回答をCMC回答に変換する
一度便利なことをしましょう。 Try It Onlineのcodegolf提出からのテキストを考慮して、同等のChat Mini Challenge提出を作成します。 Language, N bytes: [`code`](URL) または(提出が1バイトの場合-TIOは必要な場合にのみ最初の行に末尾のsを追加します) Language, 1 byte: [`code`](URL) あなたは提出を仮定することができます 一行しかない バッククォートを含まない(`) 先頭に空白がない 以下の例のような通常の形式です。コード行は 、HTMLタグ(<pre><code>… </code></pre>)ではなく、4つのスペース()でインデントされます。つまり、末尾の空白はありません。 提出には、構文強調タグが含まれている場合があります。最後の例を参照してください。 オプションで、タイトルテキストを含めることができます…url "Language - Try It Online"。 例 与えられた # [05AB1E], 1 byte Ô [Try it online!][TIO-j3v72bss] [05AB1E]: https://github.com/Adriandmen/05AB1E [TIO-j3v72bss]: https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA "05AB1E – Try It Online" 帰る 05AB1E, …

27
配列に波を適用する
今日のタスクは、数値の配列にウェーブを適用することです。波は次のようになります。[1, 0, -1, 0, 1, 0, -1, 0, 1...]特定の配列に適用することは、最初の要素、2番目の要素などを加算することを意味します。 より正確に: プログラムまたは関数は整数の配列を受け取ります。元の配列1の1番目、5番目、9番目などの要素に-1追加され、元の配列の3番目、7番目、11番目などの要素に追加され、残りの要素を持つ等しいサイズの配列を出力または返す必要があります。そのままにしておく必要があります。 入力配列には、少なくとも1つの要素があることが保証されています。 テストケース: Input | Output [0] | [1] [-1] | [0] [-4, 3, 0, 1, 7, 9, 8, -2, 11, -88] | [-3, 3, -1, 1, 8, 9, 7, -2, 12, -88] [0, 0, 0, 0, 0] | [1 …

23
枢機Codeコードチャレンジ
仕事 あなたは、ある種のコンパスの作成を担当しています。 ソースコードをコンパスの「針」として想像してください。異なる方向で実行すると、明確な出力が生成されます。 サポートされるソースコードの向きは、北、東、南、および西です。 例 ソースコードがあるとしましょう: ABCD J K WXYZ これを北向きと見なし、時計回りに90度回転すると東を指します。 W A XJB Y C ZKD 再び南のポイントを回転させる: ZYXW K J DCBA そして最後に、西への最後のローテーション: DKZ C Y BJX A W 実行すると、上記の各コード例は、選択した単一の個別の印刷可能なASCII文字を出力するはずです。 ノート コードには何も入力しないでください。 空のスペースや新しい行は、回転しても折りたたまれたり消えたりしません。 出力の先頭/末尾の改行は問題ありません。 回答は、プログラムまたは関数全体である場合があり、STDOUTに出力されるか、関数の結果を返します。 標準のコードゴルフ規則が適用されます。バイト単位の最短回答が勝ちます!

30
リストを半分に折ります
整数のリストを折りたたみます。これを行う手順は次のとおりです。リストの長さが偶数の場合、新しいリストのn番目の項目が古いリストのn番目の項目とn番目からn番目までの合計の長さの半分のリストを作成します古いリストの最後のアイテム。たとえば、リストがある場合 [1 2 3 4 5 6 7 8] 折ります [8 7 6 5] +[1 2 3 4] __________ [9 9 9 9] リストの長さが奇数の場合、折りたたむには、まず中間のアイテムを削除し、偶数のように折り、結果に中間のアイテムを追加します。 たとえば、リストがある場合 [1 2 3 4 5 6 7] 折ります [7 6 5] +[1 2 3] __________ [8 8 8] ++ [4] __________ [8 8 8 4] …

26
連続する奇数の合計
が関連する 課題を尋ねてきた、この1は、独自の質問を正当化するのに異なっています。 チャレンジ 正の整数を指定すると、その合計が指定された整数である連続した正の奇数整数の最長シーケンスを返します。そのようなシーケンスが存在しない場合、偽の値を返す、例外をスローするなど、言語にとって意味のある方法でエラーを報告できます。 テストケース 1-> [1] 2-> [] 3-> [3] 4-> [1、3] 5-> [5] 6-> [] 9-> [1、3、5]([9]は有効な答えではないことに注意してください) 15-> [3、5、7] 104-> [23、25、27、29]([51、53]は​​有効な答えではないことに注意してください) 得点 これはcode-golfであるため、各言語の最短の回答が優先されます。
24 code-golf  number 

20
プライムへのステップを登る
Numberphileの最新ビデオである13532385396179のタイトルは、正の整数に対する次の関数fの固定小数点です。 してみましょうnは正の整数です。素因数分解を通常の方法で記述します。たとえば、60 = 2 2・3・5で、素数は昇順に記述され、1の指数は省略されます。次に、指数を行に戻し、すべての乗算記号を省略して、数値f(n)を取得します。[...]たとえば、f(60)= f(2 2・3・5)= 2235。 (上記の定義は、5つの$ 1,000問題の問題5- ジョンH.コンウェイから取られています) なお、F(13532385396179)= F(13・53 2・3853・96179)= 13532385396179。 仕事 n入力として正の合成整数を受け取り、出力しますf(n)。 もう一つの例 48 = 2 4・3、したがってf(48)= 243。 テストケース その他のテストケースはこちらから入手できます。 4 -> 22 6 -> 23 8 -> 23 48 -> 243 52 -> 2213 60 -> 2235 999 -> 3337 9999 -> 3211101

30
パーセント記号を作成する
整数所与N ≥1、出力2次元表現†幅のパーセント記号のN。構成は次のとおりです。 作成のnをすることにより、n個のマトリックス(またはリストのリスト)ゼロでいっぱい。 左上隅と右下隅に挿入します。 対角線上に左下から右上に配置します。 入力n = 4の場合、この構造は次のようになります。 1. 4x4 matrix of 0s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2. 1s in TL and BR corners 1 0 0 0 0 0 0 0 0 0 0 0 0 0 …

7
binarrayを見つけてください!
binarrayは、次のプロパティを満たす配列として定義します。 空ではない 最初の値は 1 最後の値は 1 他のすべての値は、0または1 たとえば、配列[ 1, 1, 0, 1 ]は有効なbinarrayです。 タスク 非空の配列の指定されたA非負整数の整数正N、ジョブを見つけることであるbinarray Bの長さNを生成することを可能にするAをのコピー制限のない数合計することによってBを、無制限の数だけシフトポジション。 例 A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ] N = 4 この入力では、binarray B = [ 1, 1, 0, 1 ]が有効な答えになります。 [ 1, …

3
ブラケットのバランスをとる
目的:ブラケットの文字列を指定し、入力文字列をブラケットのバランスが取れた文字列に変換するために必要な最小のダメラウ-レーベンシュタイン距離を出力します。 入力 入力文字列には括弧のみが含まれ、他の文字は含まれません。つまり、の任意の文字の組み合わせです(){}[]<>。入力は、文字列または文字の配列として取得できます。入力文字列について他の仮定を行うことはできません。任意の長さ(言語でサポートされている最大サイズまで)、空の場合、ブラケットのバランスがすでに取れている場合などがあります。 ダメラウ-レーベンシュタイン距離 2つの文字列間のDamerau-Levenshtein Distanceは、2つの隣接する文字の挿入、削除、単一文字の置換、および転置(スワップ)の最小数です。 出力 出力は、入力文字列と角かっこが一致する文字列との間の最小Damerau-Levenshtein Distanceである必要があります。出力は、結果のバランスの取れた文字列ではなく、数値でなければなりません。 次のように、開始ブラケットと終了ブラケットが正しい順序であり、中に文字がない場合、一対のブラケットは「一致」とみなされます。 () []{} または、その中のすべてのサブ要素も一致する場合。 [()()()()] {<[]>} (()()) サブ要素は、いくつかのレイヤーの深さにネストすることもできます。 [(){<><>[()]}<>()] <[{((()))}]> (定義については@DJMcMayhemに感謝します) テストケース Input Possible Balanced Output Empty Empty 0 [](){}<> [](){}<> 0 [(){}<> [(){}<>] 1 [(]) []() 1 [[[[[[[[ [][][][] 4 (](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7 >]{])< []{()} 3 ([)}}>[ (){}<> 4 {<((<<][{{}>[<) …

28
大きさの数字
入力として正の整数を指定すると、それが寛大な数であるかどうかが決まります。 寛容な数とは、+基数10の任意の2桁の間に符号を挿入すると、素数の整数を表すような数です。 たとえば、40427は寛大です 4+0427 = 431 is prime 40+427 = 467 is prime 404+27 = 431 is prime 4042+7 = 4049 is prime 出力 入力が寛大な場合とそうでない場合の2つの異なる値を出力する必要があります。 得点 このコンテストの目的は、このタスクを解決するために記述されたソースコードのサイズを、バイト単位でできるだけ小さくすることです。 テストケース 1 -> True 2 -> True 4 -> True 10 -> False 98 -> True 101 -> True 109 -> False 819 …

21
プラスチック数の概算
チャレンジ プラスチック製の番号は、多くの興味深い数学的な性質で、黄金比に関連した数です。そのため、数を計算するために使用できる多くのアプローチがあります。 この課題の目的で番号を正確に指定するために、次の定義を使用します(ただし、同等の定義は多数ありますが、同じ番号になる限り、任意の定義を使用できます)。 プラスチック数は実数であり、ρようρ ³= ρ +1。 あなたの課題は、入力として整数xを取り(x > 1で)、出力としてρの近似値を生成するプログラムまたは関数を作成し、xの値が大きくなるほど出力がρに近づくことです(せいぜい有限の例外を除いて、この目的のために「近い」と同じ値にとどまります)、任意の正の数δに対して、ρのδ内にある出力を生成するプログラムへの入力xがあります。 明確化 本質的に文字列を出力するメソッド(標準出力ストリームなど)を介して出力する場合、出力を10進数(たとえば1.3247179572)でフォーマットするか、2つの整数の/間に文字を入れた比率で出力をフォーマットできます。 プログラミング言語内で値として出力する場合(関数から返される場合など)は、固定小数点、浮動小数点、または有理型でなければなりません。(特に、2つの整数の比率を保持するためだけに使用されない限り、数値を記号的に格納するデータ型は使用できません。したがって、Mathematicaまたは同様の言語を使用している場合は、追加の実際に出力の数字を生成するコード。) あなたの答えは、整数を任意に大きくすることができ、メモリ(スタックを含む)は無制限である、あなたの言語の仮想的な変形で機能しなければなりません。言語の浮動小数点演算がarbitrarily意的に正確であると仮定することはできませんが、代わりに実際の正確さを使用する必要があります(つまり、浮動小数点数の出力は、浮動小数点数の精度が可能な言語でのみ可能になることを意味します)実行時に制御されます)。 xは、任意の意味を持ちます(値を大きくすると、より正確な出力が得られます)。ほとんどのサブミッションでは、生成する出力の桁数、またはプログラムがプラスチック数に収束するために使用するアルゴリズムの反復数を制御しますが、他の意味も受け入れられると思います。 テストケース プラスチック番号の最初の数桁は次のとおりです。 1.32471795724474602596090885 OEISではさらに多くの数字を使用できます。 勝利条件 code-golfの場合と同様に、バイト単位で測定した方が短い方が優れています。ただし、既存の回答に何か(たとえば、異なる言語やアルゴリズム)を追加する限り、勝たなかったとしても、回答を投稿してください。
24 code-golf  math  number 

3
Hello World-アルファベット順
この課題は単純すぎて存在しないので、重複しているかどうかを教えてください。 タスク 印刷する Hello, world! ルール コードは「バイト順」である必要があります。これは、すべての文字/バイトが先行する文字/バイトよりも大きいか等しいバイト値を持つことを意味します。 この規則の例外は空白文字です。これはどこでも発生する可能性があります。 通常の抜け穴が許可されていません。 編集:解決する組み込み関数/定数の使用Hello, world!は許可されていません。 編集2:出力は、文字列を返す(n無名)関数、文字列を解決する式、または許可されるべきその他の方法である場合があります。 例 HW有効:0x48 (H) <= 0x57 (W) print無効:0x72 (r) > 0x69 (i) がPRint有効:0x50 (P) <= 0x52 (R) <= 0x69 (i) <= 0x6e (n) <= 0x74 (t) 得点 これはコードゴルフなので、スコアは文字数/バイトです。スコアが低いほど、ランキングは高くなります。


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