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

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

10
最短の一意に識別する部分文字列
文字列のリストが与えられたら、各文字列を、空でない部分文字列の1つで置き換えます。これは、リスト内の他の文字列の部分文字列ではなく、できるだけ短くします。 例 リストを考えると["hello","hallo","hola"]、"hello"ただで置き換える必要があり"e"、この部分文字列がに含まれていないとして、"hallo"そして"hola"、それはできるだけ短くしています。"hallo"いずれかで置き換えることができる"ha"か、"al"と"hola"のいずれかによって"ho"、"ol"または"la"。 ルール 文字列は空ではなく、同じ大文字と小文字のアルファベットのみを含むと想定できます。 このような部分文字列はリスト内の各文字列に存在すると仮定できます。つまり、リスト内の文字列は他の文字列の部分文字列にはなりません。 入力と出力は任意の合理的な形式にすることができます。 これはcode-golfなので、選択した言語でできるだけ少ないバイトを使用するようにしてください。 テストケース ほとんどの場合、可能な出力は1つだけです。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 関連:最短識別サブストリング -同様のアイデアですが、より複雑なルールと扱いにくい形式です。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

23
エンコード-シャッフル-デコード
チャレンジ あなたの仕事は整数をASCII文字の文字列としてエンコードし、その文字列がランダムにシャッフルされた後にそれを正常にデコードすることです。 EncoderおよびDecoderと呼ばれる2つのプログラム/関数を作成します。 エンコーダー 入力:範囲整数。nnn[ 0 、231− 1 ][0,231−1][0,2^{31}-1] 出力:文字列のアスキー文字(必ずしも印刷可能ではありません)。sss デコーダ 入力:文字列ランダムな順列。s′s′s'sss 出力:整数。nnn 得点 ましょである最大長ののすべての可能な値を横切る。エンコーダが非決定的に動作する場合(これは許可されています。以下を参照)、は発生する可能性ある最大長になります(おそらく)。AAAsssnnnAAAsss∞∞\infty してみましょうあることの長さエンコーダバイトでの長さデコーダバイトインチLELEL_ELDLDL_D スコアはです。A ⋅ (LE+ LD)A⋅(LE+LD)A\cdot(L_E+L_D) 最優秀得点の提出に対して勝利が授与されます。 制限時間 単一のテストケースのエンコーダーとデコーダーの両方の実行時間には、1分というやや任意の時間制限があります(つまり、単一の値)。nnn 目標は、特定のプロパティを持つすべてのシーケンスを列挙することにより、ブルートフォースエンコーディングを見つけるソリューションを回避することです。あなたのソリューションがそれよりも賢い何かをするなら、それはおそらく時間の制約に適合し、有効と見なされます。同様に、ランダムに選択された値に対してTIOで機能する場合、有効と見なされます。それ以外の場合は、マシンでテストしますが、ソリューションが純粋なブルートフォースの場合、ほぼ確実に失敗することに注意してください。nnn ルール エンコーダとデコーダはで記述する必要があり、同じ言語。 デコーダを出力しなければならない正しい整数あらゆる可能な順列のためのの文字列のによって返さエンコーダ。nnns′s′s'sss エンコーダとデコーダはされていないに許さ株式情報(グローバル変数やファイルによって、例えば)どのような方法インチ エンコーダーの出力は確定的である必要はありません(つまり、エンコーダーが複数回実行される場合、同じ入力は異なる出力文字列を生成する可能性があります)が、デコーダーは常に正しい整数推測する必要があります。nnnnnnn エンコーダおよびデコーダは取り、整数を返すことができるに任意の便利な方法(例えば、もしの入力がされることが結構です、または)。nnnn = 14n = 14n=14n=1414"14"[1,4] エンコーダ出力してもよいストリングのいずれかによって印刷の上にまたはによって返却文字列を、文字のリスト/配列または範囲内の整数のリスト/配列。そのノートデコーダは、入力としての順列受け取るで返されるエンコーダがストリング受け入れるべきであるので、において同じフォーマットとして。sss[ 0 、127 ] S 、S 'のstdout [ 0 、127 ][0,127][0,127]ssss′s′s'sss 標準的な抜け穴は禁止されています。 可能であれば、コードの仕組みと、主張するスコアが正しい理由を説明してください。 例 と仮定します。n = …

13
100バイト未満で成長が最も遅い関数を作成します
あなたの仕事は、成長が最も遅い関数を100バイト以内で作成することです。 プログラムは、入力として非負の整数を受け取り、非負の整数を出力します。プログラムをPと呼びましょう。 次の2つの基準を満たす必要があります。 ソースコードは100バイト以下である必要があります。 すべてのKに対してNがあり、n> = NごとにP(n)> Kになります。つまり、lim (n->∞) P(n)=∞です。(これが「成長する」ことの意味です。) 「スコア」は、プログラムの基礎となる機能の成長率です。 より具体的には、プログラムPは、すべてのn> = N、P(n)<= Q(n)のようなNがあり、P(n )<Q(n)。どちらのプログラムも他のプログラムより優れている場合、それらは結び付けられます。(本質的に、どのプログラムが遅いかは、lim (n->∞) P(n)-Q(n)の値に基づいています。) 最も遅い成長関数は、前の段落の定義に従って、他のどの関数よりもゆっくり成長する関数として定義されます。 これはgrowth-rate-golfであるため、最も遅い成長プログラムが勝ちます! ノート: スコアリングを支援するために、プログラムが計算する関数を答えに入れてみてください。 また、(理論的な)入力と出力をいくつか入れて、どれだけ時間がかかるかを人々に教えてください。

14
コードを再利用してください!
この課題では、2つの重要な問題を一度に解決しようとします。彼らです: 整数aおよびbを指定すると、a b -1が素数であるかどうかがわかります。 整数aおよびbを指定すると、nCr(a、b)を返します。 具体的には、2つのプログラムを作成する必要があります。1つは最初のタスクを実行し、もう1つは他のタスクを実行します。両方の問題を一度に解決したいので、両方のプログラムで同じコードを使用することをお勧めします。 得点 回答のスコアは、2つのプログラム間のレーベンシュタイン距離です。スコアが低いほど優れています。同点の場合、2つのプログラムの最短の組み合わせコードでの答えが勝ちです。このスクリプトを使用して、ソリューションのスコアを計算できます。 ルール 上記のタスクを解決する2つのプログラムを同じ言語で作成する必要があります。任意のI / Oメソッドを使用できます。タスク1では、真偽値を返すか、2つの値を選択してtrueとfalseを意味し、それに応じて返すことができます。例えば。あなたはそれが"prime"真を"not prime"意味し、偽を意味することを選ぶことができます。 使用するアルゴリズムは、可能なすべての入力に対して機能する必要がありますが、使用される数値タイプの制限のために大きな数値に対してコードが失敗しても問題ありません。入力が有効であると想定できます。 プログラムのどのサブセットも問題を解決してはなりません。文字が削除された場合、コードは機能しません。たとえば、次のコードは無効です。プログラムを中断せずに未使用のelse-blockを削除できるためです。 if (1) { /* change to 0 to get the second program*/ ... } else { ... } 標準の抜け穴は許可されていません。 テストケース a b -1は素数ですか? a b 1 1 false 2 3 true 5 2 false 2 …

28
長い列に立ち向かう
最近、誰かがPythonのデフォルトの行長により厳しい制限を提案しました: 明らかに、多くの理由から、プログラムは1行あたり80文字を超えて使用してはなりません。何よりもまず、読みやすさと保守性のために、堅実な標準を持つことが重要です。そのため、テキストエディターの幅を適切に調整できます。副次的な利点として、制限のあるメディアにコードを簡単に転送できます。また、会議でのレビュー用の印刷ページやパンチカードなど、改行の追加が邪魔になることがあります。 しかし、80文字は高すぎますか?80文字幅の端末を行番号専用の数列のコードに適合させるために、79、または75程度の低さを提案する人もいます。明らかに、最終的には、より低い制限のほうが、より多くの状況でコードを再フォーマットせずに使用できるようになるため、より良いです。 max6標準の紹介 あなたの目標は、任意の行の文字数が最も少ないFizzBu​​zzバリアントを作成して、お気に入りの言語に必要な最小行長を見つけて実証することです。 入力 任意の方法による整数n。 出力 1から番号を印刷N、(N ≥1、N ∈ℤ)改行で区切られた、除きます。 3の倍数の印刷「アップル」 5の倍数の印刷「パイ」 3と5の両方の倍数の「ApplePie」印刷用 得点 改行(Cr、CrLf、Lf、またはその他のシステム標準の区切り、必要に応じて指定)を含まない最大行長(バイト)、およびタイブレーカーとしての合計コード長(バイト)。 ルール すべての改行は意味のあるものでなければなりません。出力に影響を与えずに削除できる改行および隣接する行を直接連結する場合は、削除する必要があります。

2
このサイトでは、熱力学の法則に従います!
そして特に第2の法則:孤立システムのエントロピーは時間とともに増加します。 この挑戦のために、 「分離されたシステム」は、プログラムまたは機能(以降、「プログラム」と略す)と見なされます。 「time」の経過は、プログラムの出力の繰り返し実行に対応し、新しいプログラムと見なされます。 「エントロピー」は、シャノンの1次エントロピー(以下で定義)として解釈されます。これは、文字列の文字の多様性の尺度です。 チャレンジ プログラムは、同じ言語のプログラムとして実行されたときに、前のものよりもエントロピーの多い文字列を生成する空でない文字列を生成する必要があります。この出力実行プロセスを無限に繰り返すと、エントロピー値の厳密に増加するシーケンスが生成される必要があります。 文字列には、Unicode 9.0文字を含めることができます。文字列のシーケンスは(ランダムではなく)確定的でなければなりません。 特定の文字列のエントロピーは、次のように定義されます。一意の文字と文字列内の出現回数を特定します。i番目の一意の文字の頻度p iは、その文字の出現回数を文字列の長さで割ったものです。エントロピーは ここで、合計は文字列のすべての一意の文字に対するものです。技術的には、これは、文字列で観測される周波数によって与えられる分布を持つ離散確率変数のエントロピーに対応します。 LET H K示すにより作成された文字列のエントロピーのk番目のプログラム、およびlet H 0意味を初期プログラムのソースコードのエントロピーを。また、L 0で初期プログラムの長さを文字で示します。シーケンス{ H k }は、チャレンジ要件に従って単調であり、制限されています(既存の文字の数が有限であるため)。したがって、H H∞という制限があります。 スコア提出は(なりH ∞ - H 0 /)L 0: 分子、H ∞ - H 0は、無限時間のスパンでエントロピーを増やすどの程度あなたのコード「従う」の法律に反映されます。 denonimator、L 0は、文字単位の(バイト単位ではない)初期コードの長さです。 最高スコアのコードが勝ちます。関係は、最も早い提出/編集を支持して解決されます。 文字列のエントロピーを計算するには、この投稿の最後でJavaScriptスニペット(@flawrの提供および@Dennisと@ETHproductionsによる修正)を使用できます。 制限を取得する場合はH ∞があなたの特定のケースでは困難であり、あなたは、任意の下限を使用することができ、言うH 20((あなたが使用してスコアを計算するために、H 20 - H 0)/ L 0)。ただし、いずれにしても、エントロピーの無限シーケンスは厳密に増加している必要があります。 明らかでない場合は、エントロピーのシーケンスが増加しているという説明または簡単な証拠を含めてください。 例 架空の言語では、コードを検討しaabcab、実行には、文字列生成、cdefgh実行が発生し、cdefghi... …

2
言語を推測する
前書き このサイトはコードスニペットの巨大なデータセットを急速に構築しているので、それで何かをしましょう! これがデータファイルです。このサイトから取得した113言語の9,066の一意の言語とスニペットのペアが含まれています。形式はタブで区切られ(language-TAB-snippet)、スニペットのすべての改行がに置き換えられ<LF>、すべてのタブが4つのスペースに置き換えられます。各言語には少なくとも5つのスニペットがあります。 [更新:以前見逃していたPythonとRegExpのいくつかのバージョンをマージするために、データファイルに小さな変更を加えました-上記のリンクが更新されました] チャレンジ コードスニペットを取得し、記述された言語を出力するプログラムまたは関数を作成します(詳細については以下を参照)。ソース+必要なデータの合計サイズは300バイト以下である必要があり、プログラムは独自のソースコードが与えられたときに正しい言語を出力する必要があります。最高の精度(上記のデータセットで最も正解)が優先されます。 ルール ソースコード、リソース、および必要なコンパイル/ランタイムフラグの合計サイズは300バイトを超えてはなりません。 回答は上記のデータセットに対してテストされます。入力として「スニペット」値の1つが与えられ、その出力がデータセットに従って「正しい」出力と比較されます。これはデータセット内のすべてのエントリに対して繰り返され、正解の最終的な数がスコアになります。 入力エンコーディングを選択できます。UTF-8を想定していますので、別のエンコーディングが必要な場合は回答で指定してください。 <LF>改行に代わるものを使用する必要はありません。エントリがリテラル改行(char 10)として改行を受け取ることを期待している場合は、回答でそれを指定します。 エントリは、入力スニペットが記述されていると思われる言語を出力する必要があります。多くの言語文字列を圧縮する必要を避けるため、マッピングを許可します(「Java」の3を出力する場合は問題ありません)。回答のマッピングに注意してください。 各言語に対して1つの出力マッピングのみを使用できます(つまり、3が「Java」を意味する場合、4は「Java」を意味することもできません)。 独自のソースコードを与えられたとき、あなたのプログラムがなければなりません正解(必須出力は、記述されている言語)を生成します。 データセット内のすべての言語をサポートする必要はありません。必要に応じて、追加の言語をサポートできます(たとえば、エントリがデータセット内の言語のいずれでもない場合)。 プログラムは確定的である必要があります(同じ入力を2回提供すると、同じ出力が生成される必要があります)。 タイブレーク 関係は、1つのエントリが勝つまでデータセットを減らすことによって決定されます。データセットは、最も一般的な言語のすべてのスニペットを削除することで削減されます(つまり、まれな言語の精度によって関係が壊れます)。たとえば、完全なデータセットでAとBのスコアが70%の場合、すべてのPythonスニペットが削除されます。AとBの両方が60%を獲得した場合、CJamは削除されます。Aのスコアが50%で、Bのスコアが55%の場合、Bが勝者です。 100%の精度が達成された場合、同じ言語のより多くのサンプルを含む2番目の(ブラインド)データセットを使用して、同順位が決定されます。 例1 Pythonスクリプト: print("python") このスクリプトは、独自のソースコードを指定すると「python」を正常に生成するため、有効です。データセットでは、スコア1008/9066 = 11.1% 例2 JavaScript関数: function f(s){return /function/.test(s)?1:2} マッピング1→javascript、2→python。ここでも、独自のソースに対して1(「javascript」)が正常に生成され、データセットでは1092/9066 = 12.0%のスコアが付けられます。 データはどこから来たのですか? このサイトの[code-golf]チャレンジからサンプルを取得するSEDEクエリを作成しました。結果の10,000件の回答から、ハッキングされたpythonスクリプトを使用してそれぞれのコードと言語名を見つけ、5つ未満の例ですべての言語を除外しました。データは100%クリーンではありませんが(プルしたコード以外のスニペットがあることは知っています)、十分に良いはずです。 今年の初めからこの課題に触発された:誰が言ったの?2016年大統領選挙 一部は言語とは何か?

15
幾何学的な挑戦
誰もがジオメトリを愛しています。では、なぜゴルフをコーディングしてみませんか?この課題には、文字や数字を取り入れ、それに応じた形を作ることが含まれます。 入力 入力はの形式になり(shapeIdentifier)(size)(inverter)ます。 しかし、shapeIdentifier、サイズ、およびインバーターは何ですか? 形状識別子は、*s で作成する形状のタイプの識別子です。形状識別子は次のとおりです。 s - 平方 t -三角形 サイズはの間1-20になり、それは図のサイズです。 インバーターは、形状が逆さまになるかどうかであり、a +またはaで示され-ます。注: s3-==(等しい)s3+正方形は対称であるため。ただし、t5-!=(等しくない)t5+。 出力では末尾の空白は問題ありませんが、先頭の空白はそうではありません。 出力例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特記事項 三角形の入力は常に奇数になるため、三角形は常に*上部が1 で終わります。 三角形のサイズは、インバーターの場合は底辺 +のサイズであり、インバーターの場合は上部のサイズです-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

3
ピタゴラスの三角形の積み重ね
バックグラウンド ピタゴラスの三角形は、各辺の長さが整数である(つまり、辺の長さがピタゴラスのトリプルを形成する)直角三角形です。 この三角形の辺を使用して、次のようにさらに2つの一致しないピタゴラスの三角形を添付できます。 2つの三角形がオーバーラップせず、接続する辺の長さが等しい限り、フィットするようにこのパターンを続行できます。 問題は、与えられた空間にいくつの合同でないピタゴラスの三角形を収めることができるかということです。 入力 あなたは、2つの入力として整数、受信するWとH、関数の引数によって、STDIN、文字列、または何でもあなたが好きなの。整数は、10進数、16進数、2進数、単項(幸運、Retina)、またはその他の整数ベースとして受け取ることができます。あなたはそれを仮定するかもしれませんmax(W, H) <= 2^15 - 1。 出力 プログラムまたは関数は、重複しない接続された一致しないピタゴラスの三角形のリストを計算し、それぞれ3つの座標のセットのリストを出力する必要があります。座標は、空間内の実数であるx必要があり(間隔内にあり、間隔内[0, W]にあるy必要があります[0, H])、距離は機械の精度に対して正確でなければなりません。三角形の順序と各座標の正確な形式は重要ではありません。 1つの三角形から、接続された境界をステップオーバーするだけで他の三角形に「歩く」ことが可能でなければなりません。 上記の図を例として使用して、入力をとW = 60しH = 60ます。 出力は次の座標リストになります。 (0, 15), (0, 21), (8, 15) (0, 21), (14.4, 40.2), (8, 15) (0, 15), (8, 0), (8, 15) (8, 0), (8, 15), (28, 15) (8, 15), (28, …

8
印刷可能なASCIIに関連する多作の完全なパングラムプログラム
更新:時間制限が削除されました。出力を記述することができる必要があります-新しいルールを参照してください。 パングラムはのような、少なくとも一度アルファベットのすべての文字を使用する文です。 速い茶色のキツネは怠laな犬を飛び越えます。 完璧なパングラムは正確に一度、すべての文字を使用しています。 95個の印刷可能なASCII文字(16進コード20から7E)をアルファベットとして使用して、完璧なパングラムであるプログラムの作成を検討してください。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ このようなプログラムには、正確に95文字が含まれている必要があり、各印刷可能なASCII文字は1回だけ、ただし任意の順序で発生します。(したがって95!= 1.03×10 148の可能性があります。) あなたの仕事は、stdoutに印刷される印刷可能なASCII文字の数が可能な限り多くなるように(つまり多作になるように)このプログラムを書くことです。 スコアは、プログラムが出力する印刷可能なASCII文字の数です(明確な量ではなく、合計量:スコア4対スコア3)AABCABC。最高のスコアが勝ちます。 詳細 出力には任意の文字(重複を含む)が含まれる場合がありますが、95個の印刷可能なASCII文字のインスタンスのみがスコアにカウントされます。 このJSFiddleを使用して、文字列内の印刷可能なASCII文字の数をカウントできます。 言語にstdoutがない場合は、最も適切な代替手段を使用してください。 あなたのプログラム... 有限のランタイムが必要です(時間制限は削除されています) 出力が有限でなければならない コメントを含めることができます (キャッチされない)エラーなしでコンパイルおよび実行する必要があります 入力を促したり、入力したりしてはいけません 時不変で決定論的でなければならない 外部ライブラリを使用しないでください ネットワーク接続を必要としないでください 外部ファイルを使用してはいけません (ファイル名を変更してもプログラムの動作が変わらない限り、プログラムファイル自体を使用できます) このタスクが不可能な場合、言語があまりにも悪いです。 投稿に収まるには大きすぎる場合は、正確な出力を提供するか、正確に説明する必要があります。実際にプログラムを実行する必要はありません。限り、それはようですそれが有効であるメモリの無限の量をコンピューターに有限の時間で実行されます。 例 この単純なPython 2プログラムは、可能な解決策です。 print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~ 987654321010個の印刷可能なASCII文字を含む10個のスコアを出力します。

15
ユニークなキャラクターを控える
それは非常に簡単です:プログラムまたは関数は次のテキストを生成する必要があります。 Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look. 細字 出力を文字列として返すか、それをSTDOUT(または最も近い代替)に出力するプログラムまたは関数を作成できます。オプションで、出力に単一の末尾の改行を含めることができます。 得点 コードのバイト数にコードの一意のバイト数を掛けたもの 最低スコアが勝ちます。 たとえば、ここでは、乗数が非常に低い(それぞれ8と3)ため、ブレインファックまたはホワイトスペースの回答には大きな利点があります。ただし、一般に、これらの言語でプログラムを作成すると、コードが非常に長くなり、その利点が無効になる場合があります。 もはや面白くない標準的な抜け穴は禁止されています。

5
リートから英語への翻訳
あなたの課題は、(英語の)leetspeak / lolspeak / txtspkを通常の英語に翻訳するプログラムを書くことです。ご使用の言語がこれらをサポートしていない場合を除き、プログラムは標準入出力から標準出力に読み込む必要があります。 新しい行で区切られた英語の単語のリストを含むファイルを使用できます。呼び出す必要がWあり、プログラムと同じディレクトリに配置されます。(GNU / Linuxシステムおよびおそらく他のシステムではW、リンクを作成できます/usr/share/dict/words)リストはすべて小文字である必要はなく、単語を大文字にするかどうかを判断するために使用できます。 これは、Nikos M.によって投稿された、現在削除されている質問に基づいています。この元の質問は閉じられており、回答を受け取らなかったため、これは重複ではありません。これは、勝者の基準がなく、ユーザーがそれを入力したくないためです。 得点 得点は少し複雑です! あなたのスコアは (leet items + bonuses) * 10 / (code length) 最高スコアが勝ちます。 あなたのプログラムは必ずしもそうである必要はなく、おそらく完璧ではありませんが、それが正確であるほど、より多くのボーナスが得られます! 以来$、両方を意味することができますsとS、あなたはそれが大文字(文章の開始時、すなわち大文字)を持つべきであるかどうかを決定するためのすご腕の項目ごとに5ポイントのボーナスを得ます。 適切な名詞(常に大文字の単語)を実装すると、リートアイテムごとに5ポイントのボーナスが追加されます-これが機能する方法は、単語リストに目を通し、リスト、両方のバージョンが存在する場合は、単に推測します。 文字に2つの意味がある場合(例:または1を意味できる)、リートアイテムごとに20ポイントを獲得します。実際の英語の単語を作成するアイテムの翻訳のみを選択すると、ワードリストを使用できます。リートアイテムの複数の翻訳が実際の英語の単語を作成する場合、有効な翻訳の1つを任意に選択しても、ボーナスを受け取ることができます。LI リートのリスト これらは、実装できるリートアイテムです。すべてを実装する必要はありませんが、追加するほどポイントが増えます。 アイテムやキャラクターを自分自身に翻訳してポイントを獲得することはできません。この規則は、リストで私が犯したかもしれない間違いを無効にします。 単純なtrまたはを行うのは魅力的s/.../.../gです。本当の課題は、単語リストを使用して、複数の意味のどれが正しいかどうかを判断することです。 リートアイテム(これらはそれぞれleet items式に1を追加します) $-> s、S (-> c、C 5-> s、S @-> a、A 4-> a、A 3-> e、E 7-> t、T +-> t、T #-> …

4
ROT-47にROT-47…を実装
課題:ROT-47を、それ自体とROT-47バージョンの両方として機能するコードに実装します。 得点: スコアは、両方のバージョンの合計バイト(すべての文字)で割った、プログラムの両方のバージョンの合計で使用されるROT-47適格バイトの割合として計算されます。 使用し、ROT-47適格バイトがないROT-47暗号によって変換されるだろう任意の文字で、コメントの一部またはコンパイラ/インタプリタでは無視されます。たとえば、brainfuckプログラム内の文字ではない+-<>[],.文字は使用済みバイトとは見なされず、Cプログラム内の文字を含む//またはその前後の文字は/* */使用済みバイトとは見なされません。APLのすべての特殊記号は、ホワイトスペースプログラムのすべての文字と同様に、使用されているとは見なされません(申し訳ありません)。 最も多くの賛成票を獲得したプログラムは、関係を壊します。同点の場合は、最短のプログラムが勝ちます。 スコアリングの例: C:62/64 = 96.875% このプログラムにはスペースがあります。明らかに、このプログラムはコンパイルさえできないため、有効なエントリではありませんが、スコアリングの仕組みを示したかったのです。 main(){printf("Hello World!");}

3
15パズルを解く(タイルスライドパズル)
15パズルは、4x4グリッド上で15個のタイルをスライドさせる有名なパズルです。ランダムな構成から始めて、目標はタイルを正しい順序に並べることです。解決された15パズルの例を次に示します。 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 パズルの各動きは、上/下/左/右の形式です。「下へ」の移動は、空のスポットの上にあるタイルを下にスライドさせることで構成されます。「右」の動きは、タイルを右にスライドさせて空の場所に入れることです。下と右に移動した後のボードの外観は次のとおりです。 01 02 03 04 05 06 07 08 09 10 11 13 14 15 12 このチャレンジの目標は、15パズルを解くために必要な一連の動きを出力できるプログラムを書くことです。勝者は、5つのテストケース(以下)を最小の合計移動で解決するプログラムです。生成されたソリューションは完全なソリューションである必要はなく、競合他社よりも優れている必要があります。個々のテストケースごとに、プログラムは適切なマシンで10秒以上かかることはありません。 あなたのプログラムは解決可能なパズルを解くことができなければなりません、私はこれらの5つのテストケースを採点として使用しています。 プログラムは、未解決の15パズルを2D配列の形式で入力として受け取ります。2D配列は、使用する言語に従ってフォーマットするか、言語に2D配列がない場合は変更できます。最初のサブ配列の最初の要素は左上の数字になり、最初のサブ配列の最後の要素は右上にある数字になります。A 0は空のスペースになります。 出力として、プログラムは移動のリストを実行する必要がある順序で印刷する必要があります。結果の使いやすさを高めるために、各ステップに番号を付ける必要があります。 編集:コメントに基づいて、出力をDown / Up / etcの形式または移動するピースの座標の形式にすることができます。これはコードゴルフではないので、最も重要な部分はパズルを解くことです。 他の一般的な規則には、外部ソースの使用などが含まれないものがあります。 テストケース1 ([5,1,7,3],[9,2,11,4],[13,6,15,8],[0,10,14,12]) 出力例: 1: Down 2: Down …

13
ロングタイプの署名を作成する
チャレンジ 最長のタイプシグネチャを持つ最大100バイトの式を見つけます。 ルール 型推論を持つ静的型付け言語はすべて許可されます 型は曖昧でない必要がありますが、定義されたインスタンスのない型を含めることができます。例えばNum [a]とEq [a]も定義されたインスタンスなしに、許可されています STDIN / STDOUTを使用してプログラムをコンパイルするために最低限必要な以外のインポートはありません 無限型は許可されていません 回答に複数の表現がある場合、スコアに貢献できるのは1つだけです。たとえば、作曲のタイプシグネチャは(.) :: (b -> c) -> (a -> b) -> a -> c20のスコアですが、25コピーの回答(.)\nのスコアは500ではなく20です。 式は最大100バイトでなければなりません スコアは、関数の名前と空白を除く、タイプシグネチャの文字数です。たとえばf :: (a -> b) -> a -> b、12のスコアがあります 最高のスコアが勝ちます! 例 他の言語も使用できますが、次の例はHaskellにあります。 Score: 112 map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map f :: (a -> b) -> [[[[[[[[[[[[[[[[[[[[[[[[[a]]]]]]]]]]]]]]]]]]]]]]]]] -> [[[[[[[[[[[[[[[[[[[[[[[[[b]]]]]]]]]]]]]]]]]]]]]]]]] Score: …

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