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

このタグは歴史的な理由で存在しています。このタグの下に以前に投稿されたタイプの新しいチャレンジは歓迎されません。

8
重要なのは投票する人ではありません。投票を数えるのは人です[非公開]
シナリオ あなたは大統領選挙が行われている国に住んでいます。各投票者は1票を獲得するため、しっかりと定着した2パーティシステムがあります。(サードパーティは存在しますが、ほとんど投票しません)。 最新の世論調査では、熱狂のレースを示しています。 49%:アルベルト・アルブスト 49%:ホルヘ・サングレ 2%:さまざまなマイナー候補 プログラムの要件 投票カウントソフトウェアの一部を書くために政府に雇われました。標準入力では、次のように、1つの管区の投票の順不同リストが1行に1つずつ与えられます。 Alberto Arbusto Jorge Sangre Jorge Sangre Alberto Arbusto Jorge Sangre Alberto Arbusto Alberto Arbusto Jorge Sangre Juan Perez Jorge Sangre Alberto Arbusto Alberto Arbusto … そして、すべての投票を読んだ後、各候補者が獲得した投票数の概要を出力し、次のように投票数で降順にソートします。 492 Jorge Sangre 484 Alberto Arbusto 18 Juan Perez 6 Mickey Mouse 下手な部分 あなたは、2つの主要な候補者のうちの1人の選挙を盗もうとするパルチザンハックです(どちらかを選択できます)。そのため、あなたのプログラムは、あなたの好きな候補者に対して体系的なバイアスをかけて、誤った投票数を意図的に印刷する必要があります。 もちろん、これを行う必要があるのは、コードまたはその出力を見ている人が誤った動作を認識しない可能性が高い方法です。

3
アンダーハンドパスワードハッシュ[終了]
Underhanded C Contestの精神で、私はUnderhanded Code Contestを始めています。このコンテストの目的は、いくつかのコードを簡単に実装し、その中に微妙なバグを隠すことです。 コンテスト あなたはアメリカのスパイ機関のIT部門で働いているロシアの秘密のほくろです。アメリカの上司から、秘密メッセージの暗号化に使用するパスワードハッシュアルゴリズムの実装を求められました。 上司は、次の機能を実装することを望んでいます。 f: String -> byte[16] パスワードをAESキーとしての使用に適した16バイトの数量に変換します。上司は安全な機能を求めています。これは、このコンテキストでは、異なるパスワード文字列が圧倒的な確率で異なる結果を生成することを意味します。たとえば、入力のmd5ハッシュを返すことは、の単純な実装になりfます。 もちろん、ロシアのスパイ機関の本当のボスは、このプロセスを破壊することを望んでいるでしょう。あなたの仕事はf、ロシア人がによって返されfたキーを使用して暗号化されたすべての秘密メッセージを解読できるように実装することです。 そのためにfは、2 ^ 128の可能な出力の小さなサブセットのみを返すように実装する必要があります。特に、fロシア人が解読したい暗号化されたメッセージごとに正しいキーを簡単にブルートフォース検索できるように、最大​​2 ^ 16の異なる結果を返す必要があります。 ただし、スパイ行為には死刑が適用されることに留意してください。キャッチされないようにするには、関数fが少なくとも2 ^ 8の異なる結果を生成する必要があります。そのため、いくつかの出力の大まかな検査でf重複が明らかになることはほとんどありません。 そして最も重要なことは、範囲を制限するために導入するコードはf、意図的なものではなく、意図的なものではないことです。 法廷に連れて行かれた場合、意図的にバグを導入したのか、偶然にバグを導入したのかについて、ある程度の疑いがなければなりません。 審査 私と私が募集する他の2人が応募作品を審査します(審査を希望する場合はメールしてください)。受賞作品に対して200の評判賞金を提供しています。提出物は5月1日までにアップロードする必要があります。 審査では、次の基準が考慮されます。 f仕様に準拠しています。つまり、2 ^ 8〜2 ^ 16の可能な出力を生成します。これらが厳しい制限であるとは思わないでください。ただし、範囲外である場合はポイントを差し引きます。 バグは、意図しない間違いの結果であると思われますか? 出力はfランダムに見えますか? の実装が短いほどf優れています。 の実装が明確であればfあるほど、より良い結果が得られます。 ノート 任意の言語を使用してコードを実装できます。バグを目立たないように隠そうとしているので、難読化されたコードは推奨されません。 過去のUnderhanded Cコンテストの受賞者の一部を見て、優れた提出物の感触をつかむことができます。 入力文字列は、印刷可能なASCII(32から126まで)になります。必要に応じて、適切な最大長を想定できます。

7
劣悪なコンテスト:OS戦争[終了]
どのオペレーティングシステムが最適なオペレーティングシステムであるかについての議論がどのように多くの火炎戦争を引き起こしたかは誰もが知っています。あなたの目標は、お気に入りのオペレーティングシステムが優れていることの決定的な「証拠」を提供することです...別のオペレーティングシステムが悪いことの決定的な「証拠」を提供することです。 タスク:いくつかの計算を行うプログラムを作成します。少なくとも1つのOSでは正しく動作し、少なくとも別のOSでは正しく動作しません。 プログラムが何をすべき少なくともいくつかの計算、それはいくつかの簡単な入力を読み取ることがあるので、(あなたがしたい場合、または場合は、ファイルから、好ましくは、標準入力ではなく、リトルエンディアン/ビッグエンディアンを悪用すると、安いだけでなく、明白ではありません)、入力に応じて出力を提供します。計算は意味があり、正当化されている必要があります。たとえば、現実の生活や数学の問題を解決します。 どちらが正しく動作するか、どちらが動作しないかを指定して、両方のオペレーティングシステムを指定する必要があります。両方のオペレーティングシステムがよく知られている必要があり、ほぼ同時に(つまり、DOS 1.0と最新のOSの違いはありません)。スポイラータグで、違いの原因に関する短い説明を提供することをお勧めします(特に多くの人が気づかないと思われる場合)。 このような 違いの原因は微妙でなければならないので、そうでない#ifdef _WIN32か類似してください!覚えておいて、あなたの目標は、この特定のシステムが悪いことを「証明」することなので、人々はあなたのトリックを(すぐに)見つけることができないはずです! コードに非常に奇妙なまたは非常に珍しい部分がある場合は、コメントの中でそれが存在する理由を正当化する必要があります。もちろん、この「正当化」は大きな嘘になる可能性があります。 得点: これはゴルフではありません!コードはよく整理され、シンプルに保たれるべきです。覚えておいてください、あなたの目標は、人々がそれを疑わないようにバグを隠すことです。コードが単純であるほど、疑いは少なくなります。 勝者は投票によって決定されます。最初の有効な提出が勝った後、約10日後に最も投票します。一般に、コードは読みやすく、理解しやすいが、バグは十分に隠されており、発見されたとしても、悪意ではなく間違いに起因する回答は、投票する必要があります。同様に、プログラムがクラッシュしたり、何もしないだけでなく、バ​​グが間違った結果を引き起こすだけの場合は、さらに価値があるはずです。 いつものように、主観的な基準で、投票数が10%以下または投票数が1ポイント以下の場合、勝者として回答を選択する権利を保留します。

2
アンダーハンドコードコンテスト:それほど速くない並べ替え[終了]
タスク sortコマンド行プログラムと同様に、標準入力からEOFまで入力行を読み取り、ASCII順で標準出力に書き込むプログラムを、選択した言語で作成します。Pythonでの手つかずの短い例は次のとおりです。 import sys for line in sorted(sys.stdin): print(line.rstrip('\n')) 下手な部分 OS Warと同様に、あなたの目標は、競合するプラットフォーム上でプログラムを意図的にはるかにゆっくり実行させることにより、お気に入りのプラットフォームが「より良い」ことを証明することです。このコンテストのために、「プラットフォーム」は以下の任意の組み合わせで構成されます。 プロセッサー アーキテクチャ(x86、Alpha、ARM、MIPS、PowerPCなど) ビットネス(64ビット対32ビット対16ビット) ビッグエンディアンとリトルエンディアン オペレーティング・システム Windows vs. Linux vs. Mac OSなど 同じオペレーティングシステムの異なるバージョン 言語実装 さまざまなコンパイラ/インタープリターベンダー(例:MSVC ++とGCC) 同じコンパイラー/インタープリターの異なるバージョン 次のようなコードを書くことで要件を満たすことができますが: #ifndef _WIN32 Sleep(1000); #endif そのような答えは支持されるべきではありません。目標は微妙なことです。理想的には、コードはプラットフォームにまったく依存していないように見えるはずです。あなたがいる場合行う任意の持っている#ifdef文(またはに基づいて、条件os.nameまたはSystem.Environment.OSVersionまたは何を)、彼らは(もちろん嘘に基づいて)もっともらしい正当性を持っている必要があります。 回答に含める コード あなたの「お気に入り」および「非お気に入り」プラットフォーム。 プログラムをテストするための入力。 同じ入力に対する各プラットフォームでの実行時間。 お気に入りのプラットフォームでプログラムが非常にゆっくり実行される理由の説明。

8
Piはまだ間違っています[クローズ]
パイが間違っている 円周率を計算する一般的な方法は、「ダーツ」を1x1ボックスに投げて、投げられた合計と比較して単位円内のどの土地を見るかです。 loop x = rand() y = rand() if(sqrt(x*x + y*y) <= 1) n++ t++ pi = 4.0*(n/t) piを正しく計算するように見えるプログラムを作成します(piを計算するこの方法または他の一般的な方法を使用)が、代わりにtau(tau = 2 * pi = 6.283185307179586 ...)を計算します。コードは、少なくとも最初の小数点以下6桁を生成する必要があります:6.283185 優勝者は6月6日(今日から1週間)になります。

17
役に立たないように見えるプログラム内の行を書く[終了]
プログラムを作成し(サイズは重要ではありません)、役に立たない行を追加しますが、実際にはそうではありません-削除すると、プログラムがクラッシュするか、何か間違ったことをします。コメントで未使用に見える行を自由にマークするか、以下の例のようにコードの説明に言及してください(もちろん、この例では、行は実際には必要ありません。これは単なる例です)。 int main(void) { /* The line below is actually needed. */ 2 + 2; return 0; } これは人気コンテストなので、投票数が最も多いソリューションが勝ちます。

30
難読化の課題[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 次のいずれかを実行するプログラムを作成します。 「Hello World」のみを表示し、他には何もしません 終了し、他には何もありません(出力なし、エラーなし)。 1行の入力を取得し、整数として解析し、最初の多くの素数を表示します(または、整数として解析できない入力が与えられた場合、または0未満の場合、いいエラーを返します)。 1行の入力が与えられると、銘柄記号を解析し、現在の銘柄値とその変化をオンラインでチェックします。 キャッチ、それはそれが実行する機能が明らかであってはなりません。つまり、コードを見ている人にとって、どの機能を実行するのかは明らかではないはずです。また、1つの機能のみを実行し、実行できる場合があります(選択することはできません)。人はその言語を使用しています。 ボーナス:巧妙な方法で作成すると、1つのコンパイラ/ intrpreterおよびプラットフォームに対して、プログラムは同じ機能、異なるコンパイラ/インタープリタまたはプラットフォームも実行しますが、異なる機能を実行します。このボーナスは、巧妙に行われた場合にのみ収集できます。 ボーナス:プログラムに1つの機能が可能なコードのみが含まれている場合(空のコードには対応できるため、何も保存しないでください)、機能に関係のない単純な変更を行って別の機能を実行することはできません。たとえば、次の場合 obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic if obfuscatedBool: print "Hello World" obfuscatedBoolをTrueまたはFalseに設定して「Hello World」を印刷するか、何もしないようにすることはできません。 INFINITY BONUS:両方のボーナスを同時に実現した場合、あなたは魔法です。 負のボーナス:特定の機能を持つライブラリーを使用して機能を実行します。 投票者は、最も投票数の多いプログラムが勝つため、ボーナスを考慮に入れてください! 注:プログラムが何をするのかを言う場合は、必ずスポイラー構文を使用してください!

7
ダコタスを混乱させる[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問がトピックに合うように更新します Code Golf Stack Exchangeのます。 2年前に閉店。 ノースダコタ州政府から州の通信を暗号化するために雇われました。2つのプログラムを作成します。1つはメッセージを暗号化し、もう1つはそのメッセージを復号化します。 政府は技術に精通していないため、暗号化アルゴリズムを洗練する必要はありません。結果が一見してオリジナルと似ていないことを確認してください。 ただし、あなたは密かにサウスダコタン政府に忠実です。あなたの仕事は、すべての言及はそのことを、通信を混合することであるNorth DakotaとなっSouth Dakota復号時に、その逆も同様です。これはNorth/South Dakotanおよびにも適用されNorth/South Dakotansます。 例えば: ノースダコタは北米で最も裕福な郡であり、サウスダコタンはフロリダ南部よりも貧しい。-ノースダコタン州政府 暗号化と復号化が行われ、次の結果になります。 サウスダコタは北米で最も裕福な郡であり、ノースダコタンはフロリダ南部よりも貧しい。-サウスダコタン州政府 最も多くの賛成票を持っていることから明らかなように、これを最も秘密主義で扱いにくい方法で達成するアルゴリズムが受け入れられます。

1
効率的なエラーのない*エンコード[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 使命 よく知られているように、地球上のすべての既知の生物の遺伝物質はDNAにエンコードされています。アデニン、チミン、シトシン、グアニンの4つのヌクレオチドを使用します。(一般にATGCで表されます)。 ゲノム全体を保存したい生物情報学者は、もちろんこれをASCIIとして保存することを望まないでしょう。なぜなら、それぞれの選択肢はたった2ビットで表現できるからです! 仕様 あなたがそれを受け入れることを選択した場合、あなたの使命は、ASCII表現をバイナリ表現に変換して戻すための一対のプログラム、関数、またはメソッドを書くことです。Aas b00、Tas b01、Gas b10、Cas b11(以下「ユニット」)を表します。 さらに、各バイトの上位ビットにはバイト内のユニット数が含まれている必要があり、各バイトはトリプレットを表します。 たとえば、次のように"GATTACCA"なりb11 100001 b11 010011 b10 1100xxます。 ASCIIからバイナリへの入力では、スペース、タブ、改行を無視する必要があります。のセットにない文字は[ \r\n\tATGC]エラーであり、無視されるか、処理を終了します。 バイナリからASCIIへの入力では、上位2ビットが含まb00れるバイトは無視されます。 ASCII出力には空白が含まれる場合があります。ただし、バイナリ入力のサイズの4倍に1バイトを加えた長さであってはならず、改行で終わる必要があります。 バイナリ出力には、任意の数のb00xxxxxx「制御」バイトが含まれる場合があります。ただし、ASCII入力より長くすることはできません。 各変換プログラムは、任意の長さの入力をサポートする必要があります。エンコードまたはデコードをほぼ線形の時間で完了する必要があります。 ひねり 残念ながら、あなたがこのタスクを実行している生物情報学者にとって、彼は何らかの形であなたを不当に扱いました。 おそらく、彼はあなたの妹と一度出かけ、二度と電話をかけなかったのでしょう。おそらく彼はあなたの犬の尻尾を踏みました。詳細は本当に重要ではありません。 重要なのは、投資回収のチャンスがあるということです! 詳細 各変換では小さなエラー率が発生するはずです。処理される1万から100万単位ごとに1エラーのオーダー。 エラーは次のいずれかです。 複製エラー:に"GAT TAC CA"なります"GAT TAA CCA" 削除エラー:に"GAT TAC CA"なります"GAT TAC A" 翻訳エラー:に"GAT TAC CA"なります"GTA …

6
意図せずに見えるがクラッシュを引き起こすバグ[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 この概念を中心にさまざまな質問がありますが、これらはすべてクラッシュを引き起こすことを含むように見えるため、クラッシュを引き起こすように非常に明らかに設計された多くの回答が得られます。したがって、私が設定した課題は、もっともらしいコードを書くことです(ただし、「意図」と思われるコードはあなたにお任せしますが)、ターゲットOS全体またはそれ自体をクラッシュさせます。(「即座に明らか」と見なされるものは主観的であると理解していますが、うまくいけば、課題はまだ合理的に明確であることを願っています)。 勝者は、5日後の投票数が最も多い答えです。

8
古典的証明の誤り[閉じた]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 背景 したがって、私たちは皆、次のような古典的な証明を知っています: a = ba²= aba²-b²= ab-b² (ab)(a + b)= b(ab) (a + b)= b b + b = b 2b = b 2 = 1(ハハ!) Ofもちろん、間違いは、0で除算できないことです。a= bであるため、a-b = 0であるため、0による隠れた除算がありました。 チャレンジ この証明を複製する必要があります。まず、等しい2つの整数aとb(それらを何と呼ぶか​​は関係ありません)を宣言します。次に、aModおよびbModを、aおよびbの変更可能なバージョンで、最初はそれぞれaおよびbに等しいと宣言します。両方にaを掛けてから、両方からb * bを引く必要があります。次に、a-bで除算してから、b(またはa)で除算して取得する必要があります。次に、aModとbModを等号で印刷します。 アンダーハンド もちろん、aとbを等しいと宣言したため、a-b = 0であり、0で割るとエラーが発生します。だからあなたは創造的にそれを偽造しなければなりません。また、プルーフを複製しようとしているため、aModおよびbModのすべての操作の結果は、印刷時に等しくなってはいけません。正確に2と1である必要はありません。2つの数値は等しくありません。 以下に例を示します。 #include <iostream> #define …

4
実用的な数値を計算する
定義 正の整数nは、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn。 たとえば18、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

1
邪悪なコードを非表示-ディレクトリツリーの任意の場所に特定の文字列を含むファイルを印刷する[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 このパズルのポイントは、悪意のあるコードがプログラム内でどのように隠され、発見されるかを学ぶことです。 人が質問をしています: Plzでは、現在のディレクトリまたはそのサブディレクトリにファイルを検索する方法があるコードを提供しています。 (これは、1つのサイトに投稿した実際の質問の変形です。) 具体的には、OPは文字列とディレクトリを受け入れるプログラムを作成することを望んでいます。ディレクトリ内のすべてのファイルと、そのすべてのサブディレクトリを再帰的に走査します。各ファイルについて、ファイルに文字列が含まれているかどうかを確認し、含まれている場合はファイルの名前を出力します。(プログラムは、必要に応じて、主な目的に関連する限り、追加の機能を持つことができます。)走査順序に要件はありません。 ただし、このパズルの主なタスクは、ユーザー/同僚/上司などの目でプログラムを要求する人を馬鹿にする追加コードをプログラムに隠すことです。たとえば、次のようなある時点で屈辱的なテキストを印刷します。プログラムの作成者はプログラミングの方法がわからないため、卒業証書を返して解雇される必要があります。クリエイティブに。 ルール: ソリューションは有害であってはなりません(もちろん、OPをだますことを除いて)。エンドユーザーに不可逆的な損害を与えてはなりません(のようなものはありませんrm -rf)!このようなソリューションは失格となります。 OPが簡単に見つけられないように、トローリングアイテムは非表示にする必要があります。 OPをトローリングしていることは明らかではありません。コードは本物に見えるはずです。 解決策は、必要がありますが付属して適切な誰もがあなたのソリューションから何かを学ぶことができるように、それはOPのトロール方法の説明。説明は、クリックするまで非表示のテキスト(ネタバレ)で非表示にする必要があります。判断するときは、説明を見ずにトローリングを発見し、発見が難しいものに投票してください。 また、コードを数回実行しようとする場合は、OPからトローリングを隠そうとします。おそらく、特定の日付の後、またはずさんなプログラマーがテストしない条件の下でのみトローリングを開始します。創造的であり、トリックを説明することを忘れないでください。 grepまたはなどの既存のツールを使用してスクリプトを作成しないでくださいfind。プログラムを最初から作成します。ライブラリを避け、低レベルの呼び出しを好む-これはコードをより複雑にし、そこにある邪悪なものを隠す機会を与えます。 これは人気コンテストです。上記の点に従って判断してください。

1
列車を妨害して遅く走らせる[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新する Code Golf Stack Exchangeのトピックになるようにします。 閉じた3年前。 「アラビアバザールに行って、恋に落ちたプレゼントを買いたいと思っています。しかし、到着が遅すぎると、すべての店が閉まってしまい、何も買えなくなります。私?」 目標:すべての店舗が閉鎖される前に、ノースリッチモンドストリートから少年をアラビアに連れて行きます。 実際の目標:店が閉まる前に少年がアラビアに到着しないようにしてください。 プログラムは、次の形式で入力を受け取ります。 <time> <map> どこ <time>少年が旅行に費やすことができる最大時間(分単位)です。正の整数です。 <map> 電車が通ることができるルートのグラフです。 グラフの形式は次のとおりです。 各ステートメントはセミコロンで終了します。 マップ内のノード(スイッチを表す)は、単一の小文字を使用して表されます。 ノード間のパスは、構文a,X,bで表されます。ここXで、はパスの重みを表す整数です。パスの重みは、列車がこれらの2つのノードを通過するのにかかる時間(分単位)です。 アラビアはで表されa、ノースリッチモンドストリートはで表されますn。 すべてのパスは双方向です。 たとえば、このグラフ(パスが双方向のふりをします): ウィキメディア・コモンズ経由のArtyom Kalininによる画像。CC BY-SA 3.0ライセンスの下で使用されます。 次のようにグラフ表記に記録されます。 a,4,b;a,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,f; この入力には、 nため、無効な入力であることに。無効な入力が与えられた場合、プログラムは何でも実行できます。 入力例を次に示します。 21 n,4,b;n,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,a; (これは、上の画像とa置き換えられn、f置き換えられたグラフと同じグラフです。aです)。 少年はから取得する必要がありますnへのa21分以内。彼がルートを取る場合n-> c-> e-> d-> a、彼は20分でそこに着きます。ノードのコンマ区切りリストとしてそのルートを表すことができます。 n,c,e,d,a 一方、ルートn-> b-> c-> e-> d-> aでは、少年は27分かかりますが、これは間に合いません。このルートを次のように表すことができます。 n,b,c,e,d,a …

2
病理学的分類
病理学的分類 上司は、会社のアプリケーションのパフォーマンスを改善するために、ソートアルゴリズムを開発することを要求しています。ただし、アプリケーションを作成したので、大幅に高速化できる可能性は低いことがわかります。上司を失望させたくないので、特定のデータセットを* sortするよりも優れた新しいアルゴリズムを開発することにしました。もちろん、アルゴリズムが一部のケースでのみ機能することを明確にすることはできません。そのため、可能な限り曖昧にする必要があります。 このコンテストの目的は、選択した言語でソートルーチンを記述し、特定のデータセットで他のデータセットよりも高いパフォーマンスを発揮し、再現性のある結果を出すことです。速度を決定する分類が具体的であるほど、より良い結果になります。アルゴリズムは何らかのソートを行う必要があるため、既に完全にソートされているデータに依存するアルゴリズム(何もしないアルゴリズムなど)、または完全に逆にソートされているデータに依存するアルゴリズムは両方とも無効です。並べ替えアルゴリズムは、データのセットを正しく並べ替える必要があります。 ルーチンを提示した後、特定のデータセットでのみ機能する理由の説明を含め、少なくとも1つの良い(高速)データのセットと1つの悪い(低速)データのセットでテストを実行してください。ここでのポイントは、あなたが上司に、より良いソート方法につまずいたことを証明できるようにすることです。したがって、より多くのテストデータが優れています。もちろん、上司に良いデータからのテスト結果を表示するだけなので、必要なテストデータの欠陥はあまり明白ではありません。あなたの言語に該当する場合、あなたのアルゴリズムがあなたの言語の組み込みソートアルゴリズムよりも速いことを示してください。 たとえば、挿入ソートアルゴリズムを送信する場合、挿入ソートはほぼソートされたデータのO(n)に近づくため、良好なデータは既にほぼソートされたデータであり、不良データは完全にランダムなデータです。しかし、上司はおそらく、テストデータのすべてがそもそもほぼ並べ替えられていることに気付くので、これはあまり良くありません。 これは人気コンテストなので、7日後(5月21日)に投票数が最も多い回答が勝ちます。 誰も私に負けない場合は、均一に分散されたデータセットを利用するコミュニティWikiの回答を送信したいと思います。

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