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

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

8
ポジショナルバスルームエチケット
バックグラウンド 浴室のエチケットは、利用可能な小便器に関する場合、次に充填する小便器は全体の不快感を最小限に抑えるべきであると述べています。合計不快感の式は、次の式のセットで与えられます。 dist(x、y) =尿便器単位の人xと人yの間の直線距離disfortfort (x) = sum(1 /(dist(x、y)* dist(x、y)))(人xを除くすべての人y) total_Discomfort = sum(discomfort(x))すべてのx 同様の(まったく同じではない)問題を扱った詳細なペーパーがここにあります(この驚くべきホワイトペーパーについて私に警告してくれた@Lembikに感謝します!) 入出力 空の小便器と完全な小便器の入力が与えられた場合、1人を追加して結果の小便器セットを出力します。位置にネクタイがある場合、小便器は左から右に記入する必要があります。出力は入力と同じ形式である必要があります。 完全な小便器のケースが与えられた場合、入力を返します。 入力には常に少なくとも1つの便器が定義されます。 テストケース 入力->出力 1000001-> 1001001 101010101-> 111010101 100-> 101 00000-> 10000 1111111-> 1111111 0100-> 0101 101000-> 101001 ルール これはcode-golfであるため、バイト単位の最短コードが優先されます。標準の抜け穴は禁止されています。
24 code-golf 

12
配列の統一
前書き 同じ長さの2つの配列、たとえばA = [0,1,0,2]とを考えますB = [-1,1,2,2]。それらのコンテンツがアイテムごとに何らかの意味で同等であることを知っていると仮定します: 0に相当し-1、 1に相当し1、 0と同等2であり、 2はと同等2です。 等価性は推移的です:-1および0は等価であり0、および2は等価であるため-1、および2は等価です。and の統合はA、(または)のB各項目がそれに相当する最大数に置き換えられた配列です。この場合、統合はになります。AB[2,1,2,2] タスク 等しい長さの2つの空でない整数配列を取り、それらの統一を出力するプログラムまたは関数を作成します。戻る代わりに、入力の1つを変更することもできます。最も低いバイトカウントが優先されます。 テストケース [0] [0] -> [0] [1] [2] -> [2] [0,-1] [-1,-1] -> [0,0] [0,1,0] [2,1,0] -> [2,1,2] [1,2,3] [0,0,1] -> [3,3,3] [0,1,0,2] [-1,1,2,2] -> [2,1,2,2] [1,0,1,-4] [-3,-1,-2,2] -> [1,0,1,2] [1,2,3,-2] [1,0,-3,-2] -> [1,2,3,-2] [-3,-2,-1,0,1] [-1,-1,-1,-1,-1] -> …

24
数字の和と積で割り切れる数字
正の整数を取りXます。この数は、のすべての数字の合計Xがの約数でありX、のすべての数字の積がの約数である場合に関心のあるシーケンスの一部XですX。 たとえば、135が1 + 3 + 5 = 9分割され135 = 9 * 15、1 * 3 * 5 = 15が分割されるため、このような数値135です。 これは、OEISのシーケンスA038186です。 あなたのタスク:整数が与えられると、そのようなプロパティをもつ正の整数をN出力しNます。 入力と出力 番号には0-indexedまたは1-indexedを使用できます。回答のどれを使用するかを指定してください。 入力はSTDIN、を介して、関数の引数などとして取得できます。 出力は、に出力されSTDOUTたり、関数から返されたり、類似したものになります。 テストケース 以下のテストケースは1-indexedです。 Input Output 1 1 5 5 10 12 20 312 42 6912 50 11313 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。

9
Brain-Flakでのゴルフのヒント
Brain-flakはスタックベースのチューリングターピット言語で、私とDJMcMayhemと1000000000の間で共同で作成されました。 一部のユーザーは、Brain-Flakの神秘的な方法を非常に経験しています。ですから、この質問を私たち、そしてできれば他の人たちにとっても、コミュニティと知識を共有し、「使いにくいように設計された」この言語への入り口を低くする方法として設定することをお勧めします。そしておそらく、私たちに新しい経験をもっと教えてください。 それでは、ブレインフラックでゴルフをするためのヒントはありますか?私は、一般的にゴルフの問題をコーディングするのに適用できるアイデアを探しています。それは少なくとも脳のフレークに特有のものです(たとえば、「コメントの削除」は答えではありません)。 回答ごとに1つのヒントを投稿してください。

13
コードゴルフゴルフゴルフ
ゴルフチャレンジ 以下のASCII「グリーン」が与えられます。 | | | |> | | | | | O | | | | | | | | | | | | | レッツ|示す壁 レッツ|表す半分旗ポール レッツ>示すポールの旗 レッツO示す穴 レッツo表すボール 「グリーン」の寸法は10x10です。2つの壁の間には10のスペースがあります|。 また、緑の上部と下部の間には、10個のスペースがあります。 チャレンジ xとyの値を入力するか、2つの乱数を生成してゴルフボールをグリーンに「発射」します。 生成されたx、yがホールまたはフラグポール/フラグ出力「Try Again!」に触れない場合 生成されたx、yがホール出力「Hole in One!」にヒットした場合 生成されたx、yが極出力「ラッキーショット!」に当たる場合 生成されたx、yがフラグ出力「Close One!」にヒットした場合 ショットの後、ボールの位置を緑で出力し、oヒットしたキャラクターを置き換えます。上記のそれぞれのことわざも出力します。 例: //Hole in one example, the O …

30
アルファベット暗号をエンコードする
小文字のみを含む文字列の場合、その文字列をアルファベット暗号でエンコードします。 アルファベット暗号でエンコードするには(例を使用しますhello): 最初に、文字列の各文字をアルファベットの位置(a= 1、b= 2など)に応じて数字に変換します。例:8 5 12 12 15 各数字を0sで2文字に埋め込みます。例:08 05 12 12 15 参加してください。例:0805121215 テストケース helloworld -> 08051212152315181204 codegolf -> 0315040507151206 alphabetcipher -> 0112160801020520030916080518 johncena -> 1015081403051401 これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。

9
素数の孤独
最近、私は小説「素数の孤独」を読みました。そこでは、主人公は双子の素数と幾分比較されます(「常に一緒ですが、触れない」)。 双子素数は、例えば-for別の素数、双子素数対(41、43)よりも2少ない又は2以上のいずれかである素数です。言い換えれば、双子素数は2の素数ギャップを持つ素数です。ツインプライムという用語は、ツインプライムのペアに使用されることがあります。これの別名は、プライムツインまたはプライムペアです。ウィキペディア 気のめいるような小説はあまり好きではありませんでしたが、最近PPCGに陥ったので、それが私の頭の中に疑問を投げかけました... 仕事: N> 4の正の整数を考えると、双子の素数の最も近いカップルの間の孤独な素数(別名孤立素数)を見つけます。 この場合、孤独な素数という用語では、双子の素数ではなく、双子の素数のペアの間にあるすべての素数を意味することに注意してください。N> 4の理由は、最初の2組の素数が(3、5)と(5、7)であるためです。 例: N = 90。 双子素数の最初の2つのペア<Nおよび> Nを見つけます。それらは(71、73)および(101、103)です。 73から101の範囲で孤独な素数を見つけます。 79、83、89、97です。 特殊なケース: Nが2つの双子素数の間にある場合は、最も近い双子素数のペア> N + 1および<N-1を見つけます。例:N = 72は、彼らではないので、リスト71と73から除外する双子素数> 73と<71の最も近いカップルを見つける孤独な素数。そうN = 72期待される結果のためのものである:67、71、73、79、83、89、97 Nがツインプライムのカップルに属している場合、たとえばN = 73の場合、ツインプライムの最も近いカップルは(71、73)と(101、103)です。N = 71の場合、双子素数の最も近いカップルは(59、61)と(71、73)です。 テストケース: N = 70 > Lonely primes are: 67 N = 71 > Lonely primes are: 67 N = …
24 code-golf  math  primes 


27
ヘブライ語のアルファベットを出力する
あなたの仕事はこの正確なテキストを印刷することです: אבגדהוזחטיכךלמםנןסעפףצץקרשת (末尾の改行を印刷できます) テキストのUTF-8エンコードのSHA256ハッシュ: 0ab6f1e0bf216a0db52a4a5a247f95cba6f51496de7a24dfd01f3985dfcf6085 Base64エンコード: 15DXkdeS15PXlNeV15bXl9eY15nXm9ea15zXnted16DXn9eh16LXpNej16bXpden16jXqdeq ルール このテキストを出力する組み込みを使用することはできません。 標準の抜け穴は許可されていません。 これはcode-golfなので、最短の答えが勝ちです。 がんばろう!

23
ベルタワーは何回鳴りますか?
前書き 鐘楼は、時間ごとにその鐘を鳴らすnと、時間をn午前と午後に現在の時間であること。 たとえば、ベルは午後5時に5回、午前10時に10回鳴ります。 仕事 適切な形式で2回指定すると、開始時刻と終了時刻を含めてベルが鳴る回数が出力されます 例 "10am-12pm" 10+11+12= 33 [01:00, 05:00] 1+2+3+4+5 = 15 [11, 15] 11+12+1+2+3 = 29 [10:00pm, 10:00am] 10+11+12+1+2+3+4+5+6+7+8+9+10 = 88 開始と終了が同じ場合、その時間のチャイムの数を単に出力します。 [5pm, 5pm] 5 = 5 ご覧のとおり、入力方法を選択できますが、出力は整数(または受け入れ可能な代替)である必要があります。 注意: 入力は、ある日の午後から次の日の朝まで及ぶ場合があります。 2つの時間の差は24時間を超えることはありません。 入力がどの形式であるかを明確に述べている限り、入力は柔軟です。 入力にはAMとPMを明確に区別する必要があります。
24 code-golf  clock 

15
タブ対宇宙戦争を終わらせる
タブ対宇宙戦争を終わらせる そのため、タブを使用するかスペースを使用してコードをインデント/フォーマットするかについて、多くの議論がありました。信じられないほどクレイジーな独自の書式設定方法に 進むことで、大学が紛争を解決するのを助けることができますか あなたの仕事は、すべてのタブを4つのスペースに展開する完全なプログラムまたは機能を作成することです。そして、n個の先行スペースの連続を「/(n-ここに2つの星)/」で置き換えます。任意の妥当な形式で複数行の入力を受け取ります(新しい行ごとに文字列の単一文字列配列。列配列など)。 サンプル入力は恥ずかしく盗まれました。タブはSEでは自動的に4つのスペースに展開されるため、「^」文字として表しますが、タブ(コードポイント0x09)も処理する必要があります。すべての「^」文字は表を表します。 Calculate the value 256 and test if it's zero If the interpreter errors on overflow this is where it'll happen ++++++++[>++++++++<-]>[<++++>-] +<[>-< Not zero so multiply by 256 again to get 65536 [>++++<-]>[<++++++++>-]<[>++++++++<-] +>[> # Print "32" ++++++++++[>+++++<-]>+.-.[-]< <[-]<->] <[>> # Print "16" +++++++[>+++++++<-]>.+++++.[-]< <<-]] …

30
コードラダー、強盗
これが強盗のスレッドです。警官のスレッドはここに行きます。 警官のポストと同じバイト数を持ち、公開された文字が同一であるコードを記述します。コードは1初期状態で生成し、2, 3 ..単一の変更が行われたときに数値を生成する必要があります。 勝者は、ほとんどの投稿をクラックした強盗になります。 サンプル投稿: MyLang、9バイト、8桁の数字(回答へのリンクを含む)、警官のユーザー名。 元のコード: abc1efghi 1から8を生成するコード: 1: abc1efghi 2: abc2efghi 3: abc2efghij 4: kbc2efghij 5: kbc23fghij 6: kbc23fghi 7: kbc63fghi 8: kbc63fhi 説明が奨励されます。強盗投稿の正確な形式はオプションです。

2
可能な限り大きな文字列に対して可能な最大実行回数を計算します
[この質問は、文字列の実行を計算するためのフォローアップです] 期間p文字列はw任意の正の整数であるpようなw[i]=w[i+p] ときはいつでも、この式の両辺が定義されています。per(w)の最小周期のサイズを示しましょうw。文字列wは周期的であると言うper(w) <= |w|/2。 したがって、非公式には、定期的な文字列は、少なくとも1回繰り返される別の文字列から構成される単なる文字列です。唯一の問題は、文字列の最後で、少なくとも1回全体が繰り返される限り、繰り返される文字列の完全なコピーを必要としないことです。 たとえば、文字列を考えますx = abcab。per(abcab) = 3としてx[1] = x[1+3] = a、x[2]=x[2+3] = bより短い期間はありません。abcabしたがって、文字列は周期的ではありません。ただし、文字列ababaはとして周期的per(ababa) = 2です。 より多くの例としては、abcabca、ababababaとabcabcabcも周期的です。 正規表現が好きな人のために、これは文字列が周期的かどうかを検出します: \b(\w*)(\w+\1)\2+\b タスクは、より長い文字列内のすべての最大周期部分文字列を見つけることです。これらは文献ではランと呼ばれることもあります。 部分文字列wは、周期的であり、w[i-1] = w[i-1+p]でもない場合、最大の周期的部分文字列(実行)ですw[j+1] = w[j+1-p]。非公式には、同じ期間のより大きな「実行」に「実行」を含めることはできません。 2回の実行は、文字列全体の異なる場所で発生する同じ文字列を表すことができるため、実行を間隔で表します。上記の定義を間隔で繰り返します。 文字列内のラン(又は最大周期サブストリング)がT間隔である [i...j]とj>=i、このような、 T[i...j] 周期のある周期的な単語です p = per(T[i...j]) それは最大です。正式には、T[i-1] = T[i-1+p]でもありませんT[j+1] = T[j+1-p]。非公式には、同じ期間のより大きな実行に実行を含めることはできません。 表すRUNS(T)文字列の実行のセットT。 実行の例 文字列の4つの最大の周期ストリング(実行)がT = atattattありT[4,5] = tt、T[7,8] = tt、T[1,4] …

15
はしごを描いてスライドさせる
あなたのタスクは、入力としてn1〜25(両端を含む)の自然数()を取り、n複数のラングのあるスライドとラダーの等角投影を印刷するプログラムまたは関数を作成することです。 はしごとスライドの仕様 はしごは常に左側に、スライドは右側に配置されます。梯子側から見ているので、スライドの一部は上位3レベルで見えなくなります。ラングは4つのダッシュ(----)とラダーの側面で表され、スラッシュ(/および\)でスライドします。以下は、5つのラングを含むスライドに必要なスペースのパターンを表す図です。 Slide Blank space count /----/\ 1234/----/\ /----/ \ 123/----/12\ /----/ \ 12/----/1234\ /----/ \ \ 1/----/1\1234\ /----/ \ \ /----/123\1234\ 例 >>1 /----/\ >>3 /----/\ /----/ \ /----/ \ >>4 /----/\ /----/ \ /----/ \ /----/ \ \ >>10 /----/\ /----/ \ /----/ \ /----/ \ \ …

7
永遠に増幅するジグザグ
正の整数Nを取り、必要な行のみを使用して、この増幅ジグザグパターンの最初のN個の数値を出力するプログラムまたは関数を記述します。 26 25 27 . 10 24 28 . 9 11 23 29 . 2 8 12 22 30 44 1 3 7 13 21 31 43 4 6 14 20 32 42 5 15 19 33 41 16 18 34 40 17 35 39 36 38 37 したがって、Nが1出力の場合 1 …

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