タグ付けされた質問 「code-challenge」

コードチャレンジは、他のスコアリングタグ(コードゴルフなど)ではカバーされない客観的な勝ち基準でプログラミングパズルを解くクリエイティブな方法の競争です。

1
壊れた暗号を破る
乗算およびモジュラス法を使用して、2つの数値をカオス的に循環させる単純なランダムジェネレーターを設計しました。そのためにうまく機能します。 しかし、暗号ジェネレータとして使用する場合、攻撃者が一連の乱数からシードをリバースエンジニアリングできるため、既知のプレーンテキスト攻撃に対して脆弱です。 暗号が壊れていることを証明するために、可能な限り少ない電力、CPU時間などを使用して、[0; 255]の範囲で連続して7つのゼロを生成するシード値の正当なペアを見つけます。 JavaScriptで作成されたランダムジェネレーターを次に示します。 function seed(state1,state2){ //Constants var mod1=4294967087 var mul1=65539 var mod2=4294965887 var mul2=65537 function random(limit){ //Cycle each state variable 1 step state1=(state1*mul1)%mod1 state2=(state2*mul2)%mod2 //Return a random variable return (state1+state2)%limit } //Return the random function return random } //Initiate the random generator using 2 integer values, //they must …

8
バイナリツリーエンコーディング
完全なバイナリツリーがあると仮定します(つまり、各内部ノードには正確に2つの空でない子孫があります)。各ノードにはゼロ以外の整数が含まれています。整数のリストへ/からツリーをエンコードおよびデコードするタスクが与えられます。 ツリーは内部的に次のように保存されます: struct node { int data; struct node *left, *right; }; そして、2つの機能を実装する必要があります。 int *encode(struct node *root); struct node *decode(int *array); エンコードとデコードの方法はユーザー次第です。 ポイント: 最小エンコード長 複雑さ(ノード数が理想的に線形) 独創 ソースコードの長さのポイントはなく、Cに制限されません。 ツリーの例: 5 / \ 3 2 / \ 2 1 / \ 9 9

9
BigNumベイクオフリブート
皆さんの中には、BigNum Bakeoffに精通している人もいるかもしれません。目標は、多少の制約と理論的条件、たとえばプログラムを実行できるコンピューターの下で、出力が最大になるCプログラムを作成することで多少要約できます。 同じ精神で、私はすべての言語に開かれた同様の課題を提起しています。条件は次のとおりです。 最大512バイト。 最終結果はSTDOUTに出力する必要があります。これがあなたのスコアです。複数の整数が出力される場合、それらは連結されます。 出力は整数でなければなりません。(注:Infinityは整数ではありません。) 10を超える組み込み定数はありませんが、数字/桁は問題ありません(たとえば、Avogadroの定数(組み込み定数として)は無効ですが、10000は無効です)。 実行するのに十分なリソースが提供されたら、プログラムを終了する必要があります。 実行するのに十分なリソースが提供される場合、印刷出力は確定的でなければなりません。 プログラムを実行するのに十分な整数またはbigintが提供されます。たとえば、プログラムで10 1,000,000より小さい数値に基本操作を適用する必要がある場合、これを実行しているコンピューターは少なくとも10 1,000,000までの数値を処理できると想定できます。(注:最大10 2,000,000までの数値を処理するコンピューターでプログラムを実行することもできます。そのため、コンピューターが処理できる最大整数を呼び出しても、確定的な結果は得られません。) 5秒未満でプログラムの実行を完了するのに十分な計算能力が提供されます。(プログラムがコンピューターで1時間実行されていて、すぐに終了しない場合でも心配する必要はありません。) 外部リソースはないので、組み込みでない限り、そのアッカーマン関数をインポートすることを考えないでください。 すべての魔法のアイテムは一時的に寛大な神から借りています。 限界が不明で非常に大きい スティーブンH、ピス f 3 +B³F+ω²(256 26) ここで、B³Fは、次の基本シーケンスを持つChurch-Kleene序数です。 B³F[n] = B³F(n), the Busy Beaver BrainF*** variant B³F[x] = x, ω ≤ x < B³F リーダーボード: 単に美しいアート、ルビー F ψ 0(X(Ω M + X(Ω M + 1 …

4
抽象構文木ゴルフ:FizzBu​​zz、Python
概要 可能な限り少ないトークンで、FizzBu​​zzをPythonで実装します。 チャレンジ 1から100までの10進数を出力するプログラムを作成します。しかし、3の倍数の場合は数字ではなく「フィズ」、5の倍数の場合は「バズ」が印刷されます。3と5の両方の倍数である数字の場合、「FizzBu​​zz」と印刷します。プログラムは、Pythonの何らかのバージョンで作成する必要があります。 詳細については、1、2、Fizz、4、Buzzを参照してください 得点 スコアは、Python 3のこのプログラムまたはPython 2のこのプログラムによって報告されたコードの抽象構文ツリーのノードの数に等しくなります。プログラムを実行するには、プログラムのコマンドライン引数としてコードのファイル名を指定します。例えば: python simple_counter.py fizzbuzz.py これらのプログラムは、Pythonのastモジュールに基づいています。何か問題がある場合はお知らせください。 実際のプログラムで長い文字列を実行したり、出力をハードコーディングしたりといった些細な解決策を防ぐために、いくつかの追加の制限があります。 コード内のトークンは15文字を超えることはできません。上記のプログラムは、この要件を確認します。実装を簡単にするために、上記のプログラムはコメントをトークンとしてカウントすることに注意してください。 コードの実行/評価は禁止されています。 何かが許可されているかどうかについて質問がある場合は、私に尋ねてください。 スコアリングヒューリスティック 通常、プログラムのスコアを計算するには、次のルールで十分です。 ブロック文は1ポイントです:if、for ... in ...、while、else、など スタンドアロン文は1ポイントです:printPythonの2にbreak、passなど、 変数は2ポイントです シングルトークンリテラルは1ポイントです:2131、"Hello, world!"、True 関数は3つのポイント(変数を使用するための2つ、余分な1つ)です:printPython 3 rangeなど オペレータは2ポイントです:+、*、%、and、not、など = 1ポイントです :拡張割り当ては2点であり+=、|=等 括弧、インデントなどは0ポイントです。 代入または式ではなく、式を含む行は+ 1ポイントです。 コードを持っていることは1ポイントです。 チャレンジ: 最も低いスコアが勝ちます。幸運を!

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

11
(完全に決定的な)擬似ランダムビットストリームを生成する
手を縛ってランダムに触発された: 目標 このチャレンジの目標は、純粋にランダムに見えるが実際には決定論的な方法で生成される1と0の文字列である擬似ランダムビットストリームを生成するプログラムを作成することです。プログラムは、1と0の文字列(オプションの空白を含む)を出力し、次の要件を満たしている必要があります。 時間とメモリが無制限の場合、プログラムは1と0の文字列を永久に出力し続ける必要があります プログラムは、合理的なマシンで、約1分で1000を超えるランダムビットを出力する必要があります。この要件が不可能な場合は、軽減します。 ビット列は繰り返すことができますが、繰り返しセクションの長さは1000ビットを超える必要があります。 ビット列は、可能な限り多くのランダム性テスト(以下で説明)に合格する必要があります。 プログラムは、外部ソースから入力を受け取ったり、組み込みのrand()のような関数を使用したりしてはなりません。 上記の要件により、プログラムは実行されるたびに同じ正確なビット文字列を出力する必要があります。 ランダム性テスト#1 擬似ランダムビットの文字列には、目視検査で明らかなパターンを含めないでください。 ランダム性テスト#2(コメントに基づいて変更される場合があります) ビット列には、1と0の等分布が含まれている必要があります。これをテストするために(および他のことも)、ビットストリームは、などの3ビット長のセグメントに分割され101|111|001ます。 これらのすべてのセグメントのうち、1/8には1が3つあり、0はありません。3/ 8には2つの1と1つの0があり、3/8には1と2つの0があり、1/8がありますそれらのうち、1がなく、3つの0が必要です。 ランダム性テスト#3 「実行」は、すべて同じ値を持つ連続した一連のビットとして定義されます。文字列に1001001110は、サイズ1(1..1.....0)の3 つの実行、サイズ2(.00.00....)の2 つの実行、およびサイズ3(......111.)の1つの実行があります。実行が重複しないことに注意してください。 1000個のランダムビットの文字列のうち、サイズ1の実行が約250回、サイズ2の実行が125回、サイズ3の実行が62回などである必要があり1000/(2**(R+1))ます。 ランダム性テスト#4 最初の840ビットは、それぞれ420ビットの2つの半分に分割されます。前半の各ビットは、後半の対応するビットと比較されます。2つのビットは、約50%の時間で一致する必要があります。 以下は、テスト2〜4を実行するPerlプログラムのソースコードです。現在のところ、ビットの文字列に空白が含まれていないことが必要です。 客観的勝利基準時間! 勝者は、6つの要件すべてとすべてのランダム性テストに合格し、ランダム性と区別できない程度に合格するプログラムです。複数のプログラムがこれを達成する場合、繰り返しに最も長い時間がかかるプログラムが勝ちます。複数のプログラムがこれを達成する場合、タイブレーカーとして機能するために、さらにランダム性テストを見つける必要があるかもしれません。

21
OEISポリグロット
これは、OEISに関連する回答連鎖の課題です。 ああ、これの正当化は、企業がOEISシーケンスを非常に悪く印刷するために1つのプログラムを必要とし、すべての言語を持っているからです。 回答連鎖形式は次のように機能します。 誰かが最初の回答を投稿し、そこからさらにすべてのソリューションが生まれます。この答えは、番号Nを指定すると、選択した任意のインデックス(シーケンス1と呼びます)のOEISシーケンスのN番目の番号を、選択した言語(言語1)で入力するプログラムです。 他の誰かがやって来て、独自のシーケンスを選択します(以前のシーケンスと以前のすべてのシーケンスとは異なる必要があります)。これらは、言語1の数Nが与えられた場合、シーケンス1のN番目の数を出力し、言語2の数が与えられた場合、N番目の数のシーケンスを出力する、別の言語(以前のすべての言語2。 このプロセスは無限に続きます。 シーケンスのn番目の用語は、最初の項目から機能し、最初の項目のn回後に来る項目です。ここでは、0と1のインデックスを使用して、コーダーを簡単にします! 言語やシーケンスの再利用はありません。 入力は整数または整数の文字列表現でなければならず、出力はシーケンスの正しい値でなければなりません。エラー処理(非整数入力)は必要ありません。 連続して2回投稿しないでください。 もう一度投稿する前に1時間以上待つ必要があります。 コンテストが無期限に続く場合もありますが、1週間も答えがなかった後、最後から2番目に投稿した人(チェーンを中断しなかった人)が勝ちます。あなたが最後で、もう1つの言語を追加できることを示すことができる場合、次の勝者まで挑戦を続けます。 入力または出力が言語の数値範囲外にないことを前提とすることができます(たとえば、IEEEの制限をシーケンスで超えないことを前提としています)。 1だけの言語。 以前に使用したことがない限り、任意のシーケンスを選択できます。 使用しているシーケンスの入力を範囲外にすることはできません。 2つの異なる言語バージョンは異なる言語です(Python 2とPython 3は独自の異なる言語と見なされます)。これは厳密ではありませんが、経験則として、TIOで同じ言語の別のバージョンから分離されている場合は異なります。 これは禁止されていませんが、OEISが提供する式を使用しないようにしてください。 結果のコードが65536文字を超える場合は、アクセスするためのリンク(Pastebinなど)を提供します。 これで終わりです。準備はいい?セットする?楽しい! はい、これは「次々にOEIS」ですが、マルチプレイヤーになります。かっこいいと思いました。

9
誰もが友達になれない
孤立文字とは、同じタイプの隣接する文字を持たない文字(改行以外)です。隣接する文字は左、右上、または下にありますが、対角線にはできません。たとえば、次のテキストHは分離されています。 Ybb YH% %%%% 他のすべての文字は、それぞれに隣接する同じタイプの他の文字が少なくとも1つあるため、分離されていません。 あなたの仕事は、文字列を入力として受け取り、分離された文字の数を決定するプログラムを書くことです。 得点 あなたの答えは、2つの指標によって採点されます。1つ目は、プログラム内の分離文字の数です。これを最小限に抑えることを目指してください。2番目は、プログラムのバイト数です。これも最小限に抑える必要があります。プログラムサイズは、最初の基準のタイブレーカーとして機能します。 追加の規則 印刷可能なASCII範囲とプログラムで使用する文字の入力をサポートする必要があります。 改行は、改行文字または改行に続く改行のいずれかと見なすことができます。 妥当な形式で入力できます。これには、行のリストが含まれます。 テストケース Ybb YH% %%%% 111 Aaaab uuu yyybbb 222 A 111 qqWWaaww 000

5
タマネギ、またはタマネギではない?
The Onion(警告:多くの記事はNSFWです)は、伝統的なニュースメディアをパロディ化する風刺的なニュース組織です。2014年、The OnionはClickBole(警告:NSFWも頻繁に)を立ち上げました。これは、BuzzFeedのような「clickbait」サイトをパロディ化する風刺的なニュースWebサイトです。Poeの法則のおかげで、人々が風刺を意図していることを知らずに、The OnionまたはClickHoleの記事の見出しを読んで、それらが真実であると信じることはかなり一般的です。その逆は、ばかげて聞こえる本当のニュース記事でも起こります。 この混乱は自然にゲームに役立ちます-ニュースの見出しを考えれば、それが風刺であるかどうかを推測してみてください。この課題は、まさにそれをプログラムで行うことです。 ニュースの見出し(印刷可能なASCII文字とスペースのみで構成される文字列)が与えられた1場合、見出しが風刺であるか0、そうでない場合に出力します。スコアは、正しい出力の数を見出しの総数で割ったものになります。 通常どおり、標準の抜け穴(特にテストケースの最適化)は許可されていません。これを実施するために、200の隠されたテストケース(The Onionから100、Not The Onionから100)のセットでプログラムを実行します。ソリューションが有効であるためには、パブリックテストケースのスコアより20パーセントポイント以下しかスコアを取得してはなりません。 テストケース このチャレンジのテストケースを考え出すために、The Onion subreddit(The OnionとClickHoleなどの子サイトからの記事が掲載されている)から25件の見出しを選び、Not The Onion subreddit(実際のニュース記事から)風刺のような音が掲載されています)。見出しに加えた唯一の変更は、「空想的な」引用を通常のASCII引用に置き換え、大文字を標準化することでした。他のすべては元の記事の見出しから変更されていません。各見出しは独自の行にあります。 オニオンの見出し Trump Warns Removing Confederate Statues Could Be Slippery Slope To Eliminating Racism Entirely 'No Way To Prevent This,' Says Only Nation Where This Regularly Happens My Doctor Told Me I Should …

2
文字列をブロック分割
インスピレーション。 l数字で構成されるリストを考えてみましょう。iリストのインデックスでブロック操作を定義し、l3つの連続した要素をiin lから最後まで移動する動作にします。 例: l, i (1-indexing) -> l (after applying block operation at index i) [1,2,3,4,5], 1 -> [4,5,1,2,3] [1,2,3,4,5,6,7], 3 -> [1,2,6,7,3,4,5] 0と1のみで構成されるリストを考えると、ブロック操作のみを使用して、0が先頭に、1が末尾になるようにリストを分割することが課題です。出力は、リストに適用される順序のインデックスでなければなりません。 これはリスト[1,0,1,0]では不可能であるため、リストの長さは少なくとも5であることが保証されています。 テストケース(1-indexing) (他の有効な出力があります) [1,1,1,0,0] -> [1] [0,1,0,1,0] -> [1,2,1,1] [0,0,0,1,1,1,0,0,0] -> [4] このスクリプトを使用して、さらにテストケースを生成します。(入力のみ。rplc ' ';','一部がために使用されるR E PL A C出力でカンマでEスペース) 受賞基準 コードチャレンジが主な勝利基準であり、最速のコードがタイブレーカーです。特に: テストケース(n_elem= 500、random_seed= {secret value})を使用した最短の出力長(ブロック操作の最小数)のソリューションが勝ちです。テストケース(n_elem= …

3
多項式->積分
有理係数を持つ1つの変数の多項式が与えられた場合1、変数、定積分のみを含む同等の式を出力します。例えば、 - X 2 ∫のように表すことができるX ∫ 1 1 1D T X D U。 E := 1 | var | ∫EEEdvar 合理的な入力/出力方法が許可されます。 例: スコアは、コード長∫にテストケースで使用されるシンボルの数を掛けたものになります。プログラムを採点できるはずです。最低スコアが勝ちます。 テストケース: 4/381*x^2+49/8*x^3-17/6 311/59*x^2-92/9*x^3-7/15*x 333/29*x^3+475/96*x^8 ゴルフだけはコードやアウトプットだけでゴルフをすることはできませんので、ゴルフは難しくなります。したがって、試してみるまで変化が私のスコアを助けるか傷つけるかはわかりません。 スコアが作成を制限しないようにしてください。他の部分がひどく残ったとしても、スコアの主に適切に最適化された部分で答えることを歓迎します。

30
"こんにちは世界!" (強盗のスレッド)
これが強盗のスレッドです。警官のスレッドはこちらです。 あなたの課題は、警官のスレッドからひびのない提出物を取得し、どの入力または入力に対してプログラムが印刷Hello, World!するか、改行を見つけることです。大文字、スペース、句読点は正確でなければなりません。 コードを解読したら、警官の提出についてコメントしてください。

4
あいさつ文を削除する
チャレンジ こんにちは、入力として文字列を指定すると、文字列の先頭で見つかったあいさつを削除します。 50バイト未満で最も正しい置換を実行するプログラムが勝ちます。 あいさつ文 あいさつ文は、次のいずれかの単語として定義されます。 こんにちは ねえ こんにちは 親愛な あいさつ ハイ みんな ひい ハウディ ひや 干し草 へや ほら ひひ あいさつ 最初の文字は大文字にすることができます。 あいさつ文の後には常にカンマおよび/または単一のスペースがありますが、これらも削除する必要があります。コンマとスペースは任意の順序(,<space>または<space>,)にすることができ、両方を削除する必要があります。 あいさつ文とそれに続く単語は、コンマや単一のスペースでのみ区切られます。 次に、挨拶の後に続く単語の最初の文字を大文字にする必要があります。置換が行われていなくても、出力の最初の単語を大文字にする必要があります。 大文字は小文字のアルファベット文字(abcdefghijklmnopqrstuvwxyz)にのみ適用されます。他のキャラクターはそのままにしておく必要があります。 あいさつは常に文字列の先頭になります。開始時ではない挨拶文を置き換えるべきではありません。 常に挨拶があるとは限りません。 コードは50バイト未満でなければなりません。 例 Input > Output Salutations, what's going on? > What's going on? hello i have quetions how does juice an avocado > …

4
グリッドを操作します!
ブリーフィング あなたはボットであり、北、南、東、西の4つの方向すべてに無限に広がる2Dグリッドにいます。番号が与えられたら、ターゲット番号に到達するようにボットを移動する必要があります。 グリッドの仕組みは次のとおりです。 北、南、東、西の4つの方向に移動できます。一度セルから移動すると、そのセルに再び戻ることはできません(そのため、効果的にマップから削除されます)。 行く「カウンター」、があります1234567890(それから行くよう1に2する...すべての方法9に、その後、0戻って、その後、1あなたが移動するたびに変更し、再び)は、。 また、0から始まる「値」もあります。 いずれかの方向に移動すると、移動する方向に応じて数学的な操作が発生します。 北:カウンター(value += counter)によって値が増加します。 東:カウンター(value -= counter)によって値が減少します。 南:値にカウンター(value *= counter)が掛けられます。 西:値はカウンター(value /= counter)で除算されます。 除算は整数除算なので、5/2 -> 2です。 で割ることはできません0。 例: ボットが北に3回移動した場合: 最初の「北」の動きは、カウンターを1にインクリメントし、値(現在は1)に追加します。 2番目の「北」の動きは、カウンターを2に増分し、値(現在は3)に追加します。 3番目の「北」の動きは、カウンターを3に増分し、値(現在は6)に追加します。 最終値は6です。 北に移動し、再び南に移動します。 最初の「北」の動きは、カウンターを1にインクリメントし、値(現在は1)に追加します。 2番目の「南」移動エラーは、ボットが移動しようとしているセルが(最初の移動から)削除されるためです。 ボットがエラーになったため、最終的な値はありません。 チャレンジ あなたの課題は、ボットの最終的な値がその数値に等しくなるように、ボットが入る適切な方向を番号が与えられたときにプログラムを書くことです。 したがって、数値がの場合6、それに対する有効なソリューションは次のようになります。 nnn (ボットは3回連続して北に移動します)。 テスト値は次のとおりです。 49445094, 71259604, 78284689, 163586986, 171769219, 211267178, 222235492, 249062828, 252588742, 263068669, 265657839, …

3
2を法とするWythoff行列の特定の値を出力します
Wythoff行列は、Wythoffのゲームのチェス盤上の各正方形のグランディ数で構成される無限行列です。 このマトリックスの各エントリは、エントリの位置の上、左、または斜め北西に表示されない最小の非負数に等しくなります。 左上の20行20列の正方形は次のようになります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20 2 0 1 5 3 4 8 …

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