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

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

25
数値をZeckendorf RepresentationからDecimalに変換する
Zeckendorf Representations / Base Fibonacci Numbersについて これは、フィボナッチ数をベースとして使用する数値システムです。数値は0と1で構成され、各1は数値に対応するフィボナッチ数が含まれることを意味し、0は含まれないことを意味します。 たとえば、10以下のすべての自然数をベースフィボナッチに変換しましょう。 1はフィボナッチ数である1の合計であるため、1になります。 2はフィボナッチ数である2の合計であるため10になります。1は必要ありません。これは既に目的の合計を達成しているためです。 3はフィボナッチ数である3の合計であるため、100になります。目的の合計をすでに達成しているため、2または1は必要ありません。 4は101になります。これは、フィボナッチ数である[3,1]の合計であるためです。 5はフィボナッチ数である5の合計であるため、1000になります。他の数は必要ありません。 6はフィボナッチ数5と1の合計であるため、1001になります。 7はフィボナッチ数5と2の合計であるため、1010になります。 8はフィボナッチ数であるため、10000になります。 9は、フィボナッチ数8と1の合計であるため、10001になります。 10はフィボナッチ数8と2の合計であるため、10010になります。 ランダムなベースフィボナッチ数10101001010を10進数に変換しましょう:最初に、対応するフィボナッチ数を書きます。次に、1の下の数値の合計を計算します。 1 0 1 0 1 0 0 1 0 1 0 144 89 55 34 21 13 8 5 3 2 1 -> 144+55+21+5+2 = 227. ベースフィボナッチ数の詳細:linkには、通常の整数をベースフィボナッチに変換するツールもあります。あなたはそれを試すことができます。 今質問: あなたの仕事は、Zeckendorf表現で数値を取得し、その10進数値を出力することです。 入力は、0と1のみを含む文字列です(ただし、入力は任意の方法で取得できます)。 1つの数値を10進数で出力します。 …

9
パディングされた文字列のリスト間の最大ハミング距離
等しい長さの2つのストリング間のハミング距離は、対応する文字が異なる位置の数です。文字列の長さが等しくない場合、ハミング距離は定義されません。 チャレンジ 文字列のリストからすべての文字列のペアの中で最大のハミング距離を見つけるプログラムまたは関数を作成し、以下で説明する規則に従って必要に応じてパディングします。 文字は内からになりますa-zA-Z0-9。 文字列の長さが等しくない場合があるため、比較ごとに次のように短い文字列をパディングする必要があります。 必要な長さに合わせて、必要な回数だけ文字列を先頭から折り返します 奇数回の折り返しごとに文字の大文字小文字を変更します(1番目、3番目、5番目など) a-zA-Z包装するときは外の物をそのままにしておく たとえばab9Cd、18 文字になるように5文字の文字列を埋め込む必要があるとしましょう。次のようになります。 ab9CdAB9cDab9CdAB9 ^^^^^ ^^^ ^ケースの変更を強調するために、1番目と3番目のラップの下に追加されます。 入出力 入出力形式は柔軟です。入力に少なくとも2つの文字列があり、すべての文字列に少なくとも1つの文字があると仮定できます。 出力は整数です。 ルール これはcode-golfです。標準ルールが適用されます。 テストケース [ "a", "b" ] => 1 [ "a", "b", "c" ] => 1 [ "a", "a", "c" ] => 1 [ "abc", "abcd" ] => 1 [ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] …
18 code-golf  string 

26
単語は互いに素ですか?
単語が与えられたら、すべての文字を英語のアルファベットの数字として扱い(a1にbなる、2にzなる、26 になる、など)、重複を含むすべてがペアワイズcoprimeであるかどうかを確認します。 入力は、小文字の英語文字の正確に1つの単語です。単語が互いに素である場合の出力は事実です:真/偽の値ですが、それらの2つのバリアントのみです。標準的な抜け穴は禁止されています。 テストケース: man: True day:True(ØrjanJohansenに感謝) led:False(l=12とd=4持っていますgcd=4) mana:(複数回発生しTrueますaが、1と1は互いに素です) mom:False(gcd(13,13)=13)) of:False(xnorに感謝しますが15∤6、gcd(15,6)=3) a:(True文字のペアがない場合は、単語を余素として扱います) これはcode-golfなので、バイト単位の最短コードが勝ちです!

30
テキスト圧縮
以下のテキストでは、テキスト内に複数回繰り返される単語がいくつかあります。任意のプログラミング言語を使用して、テキストを圧縮して表示する短いコードを記述します。または、言い換えると、最小のバイト数を使用してテキストを表示します。 テキストは次のとおりです。 Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?

8
取り消し線44はまだ規則的44です;(
前書き 月24日に、2015 @isaacgは golfed 彼Pythの答えを 44〜42バイトから。取り消し線 44(44)は通常の44とよく似ているため、@ Optimizerは次のコメントを作成しました。 ストライクアウト44はまだ通常の44です:( その後、2015年10月21日に@ Doorknob♦ はRubyの回答を44バイトから40バイト(以降38バイト)までゴルフし、@ Optimizerの元のコメントへのリンクとともに、次の部分を回答に追加しました。 取り消し線44はまだ規則的44です;( これが回答連鎖ミームの始まりでした。そこでは、すべての取り消し線が44(場合によっては4または444)が前のリンクにリンクされていました。 そして、4月8日、2017(これはそうする最初の答えだった場合、私はわからないんだけど、それは私が見つけることができる最古の一つだ)に、@JonathanAllanは golfed 彼のPythonの答えを彼はしかし、使用39に44から<s> 44 </s>44だろうので、こんな風に見える: 44 、そして彼の答えに以下を追加しました: 取り消し線  44  もはや44ではありません:) そして、それは基本的にミームの(の始まりの)終わりでした。 チャレンジ この課題に関して:正の整数のリストと日付が与えられた場合、最後の数字を除くすべての数字が間に置かれるコンマとスペースで区切られたリストを出力します <s>...</s>タグのます。 さらに、バツ印の番号のいずれかがシーケンス[4, 44, 444, 4444, ...](oeis.orgのA00278)にある場合: 日付が2017年4月8日より前の場合:正確な(すべて小文字でセミコロンの絵文字を含む)テキストcrossed out N is still regular N ;((N 2行目にシーケンスから消された数字。 日付が2017年4月8日以降の場合:Nシーケンスの取り消し線番号には、先頭と末尾を 追加する必要があります。追加の出力行は必要ありません。 例: 入力:list = [50, 48, 44, 41]、date = …

20
単純な溶岩ランプ
前書き: 私は誰もが溶岩ランプが何であるかを知っていると思いますが、彼らが知らない場合のために: (画像ソース) それらは基本的に半透明の液体にワックスを含むガラス管です。ランプをオンにすると、下部が加熱され、密度が変化し、ワックスが上部に浮き上がります。それが冷えると、再び落ちて、上記の効果を引き起こします。 通常、ランプのベースが固体ワックスを液体ワックスに変えるのに十分な温度に上昇するのに約45〜60分かかります(ランプが室温の場所にある場合)。 Wikipediaの詳細については、上記のテキストのソースとしても使用されています。 チャレンジ: nLava Lampをオンにしてから経過した分数を示す正の整数を指定すると、5レベルの整数に基づいてLava Lampのランダムな状態を出力します。 この挑戦のために、溶岩ランプには合計で1000単位のワックスが含まれており、ワックスが存在できる5つのレベルがあると言います。 1)nが45未満の場合、Lavaランプはまだ加熱されているため、出力は1000下部に4つの空の行があります。 1000 2)nが範囲内に[45, 60)ある場合、Lava Lampはワックスが動き回るのに十分な温度に上昇していますが、まだそれほど高くはありません。ワックスは、第3レベルまで到達できます。 3)の場合がnある60以上、ワックスは、5つのレベルのいずれかであることができます。 したがってn、入力として正の整数を指定すると、上記の3つのルールを考慮してランダムな状態を出力します。 出力の例を次に示します。 任意のための可能な出力nです>= 45。 523 106 371 913 87 任意のための可能な出力nです>= 60。 73 113 312 5 497 284 55 637 24 nそのための一定の出力は<= 44(およびで可能な出力n)です: 1000 チャレンジルール: 上のレベルが空でない場合でも、空の行がある場合があります。 ただ、0任意の行に許可されていません。代わりに空にする必要があります。 出力は多少柔軟です。上記のように改行で区切られた結果の代わりに、文字列/オブジェクトのリスト/配列を出力できます。私が文字列/オブジェクトと言う理由は、上記のルールによるものです。空行があるべきである""、null、[]、等、しかしすることができない0、または負の整数(またそれができるfalse(IE)["", "", 913, "", 87]のためにn >= 45)。出力を逆にすることもできます(つまり、の代わり1000\n\n\n\nに、\n\n\n\n1000またはの[87, …

24
トンネリングアレイを確認する
整数の配列があり、その負でない値が同じ配列内の他の位置へのポインターであり、それらの値がトンネルを表すことだけを想像してください。したがって、位置Aの値が正で位置Bを指している場合、トンネルの両端を表すには、Bも正で、位置Aを指している必要があります。そう: チャレンジ 整数の配列が与えられた場合、その配列がトンネリング配列であるという制限に準拠しているかどうかを確認し、trueyとfalseyに対して2つの異なる一貫した値を返します。 配列内の値は、トンネル以外の位置ではゼロ未満、トンネル位置ではゼロ以上になります。配列が1インデックスの場合、ゼロ値は非トンネル位置を表します。トンネル以外の値をチェックする必要はありません。 セルの正の値が自分自身を指している場合、それは偽です。AがBを指し、BがCを指し、CがAを指す場合、それは誤りです。正の値が配列の制限を超えている場合、それは偽です。 例 次の例は、0から始まります: [-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 points to position 6 and vice versa) [1, 0] Truthy (position 0 points to position 1 and vice versa) [0, 1] Falsey (positions 0 and 1 point to themselves) [4, 2, …

14
平方ランダム対称
チャレンジ 正方ランダム対称行列を返すまたは出力するプログラムまたは関数を作成します。 入力 N:行列のサイズ、すなわち6 x 6 出力 マトリックス。印刷して、文字列として(改行を使用して)返すか、リスト/配列のリスト/配列として返すことができます。 ルール 少なくともN異なる文字を使用する必要があります。ここNで、は正方行列のサイズです(入力)。文字[a、z] [A、Z]と数字[0、9](そして同時に1桁のみ)のみを使用しているので、あなたはそれN < 27とを仮定することができます。と数字。最後になりましたが、すべての文字/数字はゼロでない確率で発生する必要があります(均一な分布は必要ではありません)。ただし、結果には少なくとも異なる文字/数字が必要です。N > 2N <= 2N マトリックスは、水平および垂直の両方に対称である必要があります。 正確に2行2列には、厳密に1桁の1桁の数字を含める必要があります(その位置もランダムにする必要があります)。残りの行/列には文字のみが含まれます。文字を[a、z]および[A、Z]として、そしてもちろん1桁の数字を[0、9]として考えてください。 簡単にするために、大文字と小文字が区別されない限り、大文字と小文字は関係ないと想定できますa=A, b=B, etc。 可能なすべての出力は、ゼロ以外の確率で発生する必要があります。ランダム分布は均一である必要はありません。 例 入力:8 出力: c r p s s p r c r k o z z o k r u t 2 a a 2 t u …
18 code-golf  matrix 

2
これはWeyr行列ですか?
基本的なワイア正準型と呼ばれるn × n行列Wのタイプがあります。このようなマトリックスはブロックで記述され、次の参照図を使用して次のプロパティを持ちます。 主対角ブロックW IIがあり、N I ×N iが λ形式の行列I N I I N iはあるN I ×N I恒等行列。 nは1 ≥N 2 ≥...≥N R 最初の対角ブロックW K-1、K用2..r∈Kであり、N K-1 ×N Kである行列の行還元階段状のフル列ランクは、以上簡単に言えば、I N k個の上に座っn k-1 -n k行のゼロ。 他のすべてのブロックは0行列です。 例えば: 主な対角ブロック(黄色)は、n iが4、2、2、および1であるようなものです。 最初の超対角ブロックは緑色です。 グレーゾーンは、他のすべてのブロックで構成され、すべて0です。 この課題では、λ= 1と仮定します。 入力 任意の便利な形式の0と1の正方行列。 出力 入力行列がWeyrであるかどうかについて、2つの異なる値のいずれかを出力します。 ルール これはcode-golfです。各言語の最少バイト数が優先されます。標準のルール/抜け穴が適用されます。 テストケース 行の配列として提示されます。 ワイアー: [[1]] …

30
max()は十分ではありません
イントロ 友人が今日、この質問をわずかに異なる方法で提起しました-「1つの[Python]コマンドで整数の最大値を決定し、それらが等しくないことはできますか?」 「単一のコマンド」の合理的な定義内でこれを行う方法を見つけることができませんでしたが、私はそれがゴルフにとって楽しい問題であると思いました。 チャレンジ " 整数のリストの中で最大のものを返しますif-and-only-ifがすべて等しくない場合。 " すなわち: 整数のコンマ区切りリストのみを含む文字列が与えられた場合: それらがすべて等しい場合、何も返さない/出力する そうでない場合は、最大値を返す/出力する ルール 入力は整数の唯一のカンマ区切りリストを含む文字列でなければなりません 出力は、入力であるとして表さ、どちらか何も(いかなる種類の出力)、または他の入力から最大の要素である必要があります エントリは、完全なプログラムでも機能でもかまいませんが、テストする方法を提供します。 仮定 入力リスト要素は1桁以上で、(2 32 − 1)以下であると仮定します 入力リストに含まれる要素が100万を超えないと仮定する 入力に負の値が含まれないと仮定する 入力が空になることはないと仮定する 疑念を避けるために、「より具体的に」の直後に与えられる課題の説明は、その上の課題の記述に優先します(「最大値を返す...」)。 例 (1)すべて等しい: Input: 1,1 Output: (2)異なる: Input: 1,2 Output: 2 (3)ゼロ!: Input: 0,0,0,0,0,0,0,1,0,0 Output: 1 (4)ランダム: Input: 7,3,8,4,8,3,9,4,6,1,3,7,5 Output: 9 (5)大きい番号、大きいリスト: Input: 627,3894,863,5195,7789,5269,8887,3262,1448,3192 Output: 8887 追加の例: …
18 code-golf 

12
でこぼこに乗る
あなたの仕事は、少なくとも長さ2の正の整数のリストを受け取り、それらが「ジグザグ」であるかどうかを判別するコンピュータープログラムまたは関数を作成することです。シーケンスがジグザグになっているのは、数字が交互に前後の数字よりも大きい場合と小さい場合だけです。たとえば、とはジグザグですが、とはありません。[ 4 、2 、3 、0 、1 ] [ 1 、2 、0 、0 、3 、1 ] [ 1 、2 、3 、1 ][ 1 、2 、0 、3 、2 ][1、2、0、3、2][1,2,0,3,2][ 4 、2 、3 、0 、1 ][4、2、3、0、1][4,2,3,0,1][1,2,0,0,3,1][1、2、0、0、3、1][1,2,0,0,3,1][1,2,3,1][1、2、3、1][1,2,3,1] 決定のために、可能性ごとに2つの異なる一貫した値(ジグザグではなくジグザグ)のいずれかを出力する必要があります。 プログラムまたは関数のコードポイントもジグザグそのものでなければなりません。これは、一連のコードポイントを取得するとき、ジグザグになるはずであることを意味します。 これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。

20
崩壊する行列
関連:レッツ・デザイン桁モザイク、印刷/出力L-phabet。サンドボックスの投稿はこちら C = columns and rows, S = starting point次のように2つの入力が行列を出力するとします。 Input 4, 3 1 2 3 0 2 2 3 0 3 3 3 0 0 0 0 0 説明 与えられた C = 4, S = 3 1)でC x C満たされた行列を作成する0 4 columns 4 _____|____ | | r --0 0 0 …
18 code-golf  matrix 

10
拡張ウェクスラー形式を解読する
この課題は、user48538によるサンドボックス投稿に基づいています。彼はもうこのサイトで活動していないので、私はこの挑戦を引き継ぎました。 apgsearch、ライフゲームのための分散スープ検索プログラムおよび検索結果のデータベース、Catagolueの使用apgcodesパターンを分類して示すために。apgcode自体は、1992年にAllan Wechslerによって開発されたパターン表記の拡張である拡張Wechsler形式を使用します。 以下の例と画像はLifeWikiから取られています。 正規表現に一致するセット内のn文字の文字列は[0-9a-v]、n列幅の5行のストリップを示します。各文字はビット列に対応する垂直列内の5つのセルを表し、[ 00000、10000、01000... 00010、10010、01010、11010... 11111]。 たとえば27deee6、重量級の宇宙船に対応します: ⎡⎣⎢⎢⎢⎢⎢⎢01000111001011001110011100111001100⎤⎦⎥⎥⎥⎥⎥⎥[01100001101111011111100111100000000] \begin{bmatrix} {\color{Gray}0} & 1 & 1 & {\color{Gray}0} & {\color{Gray}0} & {\color{Gray}0} & {\color{Gray}0} \\ 1 & 1 & {\color{Gray}0} & 1 & 1 & 1 & 1 \\ {\color{Gray}0} & 1 & 1 & 1 & 1 & 1 …

19
多項式表現文字列を評価する
多項式、値を取りx、演算結果を返す関数を作成します。 例:given 4x^2+2x-5およびx=3output 37。これはの結果です4(3)^2+2(3)-5 すべての多項式が有効であると仮定します 多項式形式は常に次の場合coefficient(variable)^exponent => 4x^2を除きます。 指数がある場合は1、それは次のようになりますcoefficient(variable) => 4x 係数がある場合には1、それは次のようになります(variable)^exponent => x^2 多項式は1つの変数のみです 外部ライブラリの使用は禁止されています 係数と変数の入力には、正の数と負の数を指定できます。 テストケース ("3x^3-5x^2+2x-10", 5) => 250 ("10x^4-5x^3-10x^2+3x+50", 3) => 644 ("10x+20", 10) => 120 ("-20x^2+20x-50", -8) => -1490 ("9", 5) => 9 ("8x^2+5", 0) => 5 更新 多項式形式は常に次の場合coefficient(variable)^exponent => 4x^2を除きます。 指数がある場合は1、それは次のようになりますcoefficient(variable) => 4x 係数がある場合には1、それは次のようになります(variable)^exponent …

29
指定された範囲内でラッキーチケットを数える
ロシアでは、伝統のようなものがあります。ラッキーチケットを探すのが好きです。 通常のチケットは次のようになります。 ご覧のとおり、チケットには6桁の番号があります。 最初の3桁の合計が最後の3桁の合計に等しい場合、6桁の数字はラッキーと見なされます。 写真の数字は幸運ではありません: 038937 038 937 0 + 3 + 8 = 11 9 + 3 + 7 = 19 11 != 19 チャレンジ 範囲の制限(両端を含む)を指定すると、その範囲に含まれるラッキーチケット番号の数を返します。 パラメーター 入力:2つの整数:範囲内の最初と最後の整数 入力は0から999999の間です 出力:1整数:範囲内のラッキーナンバーの数 入力を受け取り、受け入れ可能な形式で出力を返すことができます 100000未満の数字の先行ゼロを想定します。 例 0, 1 => 1 100000, 200000 => 5280 123456, 654321 => 31607 0, 999999 => 55252 …
18 code-golf  math  number 

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