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

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

7
因子の合計数
正の整数n> 1が与えられた場合、積がnである 1より大きい整数を追加することにより、いくつの数値を作成できるかを決定します。たとえば、n = 24の場合、次の方法でnを製品として表現できます。 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 …

13
シークレットスワッピングシーケンスの解決
これは警官と強盗の挑戦です。警官のスレッドはこちらにあります。 これは強盗スレッドです。ここでの仕事は、警官スレッドで提出物を受け取り、隠されたシーケンスを見つけようとすることです。有効なクラックであるそのシーケンスを計算するために元のコードに置き換えることができるシーケンスを見つけた場合。クラックが発生したときに警官に通知して、回答を更新できるようにしてください。 得点 スコアは、成功したクラックの数であり、より多くのクラックが改善されます。

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
かくれんぼをしましょう!
ユーザーは非表示になり、コンピューターはそれらを見つけようとします。 まず、プログラムはグリッドのサイズの入力を受け取ります。5x5、10x10、15x15など。グリッドは常に完全な正方形とは限りません。 グリッドはチェス盤のようなものです。 _______________________________ | | | | | | | A1 | | | | | A |_____|_____|_____|_____|_____| | | | | | | | | B2 | | | | B |_____|_____|_____|_____|_____| | | | | | | | | | C3 | | | C |_____|_____|_____|_____|_____| | …

9
多言語チャレンジ
我々は(中ポリグロットの課題を持っていたすべての楽しみの後の最近の)過去に、出力が2つの言語になり得るチャレンジについてはどうでしょうか。 答えはブール入力を受け入れb、テキスト"true"またはを出力する必要があります"false"。別の言語で実行する場合、"waar"または"onwaar"またはのその他の翻訳を出力する必要がtrueありfalseます。 入力 入力は明確に区別できる真実/偽です。許容値は、実際の値T / F、ビット、int、または(空の)文字列です。 入力は提出物のすべての部分で同じである必要があります。 出力 出力は関数によって返され、に書き込まSTDOUTれ、ポップアップウィンドウに配置され、3D印刷およびメール送信などされます。 出力はの状態を表す必要がありbます。したがって、「真」は「true」、「waar」、「falsey」を「false」、「onwaar」などに出力する必要があります。 異なる言語は異なる出力方法を使用する場合があります。 使用言語 あなたの出力のいずれかでなければならない"true"と"false"。 プログラミング言語の異なるバージョンは、この課題の異なる言語としてカウントされます。 人間の言語の異なる方言は、この課題の異なる言語としてカウントされます。 ポリグロットを3つ以上のプログラミング言語に拡張できます。すべてのプログラミング言語は、個別の人間の言語を出力する必要があります。 ほとんどの言語が組み込まれた答えが勝者として宣言されます。関連付けられている場合、バイトカウントが考慮されます。

2
Kippleを解釈してください!
前書き Kippleは、2003年3月にRune Bergによって発明されたスタックベースの難解なプログラミング言語です。 Kippleには、27のスタック、4つの演算子、および制御構造があります。 スタック スタックは命名されているa- zと32ビット符号付き整数を含んでいます。また@、数値の出力をより便利にするための特別なスタックがあります。数字がにプッシュされる@と、その数字の数字のASCII値が実際にプッシュされます。(たとえば、12を@に押した場合、49を押し、次に50を押し@ます。) iプログラムが実行される前に、入力が入力スタックにプッシュされます。インタープリターは、i実行前に保存する値を要求します。実行が終了すると、出力スタック上のすべてoがポップされ、ASCII文字として出力されます。これはKippleの唯一のIOメカニズムであるため、Kippleプログラムとの対話は不可能です。 オペレーター オペランドは、スタック識別子または符号付き32ビット整数のいずれかです。 プッシュ:>または< 構文:Operand>StackIndentifierまたはStackIndentifier<Operand Push演算子は、オペランドを左に取り、指定されたスタックにプッシュします。たとえば12>a、値12をstackにプッシュしますa。a>bstackから一番上の値をポップし、stack aにプッシュしますb。空のスタックをポップすると常に0 a<bが返されb>aます。これはと同等です。a<b>c最上位から値ポップbの両方にとプッシュをcしてa。 追加: + 構文: StackIndentifier+Operand 追加演算子は、スタックの一番上の項目とオペランドの合計をスタックにプッシュします。オペランドがスタックの場合、値はそこからポップされます。たとえば、スタックの最上位の値aが1の場合、a+23をプッシュします。aが空の場合、a+22をプッシュします。スタックの一番上の値場合aとbがある1と2は、a+bスタックから値2をポップアップ表示されますbし、スタックに3を押しますa。 減算: - 構文: StackIndentifier-Operand Subtract演算子は、Add演算子とまったく同じように機能しますが、加算ではなく減算する点が異なります。 晴れ: ? 構文: StackIndentifier? Clear演算子は、最上位のアイテムが0の場合、スタックを空にします。 インタープリターは演算子の隣にないものをすべて無視するため、次のプログラムが機能しますa+2 this will be ignored c<i。ただし、コメントを追加する適切な方法は、#文字を使用することです。a #と行末文字の間のすべてのものは、実行前に削除されます。ASCII文字#10は、Kippleの行末として定義されています。 オペランドは2つの演算子で共有a>b c>b c?できますa>b<c?。たとえば、と書くことができます。 プログラム1>a<2 a+aはa、値を[1 4](下から上へ)含むようになり、ではありません[1 3]。-オペレーターも同様です。 制御構造 Kippleには、ループという制御構造が1つしかありません。 構文: (StackIndentifier code ) …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

2
登録計算機チャレンジ
簡単なレジスタ計算機 この課題には、次のように機能する単純なレジスタ計算機が含まれます。 には、という名前のレジスタがいくつかありA,B,C,...,Z、それぞれに整数を含めることができ、それらはすべてに初期化され0ます。 3文字の命令を実行します:命令の最初の文字は+,-,*,/,=(加算、減算、複数、除算、コピー)の1つであり、2番目の文字はレジスタの名前であり、3番目の文字はレジスタまたは1つの名前ですの0,1。指示の意味は非常に明確である必要があります。ここではいくつかの例を示します。 +ABは、「レジスタの値をA結果に設定する」ことを意味し、A + Bについても同様です-AB,*AB,/AB。分割A / BはCのように行われます。 +A1は「のレジスタAをインクリメントする」ことを意味し1、同様に-A1デクリメントAし1ます。 =AB手段「は、の値をコピーBレジスタにA同様=A0、=A1セットAに0、1それぞれ。 連続した命令の文字列を入力として受け取り、最後の操作の結果を返します。いくつかの例を示します。 =A1+A1*AA返されると仮定します4。 +A1+A1=BA+A1*AB返されると仮定します6。 +A1+A1+A1*AA=BA-B1*AB返されると仮定します72。 好みのプログラミング言語でこのような電卓を書くのは簡単です。ここではPythonの例を示します。 def compute(cmd): opr = {"=": lambda x, y: y, "+": lambda x, y: x + y, "-": lambda x, y: x - y, "*": lambda x, y: x * y, "/": lambda x, y: …

3
人参。そう。たくさんの。人参
くそー、それはたくさんのニンジンです。 インスピレーション タスク あなたは、できるだけ多くの言語のようにして、のすべてのインスタンスを置き換える、という、プログラムを作成しなければならない^とマークダウンフォーマットされたリンク私は答えにそれを投稿した場合、それは自動的にイメージとしてそれを読んで、代わりに画像を配置することを意味し(言葉の)この上向きのニンジンの。 前述のフォーマットの使用方法: まず、ファイル内の任意の場所に、次のようなリンクを配置します(この質問に対してこれを行いました)。 [1]:http://i.stack.imgur.com/mecHl.png そして、あなたがそれを望むところはどこでも: [![] [1]] [1] ルール 標準の抜け穴が適用されます。 入力は、STDINまたは同等のものを介して行われます。 出力は、STDOUTまたは同等のものを介して行われます。 コードは、使用するすべての言語で完全に動作するプログラムでなければなりません。 ニンジンに使用するURLは、この回答のURLである必要はありません。これはほんの一例です。SEのMarkdownにこの特定のニンジンが表示されていれば、任意の URLを使用できます。 これは多言語の課題であるため、ニンジン言語が最も多い答えが勝ちです! 同点の場合、最大数の言語を持つエントリの最短コードサイズが優先されます。 編集: また、言語の些細な派生物を使用しないでください!これは、代替言語(Brainfuck対ShadyAsFuck)および異なる言語バージョン(Python 2対Python 3)を使用することを意味します。 簡単なエソランがたくさんあります...(9001 BFバリアントを含む) あの男にならないでください。 注:はい、このプログラムは正規表現をサポートしている言語では少し簡単です。ただし、競合他社が使用できる言語の数を確認することです。

1
ロスレス英語テキスト圧縮チャレンジ[終了]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 4年前に閉鎖されました。 チャレンジ: あなたの挑戦(受け入れることを選択した場合)は、ここにある5MBの「ウィリアムシェークスピアの全集」を圧縮および解凍することです:http : //www.gutenberg.org/cache/epub/100/pg100.txt (MD5: a810f89e9f8e213aebd06b9f8c5157d8) ルール: あなたはしなければならない介して入力を取るSTDIN経由して出力STDOUT ... ...そして、入力に同一の解凍結果を提供する必要があります。 (これは、上記と同じ MD5を取得できなければならないということです。)cat inpt.txt | ./cmprss | ./dcmpress | md5 (経由するものSTDERRはすべて破棄されます。) 合計ソースコードには2048文字未満を使用する必要があります。 (これはコードゴルフではありません。ソースコードの長さに基づいて得点を得ているわけではありません。これは物事を有限に保つための単なるルールでした。) (分割した場合は、すべてのソースコードを連結した長さを取ります。) 君は 必要ありますすぎて(理論上)のプロセスと同様のプレーンテキスト入力にできること。 (例えば、提供されたシェークスピアのみを出力できるメカニズムをハードコーディングする入力は受け入れられません。) (他の文書の圧縮サイズは無関係です-圧縮解除された結果が代替入力と同一である場合。) あなたは言語のいずれかを選択(複数可)を使用します。 (例:を使用して圧縮しawkたり、を使用して解凍したりすることをお気軽にjava) あなたは下さい二つの別々のプログラムを書くかのように「スイッチ」の何らかの形でそれらを結合します。 (圧縮モードと解凍モードの両方を呼び出す方法の明確なデモが必要です) 外部コマンドは使用できません(例:exec())。 (シェル言語を使用している場合-申し訳ありません。ビルトインで間に合わせる必要があります。共有と楽しみのために「受け入れられない」答えを投稿することはできますが、判断はできません! ) データを圧縮することを目的とする組み込み関数またはライブラリが提供する関数を使用することはできません(たとえば、gzなど) (エンコードの変更は、このコンテキストでは圧縮とは見なされません。ここでは、何らかの裁量が適用される場合があります。提出物でのソリューションの許容性については、お気軽に議論してください。) 参加することを選んだら、楽しんでみてください! すべての良い競争には、勝利という客観的な定義があります。エルゴ: すべてのルールが順守されている場合、最小の圧縮出力(STDOUTバイト単位)ます。 (を介して出力を報告してください./cmprss | wc -c) 抽選(同一の出力サイズ)の場合、最も多くのコミュニティが投票します。 2回目の抽選(同一コミュニティのアップ投票)のイベントでは、優雅さと純粋な天才の完全に主観的な検査に基づいて勝者を選びます。 ;-) 提出方法: …

1
有効な迷路の数
与えられたWxHグリッドを、どのように多くの可能な迷路がありますか? 迷路について知っていること: グリッドのH高さは正確に正方形で、W幅は正方形です。 開始、終了、空の3つのタイプの正方形があります。迷路には、開始と終了がそれぞれ1つだけ含まれている必要があり、残りのすべての正方形は空です。 迷路全体を囲む壁があります。 以下の規則に違反しない限り、壁は任意の2つの正方形の間のエッジに存在できます。 開始広場から終了広場までのパスが存在する必要があります。 したがって、との2つの数値を指定するWとH、可能な正方形/壁構成の数を表す単一の数値を返す必要があります。あなたは保証されていますW*H > 1 たとえば、2x2迷路の100構成はまったく異なります。 これはコードゴルフなので、最短の答えが勝ちです!

2
マイニングロボットを構築する
あなたのプログラムは、貴重な鉱物を地下で検索する採掘ロボットを制御します。ロボットは、移動して掘りたい場所をコントローラーに伝え、コントローラーはロボットの状態に関するフィードバックを提供します。 最初に、いくつかの採掘シャフトがすでに存在する鉱山のイメージマップと、鉱山内の鉱物の値と硬度を指定するデータファイルがロボットに提供されます。次に、ロボットがシャフトを移動して、採掘する貴重な鉱物を探します。ロボットは地球を掘ることができますが、ハードロックによって速度が低下します。 24時間のシフトの後、最も価値のある貨物で戻ってくるロボットが勝者になります。複雑な課題のように思えるかもしれませんが、基本的なマイニングロボットを作成するのは簡単です(以下のサンプルマイニングロボットの回答を参照)。 操作 プログラムは、鉱山の画像、鉱物のデータ、および機器のファイル名を使用して、コントローラーによって開始されます。ロボットは、鉱山の画像と鉱物のデータを使用して貴重な鉱石を見つけ、硬い岩を避けます。ロボットは、機器リストから機器を購入することもできます。 例えば: python driller.py mineimage.png minerals.txt equipmentlist.txt 2秒間の初期化期間の後、コントローラーはstdinおよびstdoutを介してロボットプログラムと通信します。ロボットは、ステータスメッセージを受信して​​から0.1秒以内にアクションで応答する必要があります。 コントローラーは毎ターン、ロボットにステータスラインを送信します。 timeleft cargo battery cutter x y direction 例えば: 1087 4505 34.65 88.04 261 355 right 整数timeleftは、シフトが終了するまでのゲームの秒数です。これ cargoは、これまでに採掘した鉱物の整数値から、設備に支払った金額を差し引いたものです。batteryレベルは、あなたのバッテリ残量の整数割合です。cutter整数レベルが基準値のパーセンテージとしてカッターの現在の鮮鋭度です。xそしてy値が(0、0)に左上隅から参照ロボット位置との正の整数です。方向は、ロボットが向いている現在の方向(左、右、上、下)です。 ロボットが「エンドシフト」または「失敗」の入力を受け取ると、プログラムはすぐに終了します。ロボットがデバッグ/パフォーマンスデータを最初にファイルに書き込むようにすることができます。 コントローラが受け入れる4つの可能なコマンドがあります。direction left|right|up|downその方向にロボットを向け、15ゲーム秒を必要とします。move <integer>ロボットにその数のユニットを前方に移動または掘るように指示します。これは、切断される鉱物の硬度とカッターの鋭さに応じて時間がかかります(以下を参照)。buy <equipment>指定された機器を設置し、貨物の値からコストを差し引きますが、これはロボットが水面にある場合のみです(y値<=開始y値)。機器の設置には300ゲーム秒かかります。特別なコマンドsnapshotは、現在の地雷イメージをディスクに書き込み、ゲーム時間はかかりません。スナップショットを使用して、ロボットをデバッグしたり、アニメーションを作成したりできます。 ロボットは、100個のバッテリーと100個のカッターシャープネスで起動します。移動と旋回には、少量のバッテリー電力が使用されます。掘りははるかに多くを使用し、鉱物の硬度とカッターの現在の鋭さの関数です。ロボットが鉱物を掘ると、時間と鉱物の硬さに応じて、カッターの鋭さが失われます。ロボットが十分な貨物価値を持っている場合、新しいバッテリーまたはカッターを購入するために地表に戻ることがあります。高品質の機器の初期有効性は100%を超えることに注意してください。バッテリーの名前には「battery」という文字列があり、(サプライズ)カッターの名前には「cutter」があります。 次の関係は、移動と切断を定義します。 timecutting = sum(hardness of pixels cut) * 100 / cutter cutterwear = 0.01 …

4
最短のコードで最長のコードを記述
あなたの課題は、選択した言語で最短のコードを作成し、2つの数字を入力として使用して2つの数字を乗算し、答えを出力する最長のコードを.txtファイルに書き込むことです。 書き込みジョブを実行するコードに入力は不要です! ジェネレーターコードと生成されたコードは、どの言語でも使用できます。 テキストファイルを大きくするために無制限のシリーズまたは進行を使用しないでください。 しないでくださいスコアを高めるために、不要なステートメントを使用しています。 得点 ( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines) ----------------------------------------- ( size of your code in bytes ) 勝者 1週間後に最高スコアで勝者が選ばれます。 編集: 2つの数字を掛けるコードの入力範囲は、-32768〜32767の範囲でなければなりません

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

4
電子レンジをプログラムする[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 3年前に閉店しました。 私はとても怠け者なので、できるだけ少ないボタンを押すだけで電子レンジを常にプログラムしようとします。私の電子レンジには次のボタンがあります。 最初に押すだけで、「開始」を意味する「分プラス」ボタン。数分間、複数回押すことができますが、手動で入力した時間に1分は加算されません。 出力+ 0〜9個のボタンのセット。タイムエントリはMMSSです(「130」は1分30秒を意味します)。秒の範囲は0..99です。したがって、「130」と「90」は同等のエントリです。エントリの秒部分が59を超えても、明らかに1分は60秒です。 出力0..9 時間を手動で入力する場合、電子レンジを開始するために押す必要がある「開始」ボタン。 出力S 私の食品パッケージはMM:SSで時間を指定しているため、プログラムはその入力を受け入れる必要があります。 例 1:00です+(「分プラス」は開始を意味することに注意してください) 1:01は61S(秒は59を超えることができますが、「分プラス」は数字と連動しません-これは私の電子レンジの設計上の欠陥だと思います) 9:00は900S(より短い+++++++++)

10
クリエイティブプログラミング[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 8年前に閉鎖されました。 プログラミングからストーリーを作りましょう。JavaScriptの例: self.book = { "story": function() { var once = "upon", aTime = setTimeout(function() { // Code would continue... }, 1000) } }; self.book.story(); 規定: コンパイル前、コンパイル中、コンパイル後にエラーなしで実行する必要があります。 ストーリーには、文字列/名前ごとに最大2つの単語しか使用できません。 JavaScriptの例: var story = "Once upon a"; // Wrong (Using more than two words) var story = "Onceupona"; // …

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