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

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

7
最小セットを見つける
三組考えてみましょうA、BとCそれぞれ含むn整数。これからセットを作ることができます S_n = {a * b + c | a in A, b in B, c in C}. が与えられると、選択されたセットに依存するn1つ以上の最小サイズがS_nありますA,B and C。 セットには、n個別の整数(正、ゼロ、または負)を含めることができます。たとえば、それらが連続した整数である必要も、セットが互いに等しい必要もありません。 A = {-1, 0, 5, 10, 27}, B = {2, 5, 6, 10, 14} and C = {-23, 2, 100, 1000,10000}たとえば、(良いアイデアではありませんが)許容されます。 仕事 タスクは、fromからtoまでのS_nそれぞれで可能な最小のセットを見つけるためのコードを記述することです。 n120 毎nから1の20コード出力が選択されなければならないA、BとCの得られた大きさに伴ってS_n スコア スコアは、S_n作成したサイズの合計になります。つまり、20個の数字の合計になります。 スコアが低いほど良い。 …

1
ASCIIアートを生成する
入力として合理的なロスレス形式の白黒画像が与えられた場合、可能な限り入力画像に近いASCIIアートを出力します。 ルール 改行とASCIIバイト32-127のみを使用できます。 入力画像はトリミングされ、画像の周囲に余分な空白がないようにします。 提出は、5分以内にスコアリングコーパス全体を完了することができる必要があります。 生のテキストのみが許容されます。リッチテキスト形式はありません。 スコアリングで使用されるフォントは20ポイントのLinux Libertineです。 出力テキストファイルは、以下で説明するように画像に変換される場合、入力画像と同じサイズである必要があり、いずれかのサイズで30ピクセル以内に収まります。 得点 これらの画像はスコアリングに使用されます: ここから画像のzipファイルをダウンロードできます。 このコーパス用に提出を最適化するべきではありません。むしろ、同様の寸法の任意の8つの白黒画像に対して機能するはずです。投稿がこれらの特定の画像に最適化されていると思われる場合、コーパス内の画像を変更する権利を留保します。 スコアリングは次のスクリプトを介して実行されます。 #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 # requires Linux Libertine fonts - get them at https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/ # requires dssim - get it at https://github.com/pornel/dssim import PIL import PIL.Image …

1
(ソフトウェア)モデムを作成してください!
目的 デザインのMo dulator / DEM odulatorペアできるだけ早く以上のシミュレートとして正確に伝達するデータへの電話サービス(POTS)を。 手順 ランダム(/dev/random送信に3〜4秒かかるまたは同様の)データをします。 変調器でデータを変調して、音声ファイルを生成します POTSシミュレーターを介してオーディオファイルを渡す。Python / Scipyがない場合は、フォームでファイルをアップロードするか、JSON APIリクエストを実行できます。 オーディオファイルを復調してバイナリデータに戻す 入力と出力が等値*であることを検証します(1000ビットごとに1つが破損する可能性があります) スコアは、送信されたビット数をオーディオファイルの長さ(ビット/秒)で割ったものです。 ルール 入力ファイルは3〜4秒、44.1 kHz、モノラルでなければなりません。 30 dBのSNRでシミュレーターを実行します(デフォルト) 復調器は、送信されたデータを10 -3以下のビット誤り率で再構築する必要があります(1000ビットあたり1)ます。 デジタル圧縮は許可されません(つまり、データを圧縮します。これは課題の範囲外です)。 4 kHzを超える周波数にデータを押し出そうとはしません。(私のフィルターは完全ではありませんが、比較的少ないタップ数でPOTSに似ています。) モデムプロトコルが受信機を同期/キャリブレーションするために短いプリアンブル(1秒以内)を必要とする場合、ペナルティは課されません。 可能であれば、ビープ音とブープ音の不協和音を聞くことができるように、アクセス可能なオーディオファイルをホストしてください。 例 これは、簡単な「オン/オフキーイング」(オーディオサンプルが含まれています!)による変調/復調を示すノートブックの例です。 スコアは100(ビット/秒)になります。はるかに悪い5 dB SNRで送信していることに注意してください。

1
カニンガムチェーンのカウント
素数は常に人々を魅了してきました。2300年前、ユークリッドは彼の「要素」に書いた 素数とは、単位だけで測定されるものです。 つまり、素数は1(またはそれ自体で)割り切れるだけです。 人々は常に素数間の関係を探しており、(「面白い」のような)かなり奇妙なものを思いついてきました。 たとえば、Sophie Germainプライムは、プライムpで2*p+1もあるプライムです。 安全素数は素数であるpそのため(p-1)/2正確ソフィー・ジェルマン素数の下位条件である、また、素数です。 これらは、この課題で私たちが探しているものに関連しています。 A カニンガムチェーンタイプの私は最後のものを除くすべての要素がある素数のシリーズです、ソフィー・ジェルマン素数と、最初のものを除くすべての要素がある安全素数。このチェーンの要素の数は、その長さと呼ばれます。 これは、プライムから始めてp計算することを意味しますq=2*p+1。qが素数である場合、長さ2のタイプIの Cunnighamチェーンがあります。次に2*q+1、次の生成された数が合成されるまでテストなどを行います。 タイプIIのカニンガムチェーンは、ほぼ同じ原理に従って構築されますが、唯一の違い2*p-1は各段階で確認することです。 Cunninghamチェーンの長さは1です。つまり、2 * p + 1も2 * p-1も素数ではありません。これらには興味がありません。 カニンガムチェーンの例 2長さ5のタイプIのチェーンを開始します。 2, 5, 11, 23, 47 次に構築される数95は、素数ではありません。 これはまた、以下のことを教えてくれる5、11、23および47タイプのいずれかのチェーンを開始していない私を、それが要素に先行する必要があるため、。 2また、長さ3のタイプIIのチェーンを開始します。 2, 3, 5 次はで9、これは素数ではありません。 11タイプIIを試してみましょう(以前にタイプIから除外しました)。 さて、21次は、素数ではないので、この「チェーン」の長さは1になりますが、このチャレンジではカウントしません。 チャレンジ n入力として数値を指定すると、少なくとも長さ2のタイプIまたはIIのn番目のカニンガムチェーンの開始番号を書き込み/返すプログラムまたは関数を記述し、その後にスペース、それに続くチェーンのタイプ(IまたはII)、その後にコロン、その後にそのタイプのチェーンの長さが続きます。プライムが両方のタイプのチェーン(タイプI およびタイプII)を開始する場合、タイプI のチェーンが最初にカウントされます。 例: 2 I:5 nこれは、以前に開始された任意のタイプのチェーンの一部である可能性があることに留意してください。その場合、そのタイプのチェーンの開始番号と見なされるべきではありません。 これがどのように始まるのか見てみましょう から始め2ます。これは最初の素数であるため、を含む下位の素数で始まるチェーンがないことを確認できます2。 タイプIのチェーン内の次の数は次のようになります2*2+1 == 5。5素数なので、少なくとも長さ2のチェーンが既にあります。 これを最初のチェーンとしてカウントします。タイプIIはどうですか?次の番号はになります2*2-1 …

1
トラックを荷造りするのに必要なロボット・ローディ
バンドのローディーとして、トラックを梱包する必要があります。プログラムは、最小の高さに収まるようにパッケージを配置します。 ひどく詰まったトラック ルール パッケージは90度の倍数で回転できます。パッケージは接触する場合がありますが、重なってはなりません。 出力は(ファイルまたはstdoutへの)再パックされたイメージです。プログラムは、任意の入力または出力ラスター画像形式を使用できます。 プログラムは、最大4000x4000ピクセルの画像でさまざまな形状のパッケージをいくつでも受け入れなければなりません。このテストイメージ用にハードコーディングしないでください。提出物がこの特定の画像に合わせて調整されていると思われる場合は、新しいテスト画像に置き換える権利を留保します。 スコア スコアは、配置を含む四角形の最小の高さです(幅は入力四角形の幅です)。同点の場合、最も早いエントリーが勝ちです。 通常の標準的な抜け穴は禁止されています。

2
行って星空にする
このコンテストでは、白​​黒のピクセル画像を受け入れ、変更を試みて、できるだけ少ない変更で白色の形状が星の領域を形成するようなプログラムを作成する必要があります。 許可される変更は、白いピクセルを黒いピクセルに変え、黒いピクセルを白いピクセルに変えることです。 出力も同じ画像で構成されている必要がありますが、今回はすべての変更があり、中央にマークが付いています。白から黒に変更されたピクセルは青で表示され、黒から白に変更されたピクセルは黄色で表示され、少なくとも1つの中心ピクセルは赤で表示されなければなりません。(正確な色はあなた次第です。)プログラムは、指定された画像と加えられた変更の総数を出力する必要があります。 定義 スタードメイン 画像の白いピクセルのセットは、(少なくとも)中央に 1つのピクセルがある場合(そしてその場合のみ)、スタードメインを表します。中心画素は、によってconnecedすることができる白画素の1つであり、直線ラインが白画素のみを通過するように、他の白画素の全てに。(したがって、中心ピクセルは必ずしも一意ではありません。) 2つのピクセル間の直線 (開始および終了は、以下の図の両方赤)2つの画素所与、straigth線二つの画素間の全ての画素からなり、そのタッチ(数学下図で黄色)線最初の中心から導くこと最後のピクセルの中心へのピクセル。ピクセルが角に接している場合、ピクセルはラインに接触していないため、ピクセルがピクセルラインに属するためには、(数学的な、黄色の)ラインが問題のピクセルをゼロ以外の長さで横切らなければなりません。(コーナーポイントのみに触れる場合、これは長さゼロと見なされます)。以下の例を検討してください。 例 最初の画像は、テストケースの「入力」の例を表し、他の2つの画像は、与えられた例の2つの有効な出力を表します。 黄色の領域(以前は黒)も「白」の領域にカウントされ、青色の領域(以前は白)は領域外の「黒」の部分にカウントされ、赤い点は毎回1つの可能な中心ピクセルを表します。 テストケース 次のテストケースは、それぞれ256 x 256ピクセルのサイズのpngです。 得点 次のテストケースでプログラムを実行し、回答に出力(イメージ/変更の数)を含めてください。各テストケースのリーダーボードを作成します。スコアはリーダーボードの各ランキングの合計になります-スコアが低いほど良いです。標準の抜け穴が適用されます。プログラムにこれらのテストケースを認識させ、それらの特別なケースを実行させることは許可されていません。(これらの各テストケースの最適な中心ピクセルを事前に計算して保存することはできません。)プログラムはすべての画像に対して機能するはずです。 リーダーボード Name | Score | 1 - rk | 2 - rk | 3 - rk | 4 - rk | 5 - rk | 5 - rk | Total Changes ------------+-------+------------+------------+------------+------------+------------+------------+-------------- …

3
プロパティXなしで最高スコアのマトリックスを見つける
この課題は、一部はアルゴリズムの課題、一部は最適化の課題、一部は単に最速のコードの課題です。 巡回行列は、最初の行で完全に指定されrます。残りの行はr、行インデックスに等しいオフセットを持つ行の各循環順列です。正方形ではない巡回行列を許可するため、最後の行の一部が欠落しているだけです。ただし、行数は列数以下であると常に想定しています。たとえば、次の3行5列の巡回行列を考えます。 10111 11011 11101 行列に同じ(ベクトル)合計を持つ非同一のインデックスを持つ2つの空でない列のセットが含まれている場合、行列はプロパティXを持つと言います。2つの列のベクトル和は、単純に2つの列の要素ごとの合計です。つまり、x要素を含む2つの列の合計は、それぞれx要素を含む別の列です。 最初の列と最後の列が同じであるため、上記のマトリックスにはプロパティXがあります。単位行列にプロパティXが含まれることはありません。 上記のマトリックスの最後の列を削除するだけの場合、プロパティXを持たず、4/3のスコアを与える例が得られます。 1011 1101 1110 タスク タスクは、エントリがすべて0または1で、プロパティX を持たない最高スコアの巡回行列を見つけるコードを記述することです。 スコア スコアは、列の数を最適なスコアマトリックスの行数で割ったものになります。 タイ・ブレーカー 2つの回答のスコアが同じ場合、最初に提出された方が勝ちです。 無制限のスコアを取得する方法を誰かが見つけた(非常に)まれなイベントでは、そのようなソリューションの最初の有効な証明が受け入れられます。可能性がさらに低い場合、有限行列の最適性の証明を見つけることができるので、もちろん勝利も授与します。 ヒント 12/8のスコアを取得するのはそれほど難しくありません。 言語とライブラリ 自由に利用できるコンパイラー/インタープリター/などがある言語ならどれでも使用できます。LinuxおよびLinuxでも自由に利用できるライブラリ用。 主要なエントリー 36/19 by Peter Taylor(Java) Suboptimus Primeによる32/17(C#) 21/12で半分(Python 2)

1
(言語)ヘビはどのくらいですか?
3次クインチャレンジに続いて、できるだけ多くの言語を使用するOuroborosプログラムを作成します。 つまり、言語Aで、プログラムBを言語Bで出力するプログラムpAを作成します。プログラムpBは、言語CでプログラムpCを出力する必要があります。 ループ内の2つの言語を同じにすることはできません。また、互いにサブセットまたはスーパーセットにすることもできません。ループ内のプログラムはどれも同一ではありません。 最も長い言語のチェーンが勝ちます。ソースコードの長さは、タイブレーカーになります。 以下は、Venteroが提供した長さ3のソリューションの例です。 s='print q<puts %%q{s=%r;print s%%s}>';print s%s PythonでこのPerlスニペットを生成します print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}> 次のRubyコードを生成します puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s} 次に、元のPythonスニペットを出力します。 s='print q<puts %%q{s=%r;print s%%s}>';print s%s

7
この生成されたバイナリマトリックスに特定の値を出力します
次のようにして、無限行列Mをon N^2 -> {0, 1}(ここでNはからでは1なく0)で定義するとします: M(1, 1)= 0。 すべてのためにx > 1、M(x, 1)= 1場合はx、プライム、とある0そう。 ごとにy > 1、M(1, y)=のyth番目の用語Thue-Morse sequence。 すべてのためにx, y > 1、M(x, y)= M(x, y-1) + M(x-1, y) mod 2。 16x16このマトリックスの左上のセクションは次のようになります(x行とy列): 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 …

9
メタの種類:最短の回答のうち最長のものを取得する
あなたの仕事-あなたがそれを受け入れた場合- コードゴルフ逆転の競争の勝者を計算することにより、メタに関する私の提案を理解するのに役立つプログラムを書くことです。もちろん、この質問に対する回答は提案通りに扱われるため、プログラムは(正しい場合)回答が受け入れられる回答になるかどうかを計算できます。 ルール プログラムは、次の形式の複数行のファイルを読み取ります(以下の例を参照)。[Language] TAB [NumberOfCharacters] TAB [LinkToAnswer] ファイル名は引数としてプログラムに渡されるか、ファイルはプログラムの標準入力にリダイレクトされます。それはあなたの選択です、答えを与えるときに方法を言及してください 入力形式が正しいことが期待されます。エラー処理の必要はありません。 文字数は正です。あなたのプログラムは65535までの長さを処理する必要があります。64kは誰にとっても十分なはずです:-) プログラムは、メタ提案のアイデアを満たす行を標準出力に出力します。つまり、 特定のプログラミング言語の最短コードが勝ちます(削減段階) すべてのプログラミング言語の中で最長のコードが優先されます(ソート段階) 抽選の場合、同じ長さのすべての回答が印刷されます 出力の順序は重要ではありません 最も長いコードが優先されますが、これはコードボウリングではありません。コードは、プログラミング言語に可能な限り短くする必要があります。 コードを短縮しようとしないめったにないプログラミング言語に対する回答は、この種の質問の意図を回避しようとするため、下票に値します。特定のプログラミング言語に対する答えが1つだけの場合、それは勝者候補と見なされるため、コードを吹き飛ばすことができます。 入力ファイルの例(書式設定に問題がある場合は、単一のタブで区切られています): GolfScript 34 http://short.url/answer/ags GolfScript 42 http://short.url/answer/gsq C# 210 http://short.url/answer/cs2 Java 208 http://short.url/answer/jav C# 208 http://short.url/answer/poi J 23 http://short.url/answer/jsh Ruby 67 http://short.url/answer/rub C# 208 http://short.url/answer/yac GolfScript 210 http://short.url/answer/210 期待される出力(順序は重要ではありません): C# 208 http://short.url/answer/poi …

7
素数ですか?数学なし[非公開]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 3年前に閉店しました。 入力が素数であるかどうかを判断する任意の言語でプログラムまたは関数を作成します。 入力は、10を底とする自然数を表す文字列です。 出力は、2つの文字列「Prime」または「Not !!」のいずれかです。入力を正しく識別します。 算術演算子、ビット単位の演算子、数値変数と定数、一般的な「数学スタッフ」などは、プログラムのどこでも使用できません。必要なすべての「計算」を行うには、文字列操作を使用する必要があります。 文字列の長さ(数字)を比較できますが、そうでない場合は-10をスコアと比較します。 プログラムは、任意の長さの入力で動作するはずです(十分なメモリと時間が与えられます)。 最小バイトカウント(UTF-8)が優先されます。

4
受け入れられた答えを決定するコードを書く
この質問への回答を投稿して、この質問への回答を評価し、それが勝つかどうかを判断します。 誰が勝ちますか: 勝者は、3月2日日曜日の1700 UTCに最も多くの回答に従って勝つ答えです。 コンテストの進行に合わせて自分の回答を変更することを歓迎し、奨励します。他の人を変更しないでください。 関係は最短のコードによって決定されます。 あなたが通常どれくらいソックパペットをしていても、何かが怪しいなら、私はあなたを失格させます。 私は自分の答えを受け入れませんが、それをあなたの評価に使用します。 ルール: 計算では、任意の回答に対して数値スコアを提供する必要があります(簡単にするために、アルゴリズムへの入力は回答のIDまたはページ上の回答のマークダウンのいずれかです)。 スコアには少なくとも1人の勝者がいる必要があり、あなた以外の回答が勝つことができる必要があります。 あなたのアルゴリズムはあなたの答えに非常に特有のものを使用できませんし、ユーザー名やタイムスタンプもまったく使用できません。私は「非常に具体的な」とはどういうことかを最終的に判断しますが、コミュニティポリシングと公共の恥を奨励します。 コードはコンパイル、実行、および任意の答えが与えられたスコアを与える必要があります。 Ideoneにリストされていない場合、コードを実行する方法へのリンクを含めてください。下記参照。

17
ローカル変数なしでデッキをシャッフルする[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 2年前に閉店。 このパズルの目的は、52枚のカードのデッキを取り、各カードがランダムな位置になるようにシャッフルすることです。 与えられた: deckカードを表す52個の異なる整数の配列。開始時にdeckは、不明な順序で各カードが1枚ずつ含まれています。 int rand(min, max)int minとの間のランダムな整数を返す関数max。この関数は本当にランダムであると仮定できます。 void swap(x, y)デッキ内の2枚のカードを交換する機能。を呼び出すswap(x, y)と、カードの位置xと位置yが切り替わります。 いつ: プログラム呼び出しshuffle()(shuffle(deck)またはdeck.shuffle()または実装が実行したい場合)。 次に: deck 完全にランダムな順序で各カードを正確に1つ含める必要があります。 キャッチ: 変数を宣言することはできません。swapとrandを好きなだけ呼び出しますが、独自の変数を宣言することはできません。これもforループカウンターがますforeach。 明確化: 選択した言語に合わせてマイナーな詳細を変更できます。たとえば、次のように書くことができますswap参照によって2つの整数を切り替えるます。変更は、パズルを簡単にするためではなく、あなたの言語でこの作業を行うべきです。 deck グローバル変数にすることも、パラメーターとして受け取ることもできます。 あなたは何でもやりたいことができます deck、その長さは変更できません。 カードには、0〜51、1〜52などの番号を付けることができます。 これは任意の言語で記述できますが、言語の組み込みshuffle関数をごまかすことはできません。 はい、同じ行を52回書くことができます。誰も感動しません。 実行時間は重要ではありませんが、真のランダム性は重要です。 これは実際にはゴルフのコードではありませんが、コードを最小化/難読化してください。 編集:定型コードとビジュアライザー .NETまたはJavaScriptを使用している場合、次のテストコードが役立ちます。 JavaScript: CoffeeScriptソースを使用した手軽なJavaScriptビジュアライザー:https : //gist.github.com/JustinMorgan/3989752bdfd579291cca 実行可能バージョン(shuffle()関数に貼り付けるだけ):http : //jsfiddle.net/4zxjmy42/ C#: C#コードビハインドを備えたASP.NETビジュアライザー:https ://gist.github.com/JustinMorgan/4b630446a43f28eb5559 swapおよびrandユーティリティメソッドのみを使用したスタブ:https : //gist.github.com/JustinMorgan/3bb4e6b058d70cc07d41 このコードは、デッキを数千回並べ替えてシャッフルし、いくつかの基本的な健全性テストを実行します。各シャッフルについて、繰り返しのないデッキに正確に52枚のカードがあることを確認します。次に、ビジュアライザーがデッキの各場所で終わる各カードの頻度をプロットし、グレースケールのヒートマップを表示します。 ビジュアライザーの出力は、明らかなパターンのない雪のように見えるはずです。明らかに、真のランダム性を証明することはできませんが、スポットチェックを行うための迅速かつ簡単な方法です。シャッフリングアルゴリズムの特定のミスが出力に非常に認識可能なパターンをもたらすため、このようなものを使用することを推奨します。次に、2つの実装からの出力の例を示します。1つには一般的な欠陥があります。 …

30
正の整数の合計。[閉まっている]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 3年前に閉店しました。 問題: 整数のセットが与えられたら、その中のすべての正の整数の合計を見つけます。 入力: t –テストケースの数[ t <1000] 次のそれぞれの上のTライン、整数N [-1000≤ N ≤1000年] 出力 プログラムは、すべての正の整数の合計を出力する必要があります。 オンライン裁判官でコードを確認する スコア ASCIIコードが32以下のシンボルを除き、スコアはプログラムのソースコードのサイズと同じです。 ベストスコアリストは次のとおりです。Pythonベストスコア(ベストスコアは29)

13
変装してプログラムを書く[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Code Golf Stack Exchangeのトピックとなるようにします。 3年前休業。 課題は、別の言語のように見えながら、HQ9 +の問題のいずれかを解決するプログラムを作成することです。 注:これはゴルフの挑戦ではありません。 ルール: プログラムは、実行時に次のいずれかのタスクを実行する必要があります。 「Hello、World!」を印刷します ソース全体を印刷します。 (見られるように、「ウォール上のビールの99本のボトル」に歌詞を印刷し、ここ)。 一見すると、プログラムは別の言語のように見えるはずです。 格付け ルールを満たす作業プログラム。+3 「他の言語」を実行できる場合は、ボーナスポイント(構文は有効)。+1 「他の言語」が何か有用なことができるなら、さらに多くのポイント。+3 さらに多くの言語でプログラムが有効(かつ有用)であることのボーナスポイントがたくさんあります。2以上の言語ごとに+5。

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