タグ付けされた質問 「subsequence」

より大きなシーケンス内のシーケンスに関する課題

8
チャチャスライドのインデックス作成
前書き: もともとオランダ語の歌が頭にありましたが、歌詞は次のとおりです:「Doe 'n stapje naar voren、en' n stapje terug」(これは「少し前へ、少し後ろへ」と訳されています)完全な歌詞を検索しましたが、歌詞が前後に移動するだけで、決して横にならないことに気付きました。 だから、代わりにこの挑戦のためにMr C The Slide Man別名DJ Casper-Cha-Cha Slideの歌詞を使うようになりました。 他のすべてを無視し、言及された量を含む「左」、「右」、「戻る」、および「ホップ」(「ホップ」を前方としてカウントしました)の単語だけを見ると、完全な歌には次のリストがあります(私はここで略語LRBHを使用しています): LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH ここでは、スペースを節約するために隠されたJavaScriptコードスニペットで完全な曲の歌詞が表示されます。ここでは、動きと量がブロックされた括弧で囲まれています。 コードスニペットを表示 To the [left], take it [back] now y'all One [hop] this time, [right] foot let's stomp [Left] foot let's stomp, cha cha real smooth Turn it out, to the [left] …

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

3
スライディングキャピタル
背景 英語のアルファベットが大文字で行に書かれていることを想像してください- ABCDEFGHIJKLMNOPQRSTUVWXYZ。特別な可変幅のレンズがあり、列の上に配置すると、アルファベットの特定の「窓」が表示され、レンズの外側の文字は視界から隠されているとします。さらに、このレンズには反り特性があるため、レンズ内の最初の文字とそれ以降の2文字ごとに小文字が使用されますが、残りの文字は大文字で表示されます。 たとえば、私たちは、アルファベットの真ん中のどこかに置い長さ5のレンズを持っている可能性があり、私たちは見るでしょう. jKlMn(空白のショーを確保するために、ここで期間を導く) -ノートKとMまだ計上される、一方j、l、およびnすべての低いです-ケース入り。このレンズをアルファベットに沿って左から右にスライドさせると、異なる文字が表示され、異なる文字が大文字になります。ここでのタスクは、レンズがアルファベットに沿ってスライドするときに結果の文字を出力することです。 チャレンジ 入力整数を取り、0 < n < 27上記のレンズがアルファベットを横切ってスライドするときに表示される文字列を出力または返すプログラムまたは関数を作成します。 nより大きい値の場合1、レンズはアルファベットの左側から「ぶら下がる」ことから始まるためA、レンズの右端のスロットにのみ表示されます。したがって、出力の最初の行Aは、レンズの長さに応じて、大文字または小文字の1つになります。 同様に、レンズZの左端のスロットにある場合、レンズのスライドが終了します(つまり、出力の最後の行は常に25スペースに小文字が続くことを意味しますz)。 例 入力: 1 出力: a b c d e f g h i j k l m n o p q r s t u v w x y z 入力: 4 出力: A aB AbC …

2
最速の最長共通サブシーケンスファインダー
あなたの仕事は解決することで最長共通部分列問題をするためにn個の長さが1000の文字列を。 二つ以上の文字列のLCSの問題に対する有効な解S 1、... S nは任意の文字列であるTの文字というように最大長のTが全てに現れるS Iと同じ順序で、T。 TはS iの部分文字列である必要はないことに注意してください。 この問題は、最短のコードですでに解決しています。今回は、サイズは関係ありません。 例 文字列axbyczとにxaybzcは、長さ3の8つの共通サブシーケンスがあり ます。 abc abz ayc ayz xbc xbz xyc xyz これらはいずれも、LCS問題の有効な解決策です。 詳細 上記で説明したように、次の規則に従って、LCSの問題を解決する完全なプログラムを作成します。 入力は、コードポイントが0x30〜0x3FのASCII文字で構成される、長さ1000の2つ以上の文字列で構成されます。 STDINから入力を読み取る必要があります。 入力形式には2つの選択肢があります。 各文字列(最後を含む)の後に改行が続きます。 文字列は、セパレータおよび末尾の改行なしで連結されます。 文字列の数は、コマンドラインパラメータとしてプログラムに渡されます。 出力、つまりLCSに対する有効なソリューションのいずれかをSTDOUTに書き込み、その後に1つの改行を書き込む必要があります。 選択する言語には、オペレーティングシステム(Fedora 21)用の無料の(ビールのように)コンパイラ/インタープリターが必要です。 コンパイラフラグまたは特定のインタープリターが必要な場合は、投稿でそのことをお知らせください。 得点 有効なソリューションを印刷するのに120秒以上かかるまで、2、3などの文字列でコードを実行します。これは、nの各値に対して120秒があることを意味します。 コードが時間内に終了した文字列の最大量はスコアです。 スコアがnの場合、最短時間でn個の文字列の問題を解決した提出物が勝者として宣言されます。 すべての提出は私のマシンでタイミングが取られます(Intel Core i7-3770、16 GiB RAM、スワップなし)。 (n-1)番目のテストのn個の文字列は、次のように定義された呼び出し(および要求に応じて改行を削除)によって生成されます。rand nrand rand() { head -c$[500*$1] /dev/zero | …

5
最短最長共通サブシーケンスコード
SLCSC問題を解決するためのタスク。これは、最長共通部分列問題を解決するための最短のコードを見つけることです。 二つ以上の文字列のLCSの問題に対する有効な解S 1、... S nは任意の文字列であるTの文字というように最大長のTが全てに現れるS Iと同じ順序で、T。 TはS iの部分文字列である必要はないことに注意してください。 例 文字列axbyczとにxaybzcは、長さ3の8つの共通サブシーケンスがあり ます。 abc abz ayc ayz xbc xbz xyc xyz これらはいずれも、LCS問題の有効な解決策です。 詳細 上記で説明したように、次の規則に従って、LCS問題を解決するプログラムまたは関数を作成します。 入力は、小文字のみを含む2つ以上の文字列で構成されます。 これらの文字列は、文字列の配列または選択した区切り文字を持つ単一の文字列として読み取ることができます。 コードは、問題に対する可能な解決策のいずれか1つを出力する必要があります。オプションで、ラインフィードが続くか、引用符で囲まれます。 文字列が1000文字よりも短く、最大20個の文字列があると想定できます。 これらの制限内で、コードは理論的には期待どおりに動作するはずです(無制限の時間とメモリが与えられます)。 あなたのコードは、私のマシン(Intel Core i7-3770、16 GiB RAM)で1時間以内に次のセクションの結合テストケースを完了する必要があります。 考えられるすべてのサブシーケンスを単純に繰り返すアプローチは、時間制限に準拠しません。 など、このタスクを単純化する組み込みの使用LongestCommonSequenceは許可されていません。 標準のコードゴルフ規則が適用されます。 テストケース a ab 出力: a aaaaxbbbb bbbbxcccc ccccxaaaa 出力: x hxbecqibzpyqhosszypghkdddykjfjcajnwfmtfhqcpavqrtoipocijrmqpgzoufkjkyurczxuhkcpehbhpsuieqgjcepuhbpronmlrcgvipvibhuyqndbjbrrzpqbdegmqgjliclcgahxoouqxqpujsyfwbdthteidvigudsuoznykkzskspjufgkhaxorbrdvgodlb qnnprxqpnafnhekcxljyysobbpyhynvolgtrntqtjpxpchqwgtkpxxvmwwcohxplsailheuzhkbtayvmxnttycdkbdvryjkfhshulptkuarqwuidrnjsydftsyhuueebnrjvkfvhqmyrclehcwethsqzcyfvyohzskvgttggndmdvdgollryqoswviqurrqhiqrqtyrl 出力:hxbbpyhogntqppcqgkxchpsieuhbncvpuqndbjqmclchqyfttdvgoysuhrrlまたは同じ長さの他の一般的なサブシーケンス riikscwpvsbxrvkpymvbbpmwclizxlhihiubycxmxwviuajdzoonjpkgiuiulbjdpkztsqznhbjhymwzkutmkkkhirryabricvhb jnrzutfnbqhbaueicsvltalvqoorafnadevojjcsnlftoskhntashydksoheydbeuwlswdzivxnvcrxbgxmquvdnfairsppodznm …

3
ラップアラウンドサブシーケンス
前書き この課題では、一般的な文字列のサブシーケンスを見つけることがタスクです。サブシーケンスは必ずしも連続しているわけではなく、文字列を「ラップアラウンド」して、その終わりを超えて最初からやり直すこともできます。ただし、ラップの数を最小限に抑える必要があります。 より正式には、let uとvbe任意の2つの文字列、およびk ≥ 0整数です。私たちuは、のようなkラッピングのサブシーケンスでありv、のような別個のインデックスが存在し、最大でインデックスが満たされると言います。これは、左から右に移動し、途中でキャラクターの一部を選択し、ほとんどの時間をラップすることで(同等に、最大でスイープすることで)内部で見つけることができることを意味します。ラップアラウンドの後でも、複数の文字を選択することはできません。また、-wrappingサブシーケンスは、私たちがよく知っている通常のサブシーケンスであることに注意してください。i1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0 タスク あなたの入力は二つの非空の英数字文字列であるuとv、そしてあなたの出力は、整数最小となるkようuであるkの-wrappingサブシーケンスv。そのようなものkが存在しない場合、出力はになります-1。 例 入力u := xyzyxzzxyxとを考慮してくださいv := yxzzazzyxxxyz。uin の文字をv貪欲な方法で探し始めたら、約3回ラップします。 yxzzazzyxxxyz >─x─────y────z┐ ┌─────────────┘ └y───────x────┐ ┌─────────────┘ └──zz─────x─y─┐ ┌─────────────┘ └──────────x──> したがって、正しい出力は最大で3です。一番左の文字xが1回選択され、2回目のスイープでは再利用できないため、どのように無視されるかに注意してください。ただし、ラップアラウンドが2つしかない短い方法があります。 yxzzazzyxxxyz >──────────xyz┐ ┌─────────────┘ └yxzz────x────┐ ┌─────────────┘ └───────y─x───> 1回のラップアラウンド(つまり、2回のスイープ)では不十分であることが判明したため、正しい出力は2です。 ルールとボーナス 関数または完全なプログラムのいずれかを記述でき、必要に応じて入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 合計10秒未満ですべてのテストケースを計算すると、-10%のボーナスがあります。私のマシンで不明瞭なケースをテストします。Pythonでのリファレンス実装には約0.6秒かかります。1.86 GHzデュアルコアCPUを搭載した7歳のラップトップを使用していますが、これを考慮する必要があります。 テストケース "me" "moe" -> 0 …

1
Davenport-Schinzelシーケンスを生成する
バックグラウンド ダヴェンポート-Schinzel配列は、 2つの正の整数パラメータを有しているdとn。によって、指定されDS(d,n)たパラメータのすべてのDavenport-Schinzelシーケンスのセットを示します。 自然数の全てのシーケンスを考えてみましょう1にn満足している、包括的、: シーケンス内の連続する2つの番号は同一ではありません。 より大きい長さのサブシーケンス(連続している必要はありません)はありませんd。 Lこのようなシーケンスの最大長を指定してみましょう(dとn)。次に、DS(d,n)長さを持つそのようなすべてのシーケンスのセットですL。 いくつかの例が役立つかもしれません。ましょうd = 4、n = 3。これらの制約のある最長のシーケンスには、がありL = 8ます。したがって、以下はのメンバーですDS(4,3): [1, 2, 1, 3, 1, 3, 2, 3] 連続する同一の番号はなく、lengthの交互のサブシーケンスがあります4が、より長いサブシーケンスはありません。 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 1 3 1 …

10
サブシーケンスの最大合計を見つける
整数のシーケンスが与えられた場合、シーケンスのサブシーケンス(連続した位置の整数)の最大合計を見つけます。サブシーケンスは空にすることができます(この場合、合計は0です)。 入力は標準入力から読み込まれ、1行に1つの整数が入ります。最大の合計を標準出力に書き込む必要があります。 私はあなたのために小さなジェネレータを書きました: #include <stdio.h> #include <assert.h> /* From http://en.wikipedia.org/wiki/Random_number_generation */ unsigned m_w; unsigned m_z; unsigned get_random() { m_z = 36969 * (m_z & 65535) + (m_z >> 16); m_w = 18000 * (m_w & 65535) + (m_w >> 16); return (m_z << 16) + m_w; /* 32-bit result */ …

10
グリッドに別のグリッドが含まれているかどうかを判別する
チャレンジ Create関数は、2つの文字の2次元配列(またはプログラミング言語にデータ型として文字がない場合は文字列)を入力として受け取ります:aとb。言語がこれらの入力をサポートしていない場合は、他の標準の1バイト変数を使用できます。 あなたの仕事は、bにaが含まれているかどうかを判別することです。その場合は、trueを返します。それ以外の場合は、falseを返します。 サンプルテストケース a: 123 456 789 b: 123 456 789 trueを返す必要があります。 a: code golf b: thisis code!! golf!! ohyeah trueを返す必要があります。 a: abcd efgh ijkl b: abcdef ghijkl mnopqr falseを返す必要があります。 a: abc def b: 1abc2 3def4 5ghi6 trueを返す必要があります a: ab cd b: #ab## ##cd# falseを返す必要があります 最小バイトが勝ちます。

7
ヤコビ行列を作成する
未知数のベクトルを取り、いくつかの一般的な微分可能関数を適用します。ヤコビアンは、次いで行列によって与えられるように。 たとえば、と仮定m=3しn=2ます。次に(0ベースのインデックスを使用) のヤコビアンfは この課題の目標は、このヤコビ行列を出力することです。 入力 プログラム/関数は、2つの正の整数mとを入力として受け取る必要nがfありuます。これらはそれぞれとのコンポーネントの数を表します。入力は、任意のソース(stdio、関数パラメーターなど)から取得できます。あなたはこれらが受け取られる順序を指示することができ、これはあなたの答えへのどんな入力でも一貫していなければなりません(あなたの答えで指定してください)。 出力 ヤコビ行列を表すもの。この表現は、ヤコビ行列のすべての要素を明示的に記述する必要がありますが、各項の正確な形式は、何が区別され、何が明確であり、すべてのエントリが論理的な順序で出力される限り、実装で定義されます。マトリックスを表すための受け入れ可能なフォームの例: 外部リストの各エントリがヤコビアンの行に対応し、内部リストの各エントリがヤコビアンの列に対応するリストのリスト。 各行がヤコビアンの行であり、行の各区切り文字で区切られたエントリがヤコビアンの列に対応する文字列またはテキスト出力。 マトリックスのグラフィック/ビジュアル表現。例:MatrixFormコマンドを使用したときにMathematicaによって表示されるもの 他のいくつかの密行列オブジェクト。すべてのエントリは既にメモリに格納されており、クエリできます(つまり、ジェネレータオブジェクトを使用できません)。例としては、Mathematicaが内部的にMatrixオブジェクトをどのように表すかが挙げられます エントリ形式の例: 形式の文字列。d f_i/d u_jここでi、およびjは整数です。例:d f_1/d u_2。dとf_1またx_2はの間のこれらのスペースはオプションであることに注意してください。また、アンダースコアもオプションです。 d f_i(u_1,...,u_n)/d u_jまたはの形式の文字列d f_i(u)/d u_j。つまり、関数コンポーネントの入力パラメーターf_iはオプションであり、明示的に指定するか、コンパクトな形式で残すことができます。 フォーマットされたグラフィック出力。例:式を評価したときにMathematicaが出力するものD[f_1[u_,u_2,...,u_n],u_1] 開始インデックスとその目的uを選択できますf(回答で指定してください)。出力は、必要なシンク(stdio、戻り値、出力パラメーターなど)への出力です。 テストケース 次のテストケースでは、この規則を使用していm,nます。インデックスは0ベースで表示されます。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

8
完全な正方形を構成するシーケンスからのコレクション
無限のシーケンスであるOEIS A033581のシーケンスが与えられた場合、n番目の項(0インデックス)は、閉形式の式6×n 2で与えられます。 あなたの仕事は、サブセットの合計が完全な正方形になるように、シーケンスの最初のN個の数値のセットのすべてのサブセットを出力するコードを記述することです。 ルール 整数Nは入力として与えられます。 合計ですでに使用されている数を再利用することはできません。(つまり、各番号は各サブセットに最大1回出現できます) 使用される数値は、連続していない場合があります。 最小のサイズのコードが優先されます。 例 指定されたシーケンスは{0,6,24,54,96、...、15000}です 必要なサブセットの1つは{6,24,294}です。 6+24+294 = 324 = 18^2 あなたは与えられた範囲内のすべての可能な長さのそのようなすべてのセットを見つける必要があります。

6
Codegolf Rainbow:反射による色の並べ替え
前書き: 2つの虹に関連する課題を投稿した後:Codegolf Rainbow:Fun with Integer-Arrays 1とCodegolf Rainbow:Draw in Black-and-White 2、次のコメントは@ChrisMによってASCIIで作成されました(Draw in Black-and-White)挑戦: 多分あなたはこれを知っていて、それは設計によるものです(虹は菱形でもアスキーでもないことを知っています、そしてより高次の位置はより複雑になります)、しかし2番目の虹では色が反転していませんか? そして、彼は確かに正しい。二重の虹が見えるとき、2番目の虹は実際には最初の虹を反映しているため、色が逆になります。3つの虹は実際の二重の虹であり、3番目の虹は他の2つの虹の1つを反映しています。そして、4つの場合、2つの虹とそれらの2つの反射があります。 それでは、その事実を使用して、3番目の関連する課題を作成しましょう。 チャレンジ: 入力:正の整数でnあり>=2、かつサイズの整数のリスト>= n+1。 出力:次のように順序付けられた同じリスト: 最初に、入力リストをサイズのサブリストに分割しますn(末尾のサブリストは範囲内の任意のサイズにすることができます[1,n])。 次に、サブリストのm数に基づいて次のことを行います。 m - m//2サブリストの最初の量を最低から最高にソートします(//整数除算はです)。(つまり、6つのサブリストを使用すると、最初の3つは最低から最高にソートされます。5つのサブリストを使用すると、最初の3つは最低から最高にソートされます。) m//2サブリストの最後の量を最高から最低まで並べ替えます(//整数除算はです)。(つまり、6つのサブリストがある場合、最後の3つは最も高いものから最も低いものへと並べ替えられます。5つのサブリストがある場合、最後の2つは最も高いものから最も低いものへと並べ替えられます。) すべてのサブリストをマージして、再び単一のリストを形成します 例: 入力:n=7および[3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10] ステップ1:[[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]] ステップ2:[[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]] ステップ3 /出力:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5] 入力:n=4および[7,4,-8,9,3,19,0,-23,-13,13] ステップ1:[[7,4,-8,9],[3,19,0,-23],[-13,13]] ステップ2:[[-8,4,7,9],[-23,0,3,19],[13,-13]] ステップ3 /出力:[-8,4,7,9,-23,0,3,19,13,-13] チャレンジルール: 整数入力nは1より大きいことが保証されています。 integer-listのサイズは、より大きいことが保証されていますn。 末尾のサブリストは、より小さくすることができますn(例とテストケースで確認できます)。 I / Oフォーマットは、あらゆる合理的なフォーマットに柔軟に対応できます。整数または小数のリスト/配列、コンマ/スペース/改行で区切られた文字列、整数のストリームなどにすることができます(出力は、ステップ2のようなリストの2Dリストではない場合があります。ステップ3でリストをフラットに戻しますこのチャレンジには必須です。) 一般的なルール: これはcode-golfなので、バイト単位の最短の回答が優先されます。 コードゴルフ言語では、コードゴルフ言語以外の言語で回答を投稿しないようにしないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 回答には標準規則が適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターと戻り値の型の完全なプログラムで使用できます。あなたの電話。 …

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 

13
比較チェーンを拡張
ほとんどの言語と異なり、Python a<b<cは数学で行われるように評価し、ブール値a<bをと比較するのではなく、実際には3つの数値を比較しcます。これをC(および他の多くの)で記述する正しい方法は、a<b && b<c。 この課題の課題は、このような任意の長さの比較チェーンをPython /直感的な表現から他の言語でどのように記述するかまで拡張することです。 仕様書 プログラムは演算子を処理する必要があります。 ==, !=, <, >, <=, >=。 入力には、整数のみを使用した比較チェーンがあります。 途中の比較の真実性について心配する必要はありません。これは、純粋に構文解析/構文上の課題です。 入力には、スペースで分割することで解析を簡単にする回答を防ぐための空白はありません。 ただし、出力には、&&' のみ、または比較演算子と&&'の両方のいずれか、または両方を囲む単一のスペースがある場合がありますが、一貫性があります。 テストケース Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  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.