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

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

13
超順列
前書き あなたは、新しいハイテクスタートアップDejavuからいくつかの秘密の計画を盗むことを任された犯罪者です。奥の壁をこっそり覗き込みますが、ドアを開くにはピンが必要です。ロックのメーカーを認識し、0〜4のすべての数字を使用して5桁のピンを取ることを知っています。各桁が入力されると、ロックは入力された最後の5桁をチェックし、コードが正しい場合は開きます。あなたは、このロックをすり抜けなければなりません。 一言で言えば超順列 順列は、特定の数字セットのすべての可能な組み合わせです。たとえば、数字0、1、2のすべての順列は次のとおりです。 012、021、102、120、201、および210。 これらすべての順列を連結すると、スーパー順列が得られます。 012021102120201210 このスーパー順列には0、1、2の順列がすべて含まれていますが、これよりも短い順列を作成することもできます。ここでは少しスキップしますが、これらの数字の最短のスーパーパーミュテーションは次のとおりです。 012010210 私たちの意図と目的のために、これは本質的にそれらの数字のすべての可能な順列、すなわちスーパー順列を含む数字の最短文字列です。 仕事 心配する必要のある数字がさらに2桁あるため、上記のスーパー順列の例よりもタスクが少し難しくなります。-スーパー順列について読んでいない場合、または上記の私の例が少し不明瞭だった場合、このテーマに関するパトリック・ホナーのこの素晴らしい記事を読むことを強くお勧めします(この挑戦は彼の記事に非常に強く触発されたので、彼に敬意を表します):https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/。あなたの目標は、数字0〜4のスーパー順列を生成する可能な限り短いプログラムを書くことです。 得点 プログラムはいかなる種類の入力も受け付けず、0から4までの数字のスーパー順列を生成します。この結果のスーパー順列は、選択した言語が提供する範囲でコンソールに出力するか、ユーザーに表示する必要があります。これは可能な限り短い順列である必要はなく、有効なスーパー順列でなければなりません。このため、目標は最短の順列を持つ最短のプログラムを書くことです。そのため、次のようにスコアを計算する必要があります。 ファイルサイズ(バイト)*生成されたスーパーパーミュテーションの長さ(桁) たとえば、40バイトのプログラムがあり、スーパー順列の長さが153桁の場合、スコアは次のようになります。 40 * 153 = 6120 いつものように、目標はこのスコアをできるだけ低くすることです。 テンプレート 回答を投稿する方法は次のとおりです。 言語| スコア 作業環境のコードへのリンク(可能な場合) code snippet コードの説明など ファイナリティ これは、このサイトに関する最初の質問の1つです。それで、私が何かを逃しているのか、私の挑戦のセクションが不明確なのか教えてください。ありがとう、そして楽しいゴルフを!

7
不潔でユニーク
この質問では、文字列としてのプログラムについて説明します。これは文字ではなくバイトの文字列です。結果のプログラムがどのようにレンダリングまたは表示されるかは、この課題にとって重要ではなく、メモリ内での表示方法のみが重要です。 自然のままのプログラムは、プログラムである実行がないエラーをしたときに、しかし、それはサイズのたび連続サブエラーになりますことを、N、1 ≤ N &lt;を| S | 、削除されます。SSSnnn1 ≤ N &lt; | S|1≤n&lt;|S|1\leq n < \left|S\right| 不潔プログラムは、プログラムで、反対側のランときに行い、エラー、サイズがいつでも連続サブN、1 ≤ nは&lt; | S | 、削除され、エラーにはなりません。SSSnnn1 ≤N &lt; | S|1≤n&lt;|S|1\leq n < \left|S\right| このチャレンジでは、エラーはSTDERRへの空でない出力です。 あなたの挑戦は、できるだけ多くのユニークなバイトを使用する不潔なプログラムを書くことです。これは、コードに表示される一意のバイトごとに1ポイントを獲得し、スコアが大きいほど良いことを意味します。したがって、最大スコアは256です。

6
放射線検出器!
放射線耐性プログラムとは、コードの文字が削除された場合でも、プログラムは同じように機能するプログラムです。この質問のために、いつ照射されたかを検出するプログラムを作成します。 プログラムや関数、とき書く任意の単一のバイトが削除され、結果としてプログラムが出力されますが、そのバイトだけそのバイトを。(他のバイトを出力しない限り、そのバイトを複数回出力できます) ルール: プログラムには、少なくとも2つの異なるバイトが含まれている必要があります。(0だけのソリューションはありません;) 元のプログラムが何をするかは関係ありません 独自のソースコードを読む必要はありません。 コードは、異なるバイト数でスコアリングされ、最大バイトが勝ちます。たとえば、abc= 3ポイント、ababba= 2ポイント、abc勝ちです。 タイブレーカーはバイト数が少なく、その後に送信時間が早くなります がんばろう!

5
同じコードの異なる文字
注:このチャレンジでは、コンパイルされた言語での回答のみが許可されます 仕事 タスクは非常に単純で、コンパイル時に同じ出力になる2つの異なるプログラムを作成します。 得点 ここからが楽しみです。スコアは、1つのプログラムに存在する一意のバイト数になります。たとえば、2つのプログラム(IBMコードページ437でエンコードされている)が ☻☻Program A そして ☺Program B 正確に1つのプログラムに含まれる文字は ☻☺AB したがって、スコアは4です。☻最初のプログラムでは2回表示されますが、1回しかカウントされないことに注意してください。 あなたの目標は最高のスコアを取得することです。可能な最高のスコアは256です。 これは、ASCIIエンコードプログラムで機能するスコアリングプログラムです。 規定 両方のプログラムのすべてのバイトを別のバイトに置き換えて、プログラムを別の結果にコンパイルするか、すべて一緒にコンパイルできないようにする必要があります。バイトを削除しても同じことが行われます。 両方のプログラムが同じフラグで実行される限り、コンパイルフラグを使用できます。 結果がマシンごとに異なる場合、実行するマシンが示されている場合、結果のコンパイルは静的でなければなりません(つまり、実行ごとに変化してはなりません)。 コンパイルの出力は、「同等」または「十分に類似」ではない同一のバイトのバイトである必要があります。 コンパイルの出力は空ではないはずです 警告/エラーはコンパイル間で同じである必要はありません プログラムまたはコンパイルのいずれかに印刷できない文字が含まれている場合は、hexdumpを必ず含めてください。技術的には必要ありませんが。

12
黄金比を印刷する
これは楽しかった!しかし、たった3桁で、楽しみはすぐに終わりました。この課題は似ていますが、楽しみを続けていきます。 チャレンジ 黄金比 φを可能な限り多く印刷します。黄金比は、φ=(φ+ 1)/φを満たす数として定義され、最初の100桁は次の式で与えられます。 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ... この課題は、φを計算することではありません!2回行う方法を使用せずに、できるだけ多くの桁を印刷することです。可能な限り多くの創造的な方法で数字を取得してください! 制限事項 それ自体では、φの数字を印刷するのは少し単純すぎるので、ここに規則があります。 番号を左から右に順番に作成する必要があります。1つずつ印刷するか、左から右に文字列を作成して最後に印刷します。数字文字の配列を生成して結合することもできます。順番どおりに行う限り、印刷してください。次の規則では、「印刷」および「出力」はこれらのプロセスのいずれかを指す場合があります(たとえば、文字列を作成し、その文字列に既に印刷済み1.6としてカウント1.6される場合)。 コードの場合、1桁あたり15文字の予算があります。期間はその予算にカウントされませんが、同様に印刷する必要があります。制限はコードの合計サイズのみであることに注意してください。平均でこれ以上使用しない限り、任意の数字に15文字以上を使用できます。実際、キャラクターに「借金」を作り、後で「支払う」ことができます。たとえば、印刷1.618するには60文字が必要です。 標準ライブラリのインクルード/インポートは、コードサイズにカウントされません。しかし、これらのインクルードエイリアスを無料で提供することはできません! 現在生成している数字や、すでに印刷した数字は使用しないでください。たとえば1、ソースコードの最初の桁であるため、ソースコードのどこにも表示されない場合があります。8in を出力するコード1.618は、数字の一部またはすべてを使用できますが、のいずれも使用でき[0234579]ません[168]。この目的のために、1桁に相当するすべてのリテラルはその数字として扱われます。だからあなたの言語を表現することができる場合9として、'\t'あなたが使用することができませんでしつまりどこでも、使用することを許可されていない9代わりに。 一度に複数の数字を生成しないでください。コードを1桁ずつ生成するチャンクに明確に分割することができるはずです。 組み込み関数、数学/ブール/ビット単位/文字列演算子、以前の数字を生成したコードで使用した変数または定数を参照しないでください。例外は、整数から文字列への変換、文字列の連結、および1桁ごとに必要な印刷機能です。ビルトインをどの名前で参照するかは問題ではないことに注意してください。ビルトインPIを両方にエイリアスするからであり、一度だけ使用するわけではpありqません。同様に、あなたはしている、それは文字列のように、二つの異なる組み込みコマンドを参照している場合は二回名前を使用することができ、配列。pqlengthlength プログラミング言語に関数がない場合は、同等のものが何であるかについて最善の判断を下してください。たとえば、bashスクリプトの場合、他のプログラムを呼び出すには、関数に課せられた規則に従う必要があります 提出物は単一の言語で書かれている必要があります。そのため、他の言語のビルトインにもアクセスするために他の言語のインタープリターを実行する必要はありません。 含意 以下の点はすべて上記のルールによって暗示されていますが、サンドボックスですでに出てくる質問を避けるためにここにそれらを追加します。 '\b'その間にいくつかのバックスペース(通常は)を印刷することで、出力の一部を上書きすることはできません。 複数の数字を生成/出力するループは禁止されています。(ただし、1桁を計算するループは問題ありません。) 難読化されたバージョンを使用し(1 + √5)/2たり、フィボナッチ数を分割して1桁以上を取得することは禁止されています。 これらの変数参照は数字を生成しないため、10桁を事前に計算して10変数に格納し、それらを参照することはできません-変数を埋めるコードはそうするため、これはルール6の違反です。 実際、以前の(または中間結果)を再利用することはできません。これは、生成されるコードが2桁で共有されるためです。 それ以外の場合は、数字を生成するためにあらゆる手段(純粋に数学的な必要はありません)を使用できます。(そして、あなたはすべきです!) 実際、標準ライブラリを使用して多くの異なる場所から正しい数字を引き出すことができれば、何も計算する必要はありません。 1桁の数字を生成するときに演算子を複数回使用することがあるため、2+2+2最初の数字を生成するのは公正なゲームです6(ただし、最短ではありません)。 あなたはあり、彼らがビルトインされていないため、定数、できるだけ頻繁にあなたが望むようリテラルを使用しています。したがって、印刷する必要がない限り、コード内で必要なだけs 5を使用でき5ます。 出力をハードコーディングすることはできません。出力する数字を使用する必要があるためです。 要するに、数字を2回生成する方法を使用しないでください。また、現在出力している数字や既に印刷されている数字を使用しないでください。 (準)無限のスコアを得ることができる抜け穴を見つけた場合は、それを悪用して挑戦を台無しにしないでください、しかし、私に知らせてください。 得点 最高桁数を正しく印刷するプログラムが勝ちます。同点の場合、短いコードは同点を破ります。 コードのどの部分がどの桁を生成するかを特定するコメントなしのバージョンを追加してください。 PS:誰かが上記の100桁に勝ったら、ここにもう少しあります。

4
9ホールミニゴルフ:テキスト操作[終了]
9ホールミニゴルフ:説明 さまざまな難易度の9(ほとんど簡単)コードゴルフチャレンジ 同じ言語を複数回使用した場合の罰則 特定のテーマに関するすべての課題(このテーマ:テキスト操作) 入力と出力はどこでも合理的です(つまり、STDINとSTDOUT、ファイルの読み取り/書き込み、関数の引数と戻り値など)。ただし、プログラムにハードコーディングしてはなりません。 9ホールチャレンジとテキストメカニックから大きな影響を受けた 穴 コードゴルフバッグ 入力として2つの文字列を受け取ります。 最初の文字列の文字カウントを出力しますが、2番目の文字列での文字の出現を無視します。 例:f("foobarbaz", "ao")=&gt;5 ゴルフの口実 入力として2つの文字列を受け取ります。 すべての行の先頭に2番目の文字列を付けて、最初の文字列を出力します。 例:f("foo\nbar\nbaz", "a")=&gt;"a foo\na bar\na baz" タブとスペースの戦争入力として string s、number n、およびboolean b(必要に応じて指定)を受け取ります。 場合はbtrueで、出力sのすべてのタブでは、に変換されnた空間。 そうでなければs、すべてのnスペースをタブに変換して出力します。 例:f("if (x) {\n\tdoStuff();\n}", 4, true)=&gt; "if (x) {\n[sp][sp][sp][sp]doStuff();\n}"([sp]スペースを意味します) ゴルフの柱 文字列s、数値n、および別の数値mを入力として受け取ります。各行の列および列ごとの文字で 出力sします。 また、列間に1つのスペースを埋めます。 例:=&gt;nmf("this is some placeholder text, foo bar baz...", 3, 5) this …

3
回転クインを作成する
文字列の回転は、文字列を2つの部分に分割し、順序を逆にすることで行われます。たとえば"world! Hello,"、の回転です"Hello, world!"。別の、まだ有効なプログラムを形成するためにローテーションできるプログラムを作成することは可能です。Pythonでこの例を考えてみましょう。 print ")import sys; sys.stdout.write(" 回転して形成できます import sys; sys.stdout.write("print ") それ自体が有効なpythonプログラムです。 あなたの挑戦は、それ自体の回転を出力するプログラムを書くことです。それは実行されると元のプログラムを出力します。ボーナスは、サイクル長が2を超えるエントリを指します。 これはコードゴルフで、正確なスコアリングは次のとおりです:(コードの長さ)/(サイクルの長さ-1)。 編集:私たちには勝者がいます(他の誰かがスコア4を破れない限り)!私はまだ、競合他社であるかどうかにかかわらず、他のソリューションを見ることに非常に興味があります。

17
m3ph1st0sのプログラミングパズル1(C ++)[終了]
これは、一連のC ++パズルの最初のものです。お楽しみください。 パズル1番: 次のプログラムを考えます: #include &lt;iostream&gt; int main() { const int a=1; const int b=2; const float c=0.5; std::cout &lt;&lt; a/b-a*c; } プログラム内の単一の新しい行にコードを挿入して、出力が0になるようにします。新しい行にはAT MOST 18文字(スペースを含む)が含まれ、残りの行は変更されません。明確にするために、有効な新しいコードの例を次に示します。 #include &lt;iostream&gt; int main() { const int a=1; const int b=2; int* p = NULL; const float c=0.5; std::cout &lt;&lt; a/b-a*c; } 15文字の新しい行が挿入されたため、問題ありません。ただし、問題は解決しません。 これがあなたにとって単純すぎる場合、心配しないで、もっと来ています!!

6
ウィキペディア:哲学!
多くのオタクがウィキペディアのほとんどのページ(95%と思う)を知っている可能性があるため、最終的には次のような哲学につながります。 別の通常の記事への最初の非イタリックまたはカッコ内のリンクをクリックします(つまり、File:やSpecial:ではなく、Wikipedia:のようなものでも構いません)。 スクリプトは以下を行う必要があります。 入力として最初のページを取る 到達する各記事の名前を印刷する そして、哲学にたどり着くまでにどれだけの記事を印刷したか、そうでない場合は印刷してください。 1000ポイントから開始し、コード内の各キャラクターにつき1ポイントを失います。 ループ記事の検出と停止:+50 ループする記事を検出し、ユーザーが記事の次のリンクに移動するかどうかを要求する:+170 コマンドライン引数などとして、以前のチェックでデフォルトを許可:+140 最高スコアが勝ちます。

2
ニューラルネットワークは素数を認識できますか?
バックグラウンド 素数性の認識は、(人工)ニューラルネットワークにはあまり適していないと思われます。ただし、普遍近似定理では、ニューラルネットワークは任意の連続関数を近似できるため、特に、希望する有限サポート関数を表すことができるはずです。それで、最初の100万の数の中のすべての素数を認識してみましょう。 より正確には、これはプログラミングWebサイトであるため、2 ^ 20 = 1,048,576まで進みましょう。このしきい値を下回る素数の数は82,025または約8%です。 チャレンジ すべての20ビット整数を素数または素数として正しく分類できるニューラルネットワークはどれくらい小さいでしょうか? この課題のために、ニューラルネットワークのサイズは、それを表現するために必要な重みとバイアスの総数です。 詳細 目標は、単一の明示的なニューラルネットワークのサイズを最小化することです。 ネットワークへの入力は、整数の個々のビットを含む長さ20のベクトルになり、0と1で表されるか、-1と+1で表されます。これらの順序は、最上位ビットが先か、最下位ビットが先です。 ネットワークの出力は単一の数値である必要があります。これにより、カットオフ値を超えると入力が素数として認識され、同じカットオフ値を下回ると入力が素数でないと認識されます。たとえば、正は素数を意味し(負ではなく負)、あるいは0.5より大きい場合は素数を意味します(そして0.5未満は素数ではありません)。 ネットワークは、すべての2 ^ 20 = 1,048,576の入力で100%正確でなければなりません。上記のように、この範囲には82,025個の素数があることに注意してください。(常に「素数ではない」を出力すると、92%正確になります。) 標準的なニューラルネットワークの用語では、これはおそらくオーバーフィッティングと呼ばれます。言い換えれば、あなたの目標は素数を完全に過剰適合させることです。他の言葉としては、「トレーニングセット」と「テストセット」が同じであることです。 この課題では、「トレーニング可能な」または「学習可能な」パラメータの数は考慮されていません。実際、ネットワークにはハードコーディングされた重みが含まれている可能性が高く、以下の例は完全にハードコーディングされています。代わりに、すべての重みとバイアスがパラメーターと見なされ、カウントされます。 ニューラルネットワークをトレーニングまたは生成するために必要なコードの長さはスコアに関係ありませんが、関連するコードを投稿することは確かにありがたいです。 ベースライン ベースラインとして、82,025個のすべての素数を1,804,551個の合計重みとバイアスで「記憶」することができます。 以下のこのコードには、実例、テストコード、既知のニューラルネットワークライブラリを使用したニューラルネットワークの動作定義、「ハードコード」(または少なくとも「トレーニングされていない」)ニューラルネットワーク、スコアの実際の測定。 import numpy as np bits = 20 from keras.models import Sequential from keras.layers import Dense from sympy import isprime # Hardcode some weights weights = …

10
連鎖プログラム
チャレンジ この課題では、プログラムの無限シーケンスの最初のプログラムp 1を作成します。このプログラムでは、p nを実行するとプログラムp n + 1が出力/生成されます。最初のn&gt; = 2プログラムを連結する場合、シーケンスはを出力する必要がありますn。 例 最初の4つのプログラムは次のとおりです。 p1 p2 p3 p4 私が実行した場合p1、出力されるはずです: p2 私が実行した場合p1p2、出力されるはずです: 2 私が実行p1p2p3p4した場合、出力されるはずです: 4 を実行するp4と、シーケンス内の次のプログラムが生成されます。 p5 得点 スコアは、最初の10プログラムのバイト数です。

22
再帰的な文字列置換
タスク 3つの文字列を指定してA, B, C、Binの各インスタンスがでA再帰的に置換された出力文字列を生成するプログラムまたは関数を記述しCます。再帰的に置換とは、各ステップで重複しないBinのすべてのインスタンスA(左から右に貪欲に選択)がに含まれなくなるCまで置換を繰り返すことを意味BしAます。 入出力 I / Oにはデフォルトのメソッドを使用できます。 文字列には、印刷可能なASCII文字のみが含まれます(また、それらのいずれかが含まれることもあります)。 B一方で、空の文字列になることはありませんAし、Cかもしれません。 文字列はプレーンテキストとみなされます。たとえば、扱うことはできません B。、正規表現パターンとして。 入力の一部の組み合わせは終了しません。これらの場合、プログラムは何でもできます。 テストケース これらは次の形式です。 A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 終了しない例: grow/ow/oow loop/lo/lo
25 code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

2
Palindrome-Polyglot-Quineを書く
あるプログラム:「palipolyquine」書くQUINE、ポリグロット、および回文を。 ルール: ポリグロット言語の数は、コードサイズよりも望ましいです。 同点の場合、最短回答(バイト単位)が勝ちです。 ポリグロットとクインのルールについては、ポリキンを記述してください。 私の例(私はテストのあるFreaky-Sourcesリポジトリを持っています): C#/ Java(1747バイト): /**///\u000A\u002F\u002A using System;//\u002A\u002F class Program{public static void//\u000A\u002F\u002A Main//\u002A\u002Fmain (String[]z){String s="`**?`@#_^using System;?_#^class Program{public static void?@#_^Main?_#main^(String[]z){String s=!$!,t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{!&amp;!!,!&amp;n!,!&amp;&amp;!,!&amp;@!,!&amp;#!,!&amp;_!,!`!,!?!,s};for(i=0;i&lt;9;i++)t=t.?@#_^Replace?_#replace^(!!+(char)a[i],b[i]);t+='*';for(i=872;i&gt;=0;i--)t=t+t?@#_^[i];Console.Write?_#.charAt(i);System.out.printf^(t);}}/",t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{"\"","\n","\\","\\u000A","\\u002F","\\u002A","/","//",s};for(i=0;i&lt;9;i++)t=t.//\u000A\u002F\u002A Replace//\u002A\u002Freplace (""+(char)a[i],b[i]);t+='*';for(i=872;i&gt;=0;i--)t=t+t//\u000A\u002F\u002A [i];Console.Write//\u002A\u002F.charAt(i);System.out.printf (t);}}/*/}};)t( ftnirp.tuo.metsyS;)i(tArahc.F200u\A200u\//etirW.elosnoC;]i[ A200u\F200u\A000u\//t+t=t)--i;0=&gt;i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+""( ecalperF200u\A200u\//ecalpeR A200u\F200u\A000u\//.t=t)++i;9&lt;i;0=i(rof;}s,"//","/","A200u\\","F200u\\","A000u\\","\\","n\",""\"{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,"/}};)t(^ftnirp.tuo.metsyS;)i(tArahc.#_?etirW.elosnoC;]i[^_#@?t+t=t)--i;0=&gt;i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+!!(^ecalper#_?ecalpeR^_#@?.t=t)++i;9&lt;i;0=i(rof;}s,!?!,!`!,!_&amp;!,!#&amp;!,!@&amp;!,!&amp;&amp;!,!n&amp;!,!!&amp;!{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i tni;s=t,!$!=s gnirtS{)z][gnirtS(^niam#_?niaM^_#@?diov citats cilbup{margorP ssalc^#_?;metsyS gnisu^_#@`?**`"=s gnirtS{)z][gnirtS( niamF200u\A200u\//niaM …

1
ドメイン名の評価
ドメイン名の取引は大企業です。ドメイン名の取引に最も役立つツールの1つは自動評価ツールです。そのため、特定のドメインの価値を簡単に見積もることができます。残念ながら、多くの自動評価サービスを使用するには、メンバーシップ/サブスクリプションが必要です。この課題では、.comドメインの値を大まかに推定できる簡単な評価ツールを作成します。 入出力 入力として、プログラムはドメイン名のリストを1行に1つずつ取得する必要があります。各ドメイン名はregexと一致します^[a-z0-9][a-z0-9-]*[a-z0-9]$。つまり、小文字、数字、ハイフンで構成されます。各ドメインは少なくとも2文字の長さで、ハイフンで始まったり終わったりしません。.comそれが暗示されているので、各ドメインから省略されています。 入力の代替形式として、目的の文字から整数への変換を指定する限り、文字列ではなく整数の配列としてドメイン名を受け入れることを選択できます。 プログラムは、対応するドメインの評価価格を示す整数のリストを1行に1つずつ出力する必要があります。 インターネットおよび追加ファイル 回答の一部としてこれらのファイルを提供する限り、プログラムは追加のファイルにアクセスできます。また、プログラムは辞書ファイル(有効な単語のリスト)にアクセスすることも許可されています。これは提供する必要はありません。 (編集)プログラムがインターネットにアクセスできるように、この課題を拡大することにしました。プログラムにはドメインの価格(または価格履歴)を検索できないこと、および既存のサービス(いくつかの抜け穴をカバーするために後者)のみを使用するという制限があります。 合計サイズの唯一の制限は、SEによって課される回答サイズの制限です。 入力例 これらは最近販売されたドメインです。免責事項:これらのサイトはどれも悪意があるとは思われませんが、誰がそれらを管理しているかわからないため、これらのサイトへのアクセスをお勧めしません。 6d3 buyspydrones arcader counselar ubme 7483688 buy-bikes learningmusicproduction 出力例 これらの数値は実数です。 635 31 2000 1 2001 5 160 1 得点 スコアリングは「対数の差」に基づきます。たとえば、ドメインが300ドルで販売され、プログラムが500ドルで評価した場合、そのドメインのスコアはabs(ln(500)-ln(300))= 0.5108です。ドメインの価格が1ドル未満になることはありません。総合スコアは、一連のドメインの平均スコアであり、低いスコアほど優れています。 予想されるスコアを把握するために、36以下のトレーニングデータの定数を単純に推測すると、約のスコアが得られ1.6883ます。成功したアルゴリズムのスコアはこれよりも低くなります。 値は数桁にわたるため、データは異常値で満たされるため、対数を使用することを選択しました。平方差の代わりに絶対差を使用すると、スコアリングでの外れ値の影響を減らすのに役立ちます。(また、ベース2またはベース10ではなく、自然対数を使用していることに注意してください。) 情報源 ドメインオークションのWebサイトであるFlippaから最近販売された1,400以上の.comドメインのリストをざっと見てきました。このデータは、トレーニングデータセットを構成します。提出期間が終了したら、追加の月を待ってテストデータセットを作成し、それを使用して提出物を採点します。他のソースからデータを収集して、トレーニング/テストセットのサイズを増やすこともできます。 トレーニングデータは、次の要点で入手できます。(免責事項:単純なフィルタリングを使用して、いくつかの露骨なNSFWドメインを削除しましたが、いくつかはまだこのリストに含まれている可能性があります。本当の価格。 https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5 以下は、トレーニングデータセットの価格分布のグラフです。x軸は価格の自然対数で、y軸はカウントです。各バーの幅は0.5です。左側のスパイクは、ソースWebサイトが最低5ドルの増分入札を必要とするため、1ドルと6ドルに対応しています。テストデータの分布はわずかに異なる場合があります。 0.2のバー幅を持つ同じグラフへのリンクを次に示します。このグラフでは、11ドルと16ドルの急上昇を確認できます。

6
大きな大きな数字
私の答えのいくつかをゴルフにしようとしながら、できるだけ少ない文字で大きな整数を書く必要がありました。 今、私はそれを行うための最良の方法を知っています。このプログラムを書いてもらうつもりです。 チャレンジ 正の整数を指定すると、標準出力または同等の出力を出力するプログラムを出力するプログラムを作成します。 出力プログラムは、作成者と同じ言語である必要はありません。 出力は最大で128バイトでなければなりません。 stdinまたは同等のもの(関数入力ではない)からの入力を受け入れることができます 結果のプログラムをstdoutまたは同等のものに出力できます。 数値の出力は10進数でなければなりません(基数10) 得点 スコアは、プログラムでエンコードできない最小の正の整数に等しくなります。 スコアが最大のエントリが勝ちます。

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