プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

8
一文字交換
postcount ++と呼ばれるウェブ上の最大のフォーラムは、新しいフォーラムゲームを作成することを決定しました。このゲームでは、目標は単語を投稿することですが、単語には1文字追加、削除、または変更する必要があります。あなたの上司は、あなたがよりインテリジェントなフォーラムゲームを備えたよりインテリジェントなフォーラムを持ち、競争を破壊したい会社で働いているときに、単語とUNIX辞書を取得するプログラムを書くことを望んでいました(ちょっと、それはあなたの上司です彼と話し合うと、とにかくあなたの仕事からたくさんの現金を得ることができます)。 プログラムは、単語と辞書という2つの引数を取得します。プログラムを管理するユーザー(はい、ユーザー、会社にはボットを実行するリソースがない)は完全ではないため、両方のケースを正規化する必要があります。辞書内の単語には、ASCII文字(大文字と小文字の両方、ただし比較中は無視する必要があります)、ダッシュ、アポストロフィ、および途中に連続しないスペースが含まれる場合があります。78文字を超えることはありません。単語を手動で考える人々の楽しみを壊すために、ゲームで受け入れられる単語のリストを出力する必要があります。 これは、予想されるプログラムの例で、に類似する単語をチェックしますgolf。 > ./similar golf /usr/share/dict/words Goff Wolf gold golfs goof gulf wolf /usr/share/dict/wordsそれぞれの後に改行して、単語のリストです。たとえば、fgets()で簡単に読むことができます。 あなたが働いている会社はあまりパンチカードを持っていません(そう、それは2014年であり、彼らはまだパンチカードを使用しています)ので、それらを無駄にしないでください。できるだけ短いプログラムを作成してください。ああ、そしてあなたは、レーベンシュタイン距離または同様のアルゴリズムの組み込みまたは外部実装を使用しないように頼まれました。Not Invented Hereや、明らかにベンダーが言語に挿入したバックドアについての何か(それらの証拠はありませんが、上司と話し合ってはいけません)。したがって、距離が必要な場合は、距離を自分で実装する必要があります。 任意の言語を自由に使用できます。パンチカードを使用していても、同社はCobol RubyやHaskell などの最新のプログラミング言語にアクセスできます。文字列操作に適していると思われる場合は、GolfScriptを使用することもできます(おそらく...わかりません)。 勝者は私から15の評判ポイントを獲得し、おそらくコミュニティから他の多くのポイントを獲得します。他の良い答えは10ポイントを獲得し、同様にコミュニティからもポイントを獲得します。ポイントは価値がないと聞きましたが、2050年にドーラーに取って代わる可能性が最も高いと聞きました。
18 code-golf  string 

6
Simon Cloneを作成します![閉まっている]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 去年閉鎖されました。 シナリオ:プログラミング中に、80年代と安っぽいゲームに対する突然のノスタルジックな衝動があります。 要件:ゲームのSimonのGUIプログラムを作成します(テキストはおそらく機能しません)。入力は、クリックするか、キーを押すことです。画面を黄色、青、赤、緑の4つの領域に分割する必要があります。ゲームが開始されると、ランダムな色が点灯し、アクティブにします。次に、2つのライトが順番に点灯し、順番にアクティブにする必要があります。間違った色を押すと、ゲームは終了します。 ボーナス: サウンドを含む場合は-100(各リージョンを押したときとゲームで色が表示されたときに異なる音が再生されます) スコアカウンターを含める場合は-25。
18 code-golf  game 

11
クラッシュIRB(インタラクティブRuby)
Rubyには組み込みのREPLが付属しており、非常に便利です。 あなたの挑戦は、最小限のコードでクラッシュさせることです! 「クラッシュ」の定義は、「意図しない方法で終了させる」です。この手段exit、quit、abort、irb_exit、irb_quit、ら。al。有効な答えではありません。 さらに、システムの他の部分に副作用を引き起こすことはできません。たとえば、`rm -rf /`も無効です。 バージョン1.9.3以上が有効です。コードが特定のバージョンのRubyでのみ機能する場合は、答えで指定できます。 最後の制限は、宝石に依存しないことです。 これはcode-golfなので、IRBをクラッシュさせる最短のコードが勝ちます!
18 code-golf  ruby 

14
数値が連続した整数の積であるかどうかを確認します
以下に示すように、6、12、20、30、42、56、60、90、120などのいくつかの数字は、連続する整数の積として表現できます。 6 = 2 * 3 12 = 3 * 4 30 = 5 * 6 60 = 3 * 4 * 5 90 = 9 * 10 120 = 4 * 5 * 6 指定した数に等しい積の連続した整数のリストを出力するプログラムまたは関数を作成します。 このロジックに適合しない数値の例は次のとおりです。 99 = 9 * 11 (Product of non-consecutive numbers) 121 = 11 * …
18 code-golf 

1
Cプリプロセッサを作成する
目標は、C言語用のプリプロセッサを、ソースコードのサイズ(バイト単位)の点で、希望する言語でできるだけ小さくすることです。入力はCソースファイルになり、出力は前処理されたソースコードになります。 処理できる必要があるアイテムは、コメントの削除(行/ブロック)、#includeディレクティブ(相対パスでファイルを開き、必要なポイントでテキストを置き換える)、#define、#undef、#if、 #elif、#else、#endif、#ifdef、#ifndef、defined()。#pragmasや#errorsなどの他のCプリプロセッサディレクティブは無視されます。 #ifディレクティブで算術式や比較演算子を計算する必要はありません。式がゼロ以外の整数を含んでいる限り、式はtrueと評価されます(その主な用途はdefined()ディレクティブです)。可能な入力および出力の例は次のとおりです(出力ファイル内の余分な空白は、見た目をよくするために削除されました。コードでそうする必要はありません)。次の例を適切に処理できるプログラムで十分です。 ----Input file: foo.c (main file being preprocessed) #include "bar.h" // Line may or may not exist #ifdef NEEDS_BAZZER #include "baz.h" #endif // NEEDS_BAZZER #ifdef _BAZ_H_ int main(int argc, char ** argv) { /* Main function. In case that bar.h defined NEEDS_BAZ as true, we call baz.h's …
18 code-golf  string  c 

15
ゴルフアスキーアートをコーディングする簡単な方法!
仕事: このサイトには、このようなアスキーアートにアレンジされた多くの回答があります。通常、配置は手動で行われますが、プログラムはそれを助けませんか?:) プログラムには3つの入力があります。 1行のコード パターンの行数(必要でない場合は省略できます) *sまたは別のchar としてのパターン自体 ルール: stdinから読み取るプログラム(関数ではない)を作成する必要があります テキストは行ごとに左から右に配置されます パターンを埋めるのに十分なテキストがない場合は.、残りのスペースにsを入れます パターンを埋めるにはテキストが多すぎる場合は、出力後に印刷してください code-golf、バイト単位の最短コードが勝ちます サンプル実行: 入力(完全適合テスト): qwertyuiopasdfghjklzxcvbnm 4 ***** * *** * * * * * * * * ***** * *** 出力: qwert y uio p a s d f g h j klzxc v bnm 入力(余分な文字のテスト): qwertyuiopasdfghjklzxcvbnm12345 4 ***** …

1
QRコード…そしてすべてのジャズ!
これは、比較的難しいコードゴルフの挑戦になるでしょう。 入力:任意のURL、たとえばhttp://codegolf.stackexchange.com(テストケースになります)が添付されたプロトコルが必要です 出力:このURLを表す生成されたQRコード。スマートデバイスによってスキャンされると、スマートデバイスのブラウザーでそのURLに移動します。 このCode-Golfのルール いつものように、最小のコードが勝ちます。 コードを生成するための外部Webリソース、ライブラリ、またはプラグインはありません。コードでQRコード画像を計算する必要があります。 出力は、HTML5 / CSS3によって生成された画像、または適切なUnicodeブロックを使用して、またはプラットフォームのASCIIで使用可能な場合、QRコードを形成できるASCII文字を介して表示できます(この最後のコードはCommodore 64 Basicに向けられ、 Amiga QBasic、Amstrad Basicなどのユーザー)が、コードをスキャンできるようにQRコード出力を生成する必要があります。 コードのエントリの後には、生成された出力、コードを実行した後の出力のスクリーンショット、または出力を表示するリンク(状況に最適な方)が続く必要があります URL " http://codegolf.stackexchange.com "を使用してコードをテストし、ルール3〜4に従って出力を報告します。 また、選択したURLを使用してコードをテストし、ルール3〜4に従って出力を報告します。 参照: 1)http://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders 2)http://www.pclviewer.com/rs2/calculator.html 3)http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction 4)http://en.wikipedia.org/wiki/QR_code 5)インスピレーションのためのhttp://www.qrstuff.com / ...;)

30
数値の反転バージョンを返します
計算機に数値が表示されると、その数値のさまざまな変換がどのようになるかを考慮することができます。たとえば、7セグメントディスプレイでは、2は次のように表示されます。 そして、水平方向に反転すると、次のようになります。 そのため、2の鏡像は5です。 このチャレンジのタスクは、1桁の数字を取得し、そのミラーイメージの番号を返すことです(可能な場合)。鏡像が数字のように見えない場合は、180度回転した数字を返します(可能な場合)。これらのどちらでもない場合は、-1を返します。 以下は、プログラムが処理する必要がある入力と出力の完全なリストです。 Input Output 0 0 1 -1 2 5 3 -1 4 -1 5 2 6 9 7 -1 8 8 9 6 コードゴルフの挑戦、最短コードが優勝します!
18 code-golf  number 

9
Brainfuckトランスレーターを書く
任意のプログラミング言語またはスクリプト言語xで、有効なBrainfuckソースコードをstdinから取得し、brainfuckプログラムとまったく同じ結果を出力する言語xで記述されたプログラムのソースコードをstdoutに出力するプログラムを作成します。 プログラムは、空のファイルを含む、有効なブレインファックプログラムで動作する必要があります。 スコアは、ソースコードのバイトカウントと、次の入力が与えられた場合の出力のバイトカウントに等しくなります。 +++++ [-] +++++ +++++ [ > +++++ ++ > ++ +++ ++++ + > +++ <<< - ] > ++ . H > + . e ++ +++ ++. l . l +++ . o > ++ . space < +++++ +++ . w ----- --- . …

10
Octaveでのゴルフのヒント
オクターブでゴルフをするための一般的なヒントは何ですか?私は、少なくともオクターブ特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(例えば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。
18 code-golf  tips  octave 

8
ローマ数字計算機を作成する
ローマ数字の基本的な計算機を作成します。 必要条件 サポート+、-、*、/ 入力と出力は、シンボルごとに1つの減算器プレフィックスのみを想定する必要があります(つまり、前にIIV2つあるため、3はできません)IV 10の唯一のパワーは大きな数字から減算されている最小支持現代の標準的な規則、で入力と出力する必要があります。減算原則の取り扱い(例えばI、X、C必要な減算器はありませんですV、L、D)と減算を超える数から実行されることはありません減算器の10倍(IXサポートする必要がありますがIC必須ではありません)。 入力と出力は、値が大きい順に開始します(つまり、19 = XIXnot IXX、10は9より大きい)。 左から右、手の計算機を使用しているかのように、演算子の優先順位はありません。 1〜4999の間の正の整数の入力/出力全体をサポート(V̅は不要) ローマ数字の変換を行うライブラリはありません あなたが決めるために 大文字と小文字の区別 入力にスペースを入れるかスペースを入れない 10進数の出力を取得するとどうなりますか。切り捨て、無回答、エラーなど。 処理できない出力に対して何をすべきか。印刷する負の数または大きい数。 最小要件よりも減算の原則のより自由な使用をサポートするかどうか。 追加クレジット -50-最大99999以上を処理します。シンボルにはビンキュラムを含める必要があります サンプル入出力 XIX + LXXX (19+80) XCIX XCIX + I / L * D + IV (99+1/50*500+4) MIV 最短のコードが優先されます。

30
char値を追加する計算機
仕事 ファイル、stdin、その他から文字列を取得し、charsのすべての値を合計する計算機を作成します。 例 Input Hello World! Output 1085 ルール 計算機はASCIIエンコードのみを受け入れる必要があります。 最短のコードが優先されます。 ノート m.buettnerのコメントに関して、私は言う必要があります、私はマルチバイト部分を考えていませんでした。 それで、私もそれをボーナスとして残します。 電卓は書かれたとおりに実行する必要があるため、コンパイルまたは解釈する前に修正する必要はありません。 ボーナス Syntheticaのおかげで、もう1つのボーナスがあります。 入力が勝つときにコードを使用すると、出力が最も低いプログラムに星が付きます。 完全に変更したくありません。 UTF-8で(右)値を出力するために追加で書き込むと、星印が付きます。 私のラップトップ(Lenovo Yoga 13 Intel Core i5 3317U 1.7Ghz、8GB RAM、128GB SSD、Intel HD 4000、Windows 8)で最速で実行されるコードには星が付きます。 Webコードは、まずIE11でチャクラを使用して実行され、次にFireFox 29.0.1でSpiderMonkeyを使用して実行されます Linuxコードは、Raspbianを搭載したRaspberry Piで実行されます。 テスト文字列は次のとおりです。 q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!( コーディングを楽しんでください:) ボーナススコア 今週の土曜日に採点を行う予定なので、07.06.14、その日以降のすべての回答はボーナスポイントを獲得できません;) ここでテストに使用するコードをダウンロードできますので、気軽にフォークして改善してください:) ボーナスのために少し更新されますが、私のラップトップは部分的に壊れているので、おそらく次の週末にそれをします、それは本当に申し訳ありません:(
18 code-golf 

1
ダブルクインを使ってゴルフを楽しもう!
グッドイブニングレディースと紳士。 今夜-コードの課題があります。ポイントの量ではなく(小惑星のように)定義されますが、単にそれを終了できるかどうか(ゼルダのように)。そして、比較のために、バイトの量(ええと...言った...)。 あなたの課題は、WhiteSpaceと選択した他の言語の両方でコンパイルする単一のクインを作成することです。両方のクインの出力は完全に同一でなければなりません(クインはソースコードと完全に同一です)。クインの長さは3バイトを超える必要があります。 スコアは、ソースコードのバイト単位のサイズです。 この課題にはWhiteSpaceが関係していることを考えると、回答が明確になるように、できればCスタイルで回答をエスケープしてください。スコアは元のバイト単位のソースであり、エスケープされたバージョンではありません。 幸運を。

12
私はあなたを知っているが、あなたは私を知らない
2つのプログラムを作成する必要があります。プログラムAは、プログラムBが入力された場合を除き、すべての入力で何も出力しない必要があります。プログラムBは、プログラムAが入力された場合を除き、すべての入力で印刷する必要があります。その場合、何も印刷されません。11 得点: +1 両方のプログラムの各キャラクターに対して。 最低スコアが勝ちます。
18 code-golf  quine 

3
Manufactoria:可能な限り遅い受け入れプログラムを生成する
空の入力テープを受け入れるManufactoriaプログラムを作成します。しかし、すぐにやらないでください!つまり、プログラムをすばやく作成しますが、すぐに実行させないでください。最終的に終了する限り、プログラムが遅いほど良いです。以下のプログラム例には、3:51(シミュレーターによって報告される「合計時間」)がかかります。 http://pleasingfungus.com/Manufactoria/?lvl=36&code=g12:5f3;r9:8f1;p12:9f3;c13:9f0;r11:9f0;r10:9f0;r9:9f1;b11:8f0;b10:8f1 ; r9:7f2; c10:7f2; c11:7f2; c12:7f3; q12:8f3; y13:8f2; y14:8f2; y15:8f1; y15:7f0; y14:7f0; y13:7f0; g12:6f3;&ctm = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ; プログラムは空のテープから始まります。少し落書きする必要がありますが、最終的に出力スクエアに到達します。必要に応じて、テープにデータを残すことができます。7x7 Manufactoriaボードで最も遅いプログラムが勝ちます! あなたの右矢印キーはあなたの友人です、それはシミュレータを高速化します。 シミュレーターをクラッシュさせた場合のボーナスポイント!

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