タグ付けされた質問 「radiation-hardening」

このタグは、ソースコードがランダムに編集された場合でも、回答が機能する必要があるチャレンジ用です。

3
メタ放射線硬化剤
バックグラウンド このサイトでは、プログラムを「放射線強化」するように要求する質問が時々あります。つまり、どのバイトが削除されても、プログラムは1つまたは複数のバイトの削除に耐えることができなければなりません。 プログラミングの課題で頻繁に設定されるタスクでは一般的であるように、これらの課題に特に優れた言語を作成したいのは自然なことです。これを行うための自然な方法は、破損を元に戻すことができるメタデータを追加することであることを考えると、実際には設計が必要な言語ではなく、エンコードです。アイデアは、各入力をバイトのシーケンスに変換することで、シーケンスがわずかに照射されても、元の入力を抽出できるようにします。 タスク 次のような2つのプログラムまたは関数、E(エンコーダー)およびD(デコーダー)を記述します。 Eは、オクテットのシーケンス(この仕様では「入力」と呼びます)と非負整数の「放射」の2つの引数を取り、「エンコーディング」のオクテットのシーケンスを出力します。 Dは1つの引数、オクテットのシーケンス( " encdng ")を取り、オクテットのシーケンス " 再構成 " を出力します。 EとDの両方を実行する場合(encdng、エンコーディングから放射要素を削除することで選択されるDへの入力(必ずしも連続的ではない))、encdngを形成するために削除された文字に関係なく、再構築は入力と等しくなります。 明確化 あなたが機能を提出する場合は、それらを呼び出す必要はありませんEとしますD。言語に最適な名前を​​選択できます。 「オクテット」は基本的に0から255までの整数であり、整数、文字、または言語に適したものとしてエンコードできます。 EとDは完全に決定的でなければなりません(つまり、同じ入力を与えると常に同じ出力が生成されます。「入力」はEの入力と放射、またはDのencdngとして定義されます)。特に、Eはサイドチャネルを介してDに情報を伝達しない場合があります。 削除は、シーケンスの1つの要素を削除することにより実行されます。エディターでシーケンスを開き、カーソルを任意のポイントに置き、Backspaceキーを押すことを考えてください。要素が複数回出現する場合、要素のコピーが1つだけ削除される可能性があります(つまり、同じオクテットの他のインスタンスは影響を受けません)。 スコアはかなり短い入力に基づいてのみ計算されますが、プログラムは入力および放射に対して理論的に機能する必要があります。特に、inputにどのオクテットが現れても機能しなければなりません。(申し訳ありませんが、入力に表示されないことがわかっている印刷できない文字を使用したい人は、入力が非圧縮性であることを確認する必要があります。 2つの関数を定義する1つのファイルを送信できます。それぞれ関数を定義するか、両方とも完全なプログラムである2つのファイル。または3つのファイル。2つはそれぞれDおよびEを実装します(完全なプログラムであるか関数を定義することにより)。3つ目はDとEの両方に共通のヘッダーファイルまたはライブラリです。使用する送信形式に関係なく、プログラミング言語の実装は、ファイルの場所などの引数を追加せずに両方のプログラムを理解できる必要があります(または、標準の規則に従って、通常とは異なる方法で実装を呼び出すためのバイトペナルティを支払う必要があります)。 勝利条件 各々に対して長さと放射線、聞かせてF(長さ、放射線の)の合計の長さである符号化全て秒その対応する入力の長さと長さ、及び所定の放射。(つまり、f(長さ、放射)= 入力の長さは長さ length(E(入力、放射))になります。)次に、g(長さ、放射)がf(長さ、放射)÷256 長さ。言い換えれば、gは入力の長さと放射線強化の要件に対するエンコードされた出力の平均長です。(理論上はこれをブルートフォースで計算できますが、そのようにスコアを計算するのには信じられないほど時間がかかるでしょう。不明な点があります。おおよそのスコアを投稿してください。他のエントリが同様のスコアを投稿した場合、あなたまたは他の誰かがより深く計算することができます。) あなたのスコアはの和に等しいグラム(長さ、放射線のすべてのための)放射範囲の0〜9まで含めて、すべての長さ 99包括範囲0で、プラス(主にハードコーディングを避けるために、または行く競争を維持する場合誰かが数学的に完璧なエンコーディングを発見します。これは、そうでなければ最小限の要因である可能性があります)チャレンジへの提出の合計バイト数(および異常なインタープリターフラグまたは特定のファイル名を要求するようなものに対する標準ペナルティ)。勝者は、最も低いスコアのエントリです(最初に送信するエントリによってタイブレークされます)。

2
放射線硬化照射器を書く
タスクは、放射線硬化照射装置を作成することです。それはどういう意味ですか? 照射器は、入力として文字列が与えられると、1文字が削除された文字列のすべての可能なバージョンを出力するプログラムです。たとえば、入力が与えられるHello, world!と、プログラムは次を出力します。 ello, world! Hllo, world! Helo, world! Helo, world! Hell, world! Hello world! Hello,world! Hello, orld! Hello, wrld! Hello, wold! Hello, word! Hello, worl! Hello, world ただし、照射器はその放射線から保護する必要があるため、作成した照射器はそれ自体を通過したときにも存続する必要があります。つまり、プログラムの1バイトが削除されても、プログラムは適切に機能する必要があります。 テストケース abc -> bc; ac; ab foo bar -> oo bar:fo bar:fo bar:foobar:foo ar:foo br:foo ba source -> ource;surce;sorce;souce;soure;sourc; 仕様書 標準のI …

1
プログラムが変異しているかどうかを検出する
エラーなしで終了するプログラムを作成します。 単一のバイトが他のバイトで置き換えられた場合、プログラムは出力する必要があります CORRUPTED ファイルからソースコードを読み取らないでください プログラムは他の出力を生成しないはずです これはコードゴルフなので、バイト単位の最短回答が勝ちです。 編集:「破損していない」要件を削除

5
自己採点プログラム
独自のスコアを出力するのは難しいですが、そこにあるすべての答えは出力をハードコーディングするだけで、退屈なようです1。それで、新しい挑戦をしましょう。バイト単位での独自の長さは、文字列に続いて、あなたのプログラムを出力しなければならない" bytes"が、私たちは除去することにより、そのサイズを小さくした場合にハードコーディングソリューションを防止するために、任意の 1つのバイトを、新しいプログラムはまた、出力はそれはまだ続く新しいバイト・カウント、です必要があります" bytes"。出力では大文字と小文字を区別する必要はありません。末尾の改行を出力することもできます。 回答はバイト単位で記録され、バイト数は少ない方が良いです。 1:私は実際にいくつかの答えが好きです。

13
転置、素数、ああ!
タスクは簡単です。プログラムは整数を入力として読み取り、それが素数であるかどうかを出力します。「yes / no」、「true / false」、または結果を明確に識別するものを印刷できます。 課題は、コードが転置された行と列で動作する必要があることです。 明らかな解決策(コメントを使用して文字ごとに垂直に繰り返される最短の「単純な」解決策)を除外するために、メトリックは通常のcode-golfとは少し異なります。 この課題ではフォーマットが非常に重要であるため、コードサイズはコードが収まる最小の長方形の領域で測定されます。簡単にするために、ソリューションを投稿するときに実際にそれを行う必要があります)。例えば int main() { return 0; } 4 * 13 = 52のサイズになります(そして明らかに、2つの基準のいずれにも適合しません:素数検出と転置可能)。 最小サイズが勝ちます。 関数の唯一の目的が素数の検索、生成、または検出である場合を除き、任意の言語およびライブラリ関数を使用できます。 編集: おそらく勝者はGolfscriptソリューションでしょうが、最高のCまたはC ++ソリューションに対して50ポイントの賞金を授与します!

2
エラー検出自己修復プログラム
あなたの仕事は、1つの文字が削除された場合、どの文字が削除されたかを検出し、削除された文字を独自のソースファイルに再挿入するプログラムを作成することです。 たとえば、プログラムがにRadiationHardened変更された場合、プログラムはRadiaionHardened5バイト目(0インデックス)が変更されたことを出力し、プログラムソースはRadiationHardened実行直後でなければなりません。 注意事項と規則 実行前に、ソースコードで1文字だけが削除されたと仮定することができます。変更されていないプログラムの動作は未定義です。 変更されたバイトは、転置、挿入、または置換ではなく、削除されると想定できます。 同じ文字の複数の実行の場合、実行の最初または最後のインデックスを報告できますが、使用するものについては一貫性があります。たとえば、baaad削除されるとbaad、1または3(ゼロインデックス)のいずれかを報告できますが、プログラム全体で同じである必要があります。 ソース全体を独自のファイルに書き出す必要はありません。削除されたバイトを再挿入するだけです。 耐放射線強化されたクインの典型的なルールとは異なり、プログラム自身のソースコードの読み取りから変更されたバイトを検出することは公正なゲームです。 適切な形式で、変更されたバイトインデックスを出力できます。0インデックス付きか1インデックス付きか、その他の表記法について一貫性を保ちます。テンプレート文字列内に数値を出力することもできます。 これはコードゴルフなので、最短のプログラムが勝ちます。 幸運を! EDIT1:要件を置換から削除に変更しました EDIT2:重複の実行のルールを追加

1
放射線硬化クインを作る
昨夜、私は放射線強化クインチャレンジを探していましたが、それを見つけることができませんでした。誰もまだそれを聞いていないことがわかりました!だからここにある: あなたの仕事は、クインを作成することです。それは、空ではないコンピュータープログラムで、それを読み取らずに独自のソースを印刷します。さらに、元のプログラムから1バイト削除すると、新しいプログラムは元のプログラムのソースを出力するはずです。 これはコードゴルフであるため、回答はバイト単位で記録され、バイト数は少ない方が良いです。

1
変異硬化したクイン
あなたの仕事は、独自のソースを印刷するプログラムを作成することです。 「ねえ、私たちはすでにこの挑戦と、それのトンのバリエーションを持っています!なぜあなたは別のものを作っているのですか?」質問するかもしれませんが、これは最も難しいものの1つになります(とにかく)。 あなたのウマは「突然変異に強く」されている必要があります。それは、その文字のいずれかが適切に複製されていても、ウマは元のプログラムのソースコードを出力しなければならないことを意味します。 たとえば、あなたが馬を持っている場合(次の例はどの言語でも書かれておらず、単なる擬似コードです): abcd これらのプログラムはすべて出力する必要がありますabcd: aabcd abbcd abccd abcdd (これらのプログラムのそれぞれで、a、b、cおよびd各重複文字が元の文字の直後に配置したことを意味する、その場で複製されます。) ルール: 標準のクインルールが適用されます。 マルチバイト文字は1文字としてカウントされ、複製された文字はそれぞれのバイトに「分割」されません。 これはcode-golfなので、バイト単位の最短コードが勝ちです!

14
再配置可能なコードボウリング
コードボウリングチャレンジ ソースコードをどのように再配置しても、同じ出力を生成するプログラムまたは関数を作成します。(出力はエラーにはなりません) パングラムスコアリング スコアは、ソースコード内の一意の文字の量です。 ソースコードAJBを使用し3 たプログラムのスコアは、ソースコードAAJを使用し2 たプログラムのスコアは、ソースコードを使用したプログラム111のスコアは、1 これはコードボウリングの亜種です。最高得点のプログラムが勝ちます! (便宜上、ここに自動スコアリングツールが作成されています) チャレンジルール 入力 プログラム/関数は入力を受け取ることができますが、これは完全にオプションです。 出力 この出力には任意のものを指定できますが、nil、null、null、空、およびエラーではないはずです。(したがって、出力は少なくとも1バイトでなければなりません) 再配置 ソースコードがどのように再配置されても、出力は同じである必要があります。例: プログラム:ABJ出力hello world、プログラムがそうであるように:[ AJB、JAB、JBA、など] これはコードボウリングの亜種です。文字数が最も多いプログラムが勝ちます!

15
論理ゲートを手動で
基本的な論理ゲートをシミュレートするプログラムを作成します。 入力:スペースなどで区切られた、2つの1桁の2進数が続く、すべて大文字の単語OR 1 0。門OR、AND、NOR、NAND、XOR、およびXNOR必要とされています。 出力:入力された論理ゲートの出力には、1または0の2つの数値が与えられます。 例: AND 1 0なります0 XOR 0 1なり1 OR 1 1ます1 NAND 1 1なります0 これはcodegolfなので、最短のコードが優先されます。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

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 

1
放射線硬化環状キンポリグロット
チャレンジ 次の2つのプログラムを作成します。 2つの異なるプログラミング言語で実行します。 これらは、1つの言語の2つのバージョンではない場合があります。 1つのプログラムを実行すると、2番目のプログラムが出力され、その逆も同様です。 2つのプログラムは異なる必要があります(ポリグロットなし)。 しかし、ここにキャッチがあります: プログラムは放射線耐性を強化する必要があります。 つまり、んんn(以下で定義)の文字のセットが2つのプログラムのいずれかから削除されても、その機能には影響しません。 んんnは、プログラムの機能に影響を与えずに省略できる文字数として定義されます。 んんnは少なくとも111でなければなりません。 ルール 標準の抜け穴は許可されていません。 プログラムは適切な循環クインでなければなりません。彼らは彼ら自身のソースコードを読むことはできません。 スコアリングは次のように実行されます。 S1+ S2んS1+S2ん\frac{S_1+S_2}n S1S1S_1S2S2S_2 んんn これはコードチャレンジであり、最も低いスコアが勝ちます。 褒賞 このチャレンジは答えるのが難しいので、最初に答えた人に賞金を差し上げます。

1
放射性ビット検査
注:これは、以前のチャレンジであるPristine Bit Checkingの耐放射線バージョンです。これはそれよりもはるかに難しいはずです。 000から255255255の範囲の2つの整数を取り、数値のバイナリ形式が正確に1ビット異なるかどうかを返すプログラム/関数を記述します。 たとえば、111と000はバイナリ形式の00000001と00000000があり、1ビット離れています。同様に、152152152と242424は010011000and 000011000なので、trueを返します。 ただし、コードを耐放射線性にする必要があります。これにより、プログラムのいずれかのビットが反転しても、正しく機能するはずです。たとえば、プログラムが1バイトa(01100001)の場合、8つの変更可能なプログラムすべて: á ! A q i e c ` それでも正しく機能する必要があります。バイト単位で変更していることを確認してください(たとえば、á上の2バイト文字ではなく、実際にはバイト225225225表しているá)。 テストケース: Truthyの意味では、それらは 1ビット異なります。 0,1 => Truthy 1,0 => Truthy 152,24 => Truthy 10,10 => Falsey 10,11 => Truthy 11,12 => Falsey 255,0 => Falsey ルール: 多くの可能なプログラム(バイト数* 8)、または完全な有効性の証明があるため、プログラムが適切に耐放射線性であることを検証できるテストフレームワークを提供します。 投稿する前に、プログラムが有効であることを再確認してください。 出力は、true / false(どちらの方法でもかまいません)、またはtrueの1つの異なる値として、残りはfalseのいずれかになります。 これは、標準入出力メソッドのいずれかを介して行うことができます 以下は、入力されたプログラムのすべてのバリエーションを生成するために使用できるヘルパープログラムです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.