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

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

30
最短の自己識別プログラム(キインバリアント)を書く
入力がプログラムのソースコードに一致する場合は「true」の出力を生成し、入力がプログラムのソースコードに一致しない場合は「false」の出力を生成するプログラムを作成します。 この問題は、プログラムがプロセス内で独自のソースコードを何らかの方法で計算できる必要があるため、クインに関連していると説明できます。 これはコードゴルフです。標準ルールが適用されます。プログラムは、独自のソースコードのファイルなどの特別なファイルにアクセスしてはなりません。 編集:そのように選択した場合、true / falseはTrue / Falseまたは1/0に置き換えることができます。 例 プログラムのソースコードがの場合、bhiofvewoibh46948732));:/)4プログラムで実行する必要があることは次のとおりです。 入力(標準入力) bhiofvewoibh46948732));:/)4 出力(標準出力) true 入力 (Anything other than your source code) 出力 false

13
アメリカの大統領は誰でしたか?
チャレンジ 1789年4月30日から2019年8月21日までの1日を入力として受け取り、その日の米国大統領であった出力として戻るプログラムを作成します。 ノート 米国大統領のリスト、氏名の形式、大統領の在任期間については、以下を参照してください。 April 30, 1789 - March 4, 1797 George Washington March 4, 1797 - March 4, 1801 John Adams March 4, 1801 - March 4, 1809 Thomas Jefferson March 4, 1809 - March 4, 1817 James Madison March 4, 1817 - March 4, 1825 James Monroe March …

10
怒りのカモ
絵文字>:Uが何を表しているのか、誰もはっきりとはわかりませんが、多くの学者は、それが怒っているアヒルのように見えると信じています。そうだと仮定しましょう。 仕事 0から3までの整数nが与えられた場合、印刷またはリターン quack n = 0の場合、 >:U もし、N = 1、 U U > : U U > U U > : U U UUU n = 2の場合、または >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U …

30
ブラケットは完全に一致していますか?
大括弧のストリングを取り、そのストリングが完全に一致するかどうかを出力するプログラムまたは関数を作成する必要があります。プログラムは真実または偽の値を出力する必要があり、IOは任意の妥当な形式にすることができます。 ルールと定義: この課題のために、「括弧」は次の文字のいずれかです()[]{}<>。 次のように、開始ブラケットと終了ブラケットが正しい順序であり、その中に文字がない場合、一対のブラケットは「一致」とみなされます。 () []{} または、その中のすべてのサブ要素も一致する場合。 [()()()()] {<[]>} (()()) サブエレメントは、いくつかのレイヤーの深さにネストすることもできます。 [(){<><>[()]}<>()] <[{((()))}]> 次の場合にのみ、文字列は「完全一致」と見なされます。 すべての文字は角かっこです。 ブラケットの各ペアには正しい開始ブラケットと終了ブラケットがあり、正しい順序であり、 各ブラケットが一致します。 入力には印刷可能なASCIIのみが含まれると想定できます。 テストIO 以下は、真の値を返す必要のある入力です。 () [](){}<> (((()))) ({[<>]}) [{()<>()}[]] [([]{})<{[()<()>]}()>{}] そして、ここに偽の値を返すはずの出力があります: ( Has no closing ')' }{ Wrong order (<)> Each pair contains only half of a matched element (()()foobar) Contains invalid characters [({}<>)> …

6
数字によるペイント(数字ではなくプログラミングを使用)
あなたの仕事は、白黒のアウトライン画像(サンプル画像は下にあります)を取り、それを色で塗りつぶすプログラムを作成することです。各領域をどのように区切るか、どの色で塗りつぶすかはあなた次第です(RNGを使用することもできます)。 例えば: ご覧のとおり、私は明らかにMSペイントに関して優れた能力を持つアーティストです。 得点 これは人気のコンテストなので、正味の投票数が最も多い答えが勝ちます。投票者は次の方法で回答を判断することが推奨されます 入力基準:白/薄灰色の背景と黒/濃灰色の輪郭で構成される画像 色付けがどれだけうまく行われたか。上記とは異なり、白い領域がほとんどまたはまったくないことを意味します(明らかにクラウドなどに白色を使用する場合を除きます)。 特定のセクションで使用される色のカスタマイズ可能性 (さまざまな詳細の)さまざまな画像の範囲でシステムがどれだけうまく機能するか プログラムが画像ごとに要する時間を投稿します。私たちはコードゴルフをしているわけではないかもしれませんが、より短く、より速く、より効率的なコードはより良いとみなされるべきです 新しいイメージを画面またはファイルに出力する必要があります(回答に表示できるように2MB以下) その画像タイプに出力することを選択した理由を正当化し、コードの動作をコメント/説明してください バインドされているそれぞれの形状に使用される色の適用可能性(現実的な配色、つまり草は緑、木製のフェンスは茶色など) 「各領域をランダムに色付けすることもできますが、「フェンス」を識別して同様に色付けすることができれば、それは賛成に値するものです」-ネイサン・メリル これは人気コンテストであるため、オプションで次のように判断することもできます。 全体的な魅力(画像の見栄え) 芸術的センス; シェーディングや水彩風の色付けなどでプログラムできる場合 一般に、断食プログラムと最高の一般投票で、最高品質の最小出力画像(ファイルサイズ)が勝ちます。 使用すべきだと思われる他の審査仕様がある場合は、この投稿のコメントでそれらを推奨してください。 例 私は何も持っていない; サンプル画像はすべてクリエイティブコモンズライセンスのものです。 ソース:https : //pixabay.com/ro/stejar-arbore-schi%C5%A3%C4%83-natura-303890/ ソース:http: //www.freestockphotos.biz/stockphoto/10665ソース:http:/ /crystal-rose1981.deviantart.com/art/Dragon-Tattoo-Outline-167320011 出典:http://jaclynonacloudlines.deviantart.com/art/Gryphon-Lines-PF-273195317 出典:http://captaincyprus.deviantart.com /アート/ドラゴン・アウトライン-331748686 出典:http://electric-meat.deviantart.com/art/A-Heroes-Farewell-280271639 出典:http://movillefacepalmplz.deviantart.com/art/Background-The-Pumpkin -古き良き時代の農場-342865938 編集:黒/白ではないピクセルと黒/白ではなくグレーを含む画像の原因となるラインのアンチエイリアスにより、ボーナスチャレンジとして対処することができます。私の意見では、これは十分に簡単なはずです。

2
真剣に、GolfScript、CJam、またはPyth?
少し前に、次の質問が尋ねられました:GolfScript、CJam、またはPyth? タイトルのみに基づいて、私はそれは非常に素晴らしい挑戦になると思いましたが、残念なことに、それはヒントを求める質問であることが判明しました。これが私が読みたかった挑戦です: ゴルフの言語は実世界では使用されていないと誰が言ったのですか?誰もが知っているように、コードの行ごとのバグの割合は、使用されているプログラミング言語に関係なく同じであるため、これらの言語のデバッグおよび保守コストを削減する明確な機会があります。あなたの会社はついに光を見て、Golfscript、CJam、Pythを使用して製品を開発することにしました。 残念ながら、2、3か月後、ハードドライブにはコードスニペットが散らばっており、どの言語がどの言語で書かれているのかさえわかりません(Perlを使用しているプログラマーもいます)。 CJam、Golfscript、Pythのどれがプログラムの記述言語であるかを検出するツールを作成する必要があります。状況は非常に重要です。任意の言語を使用できますが、短くしてください(データストレージは高価です。使用するバイトが多いほど、コストがかかります)。 全般 最短コード勝利 標準的な抜け穴など オンライン通訳を使用しないでください 関数またはプログラムを書くことができます evalを使用して独自の言語を検出できます 入力 入力は標準入力ストリームから、または文字列として取得されます 入力には、ASCII印刷可能文字と改行のみが含まれます 入力のサイズは最大256バイトです 出力 出力は出力ストリームに出力されるか、文字列/シンボルのシーケンスとして返されます 入力は間違いなく有効である場合Xの印刷、プログラム又は戻りXを、X ∈{CJam、Pyth、Golfscript} 注釈:「疑いなく」とは、言語の検出に一貫して失敗するダムアナライザーで答えることができるという意味ではありません。Pyth、私は期待していない単純なプログラムが認識される(ただし、ハードコード)。同じことがCJam(チートシート、例)とGolfscript(例)にも当てはまります。前のリンクは、各言語の仕様を指しています。ファジー/ベイジアンアプローチを使用する場合、「疑いのない」とは、高いレベルの信頼性を意味します(たとえば、分類で99%を獲得します)。 実際のテストスイートについては、以下を参照してください。 入力が複数の言語で有効な場合、検出された各言語を印刷/返却する必要があります。印刷するときは、複数の出力の間に区切り文字が必要です(スペース、改行、コンマなど)。 言語が試行される順序は重要ではありません ケースは気にしません(CJam、cjam、CJAM、SPAM)[1] 上記の言語がいずれも検出されない場合は、「Probably Perl」を印刷します。mbomb007からのこのコメントのおかげで、上記のケースではSeriously、4バイトのペナルティ(両方の文字列の差)に対して" "を出力することもできます。 [1]明確にするために、スパムは無効です 例 入力 "Crime predicted: -- Calling: 1--555- "30*{_5<{iAa*:mr}&}/ 出力(複数の戻り値の例) ["Golfscript", "Cjam"] 入力 3 出力(標準出力の例) golfscript cjam pyth 入力 if {} aazd 出力 …


30
使用せずにすべての印刷可能なASCII文字を印刷する
では、プログラミング言語お好みの、別の1出力、それぞれが95のプログラム、書き込み95個の印刷可能なASCII文字を プログラム内のどこにでも発生して、その文字なしを。 あなたの言語であった場合たとえば、Pythonの、文字を出力し、あなたのプログラムがPあるかもしれません print(chr(80)) PASCIIコード80を持っているためです。このプログラムはP、ソースコードに表示されないため有効です。ただし、小文字を出力するプログラムのp場合は print(chr(112)) それは、印刷を行いながら、ために無効になりp、pコードの中に存在しています。有効なプログラムは exec(chr(112)+'rint(chr(112))') これは印刷さpれpますが、含まれません。 あなたの目標は、あなたの95のプログラムのそれぞれをできるだけ短くすることです。あなたのスコアはすべてのプログラムの文字の長さの合計です。 何らかの理由で一部の文字に対して有効なプログラムを作成できない場合、それらの文字を「Did Not Program」またはDNPとしてマークし、それらのプログラムを完全に省略できます。これにより、構文的に厳密な言語が競争できるようになります。 勝利の答えは、最も低いスコアがある答えであるの最も少ないDNPの持っている回答のセットを。 ルール すべてのプログラムのソースコードには、印刷可能なASCIIに加えてタブと改行のみを含めることができます。これらはすべて1文字としてカウントされます。(異なるエンコーディングでは、存在しない文字を簡単に省略できるためです!) 注:このルールは必要なようですが、エンコードが異なる言語がたくさんあるので、それらの答えを見るのはクールだと思います。したがって、このルールを破ることができますが、あなたは好きな文字を使用できますが、あなたの答えは非競争的になり、勝つことはできません。 プログラムは、言語の標準的な規則に従って、実際の完全なプログラムでなければなりません。関数とREPLスニペットは許可されていません。 各プログラムの出力は、stdoutまたは使用している言語で受け入れられている代替に行く必要があります。 プログラムは入力を要求したり、入力を要求したりしないでください。(入力のプロンプトが言語固有のものである場合は、問題ありません。) プログラムは確定的で、実行時間が有限で、独立している必要があります。たとえば、他のプログラムとは別のフォルダーで実行されるかどうかは問題ではありません。 プログラムの出力は、対応する正確な印刷可能なASCII文字である必要があります。オプションで、後続の単一の改行が続きます。 95の(理想的には)すべてのプログラムに関する情報、およびスコアとDNPを必ず含めてください。あなたはリストする必要はありませんすべて「のような単純なパターンに従ったプログラムをprint(chr(80))、print(chr(81))、print(chr(82))...」しかし、あなたは彼らがすべて確認していることを確認します仕事とあなたのスコアが正しく追加されています。 参考までに、プログラムで出力する必要がある95の印刷可能なASCIIは次のとおりです。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

30
「ごまかす」ウマ
長い間潜んでいる、初めてのポスター。だからここに行きます。 quiineのWikipediaページでは、「それ自体のソースコードを見ると、quineは「ごまかし」と見なされます」と書かれています。あなたの仕事は、独自のソースコードを読み取るこれらの「不正行為」の1つを作成することです。 これはcode-golfなので、バイト単位の最短コード(各言語で)が勝ちます。つまり、5バイトのPythスクリプトは21バイトのPythonスクリプトに勝るものではありませんが、15バイトのPythonスクリプトには勝っています。 ファイルI / Oを使用してソースコードを読み取る必要があるため、公式のWikipediaページから取得した次のJavaScriptコードは無効です。 function a() { document.write(a, "a()"); } a() ディスク上のファイルのソースコードにアクセスする必要があります。 ファイル名を指定することはできません。ファイル名自体を検出する必要があります。 みんなクリア?行け!
56 code-golf  quine 

9
温かいウェルカムシークレットハットを描く
Winter Bash 2014は盛り上がりを見せており、私たち全員が帽子を愛していませんか?特に秘密の帽子! それでは、秘密の帽子の1つを描いてみませんか? 挑戦 あなたの仕事は、選択した言語で、このページに表示されているとおりの正確な構造を持つ、ウォームウェルカムハットを比例して描くことです。 いつものように、ベクターまたはラスターグラフィックスを使用して、帽子をファイルまたは画面にレンダリングできます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があります。 さらに、帽子の実際の内容(画像の色付き部分の境界矩形の領域)は、出力画像の40%以上をカバーする必要があります。 仕様書 以下の画像は、帽子のさまざまな寸法を示しています。ピクセルなど、すべての寸法は単位内にあります。画像内のすべての境界線の半径は、13単位の半径で描画されます。 色: 星と円形リングの赤-rgb(255、28、34) 円の中の黄色-rgb(255、202、87) 最軽量グレー-rgb(88、88、92) 最も暗い灰色-rgb(31、26、26) ミドルグレー-rgb(64、64、64) 得点 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 警告の言葉として、既存の圧縮の使用(圧縮GIFの埋め込みなど)は、いくつかの標準的な抜け穴に該当します。

30
OEISの進化
この課題の目標は、整数シーケンスのオンライン百科事典を一度に1 シーケンスずつ再作成することです。Hello Worldの進化と同様に、各回答は以前の回答に依存します。 時間が経つにつれて、この課題はOEISシーケンスの「家系図」を作成します。このツリーに追加するのは簡単です。 ツリーの任意の深さNにある前の回答を見つけます。 その回答のシーケンスによって生成された最初のN個の数値を決定します。 これらの同じ番号で始まり、以前に使用されたことのないシーケンスをOEISで見つけます。 見つけたばかりのこの新しいシーケンスを生成するプログラムを作成します。 回答を深さN + 1として提出する 回答のレベルはスコアリングに影響するため、常に可能な限り深いレベルで回答をツリーに追加する必要があります。ツリーのどこにも答えが収まらない場合は、ツリーの新しいブランチを開始して、回答を深さ1に設定できます。 回答要件 シーケンスを出力するにはいくつかの方法があります。 最初のオプションは、(STDINから、または引数として)数値を入力し、選択したシーケンスのN番目の数値を返すプログラムまたは関数を作成することです。Nに対してシーケンスが定義され、NとS_Nが「合理的なサイズ」であると想定できます(したがって、オーバーフローは発生しません)。また、0インデックス、1インデックス、またはシーケンスのOEISページの「オフセット」の下にリストされているインデックスなど、問題のない合理的なインデックスを使用することもできます。最初のインデックスによって生成される用語は、OEISエントリの最初の用語と一致する必要があります。 2番目のオプションは、数値を入力し、シーケンスの最初のN項を返すプログラムまたは関数を作成することです。出力の最初の用語は、OEISエントリの最初の用語でなければなりません(最初のいくつかの用語を残すことはできません)。連続する用語は、数字以外の文字の任意の文字列で区切る必要があるため、0,1 1.2/3,5;8,11機能しますが011235811カウントされません。 3番目のオプションは、数字の連続ストリームを出力するプログラムを作成することです。2番目のオプションと同様に、連続する用語の間に区切り文字が必要です。 答えには、スタックスニペットの解析を支援するために、次のようなヘッダーを含める必要があります。 # [language], [number] bytes, depth [number], A[new sequence] from A[old sequence] 答えには、シーケンスを生成するコードと、子孫に含める必要がある最初のいくつかの用語を含める必要があります。コントローラがツリー図の一部として使用できるように、これらの少数の用語の前には正確な単語をterms:付ける必要があります。選択したシーケンスの説明を書くこともお勧めします。 投稿が深さ1の回答であり、したがって先祖がない場合はfrom A[number]、ヘッダーのを単に省略する必要があります。 以下に回答例を示します。 # Perl, 26 bytes, depth 3, A026305 from A084912 various code here and here The next …

30
「bzzt」ゲームをプレイする
勝者:AditsuのCJam回答!なんと25バイト!いいね! 引き続き回答を送信できますが、勝つことはできません。後世のために保管された元の投稿: 「Bzzt」ゲームは、数を数える必要があるゲームです(この場合は500)。ただし、数値に3が含まれている場合、または3で割り切れる場合は、その数値を言うことはありません。代わりに、「Bzzt」と言います。 ルール: 数字をハードコーディングすることはできません。 数は、以下の要件のうち少なくとも1つを満たす必要があります。 3で割り切れる 数字には3が含まれています 一部のタイプの区切り文字は必須です(12bzzt14はカウントしません) スコアはバイト単位で測定されます。 1または0(選択)から開始して、正確に500までカウントする必要があります。 数値は出力する必要がありますが、その方法は関係ありません(たとえば、stdout、テキストファイルへの書き込みなど)。 0は3で割り切れるか、割り切れません。選んでいいですよ。 数値を一度に1つずつ(たとえば、出力1、次に2、次にbzzt、次に4など)または一度にすべて出力できます(たとえば、出力1 2 bzzt 4 5)。 文字3を単語「bzzt」に置き換える必要があります。これは大文字と小文字を区別しません(bZzt、Bzzt、bzztはすべて大丈夫です)。 これはコードゴルフの挑戦なので、最短のコードが勝ちます。 このコンテストは2014年6月30日(投稿から7日)で終了します。
56 code-golf 

30
100万未満の素数のリスト
これは私の最初のコードゴルフの質問であり、非常に簡単な質問です。コミュニティガイドラインに違反した可能性がある場合は、事前に謝罪します。 タスクは、100万未満のすべての素数を昇順で印刷することです。出力形式は、出力の行ごとに1つの数字にする必要があります。 目的は、ほとんどのコードゴルフの提出と同様に、コードサイズを最小限にすることです。ランタイムの最適化もボーナスですが、副次的な目的です。

10
millitextフォントで書かれたテキストの解析
millitextフォントのテキストを読む フォントがあり、ここで、単一の、1×5画素ブロックに各文字に適合します。これは、各ピクセルのRGBチャンネルを使用して1つのピクセルを各チャンネルに1つずつ、3つのサブカラムに拡張することにより(LCD画面を使用している場合)行います。あなたの仕事は、このフォントでエンコードされたテキスト文字列を取り込み、それを「デコード」することです。 ミリテキストアルファベット CHARACTER: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ENCODING: WYWBMRRMMMWYWYWWWMWBMRMYGYGYCWMMMMMW MGBWMRRMMMMMRMRRRMGBMRWMMMMMRGMMMMMB MGWWWWWBWWWYRMWWMWGBYRWMMYMYGGMMWGGG MGRBBBMBMBMMRMRRMMGBMRMMMRWMBGMCWMGR WWWWBWWBWWMYWYWRWMWWMWMMGRCMYGWBMMGW 各色を1文字の記号に短縮しました(R =赤、G =緑、B =青、C =シアン、Y =黄、M =マゼンタ、W =白)。 入力フォーマット このための入力形式はかなりオープンです。入力は、各列を含む配列、各行を含む配列、a char[][]、またはそのようなものにすることができます。また、「red」、「green」、「blue」の完全な単語を、大文字/小文字を選択して使用することもできます(ただし、単語ごとに一貫している必要があります。「RED」と「green」は使用できません)または「青」)。 もしあなたの言語がたまたまそれをサポートしているなら、入力を色にすることもできます(それがうまくいくかもしれませんが、私はそれを知っています) 入力には、上記のアルファベットのエンコードされた文字のみが含まれると想定できます(特に、出力にスペースや句読点はありません)。 出力フォーマット 文字列または何らかの文字配列を出力できます。文字を大文字にするか小文字にするかを選択できますが、すべて大文字にする必要があります。 例 MWRRGMGYRY MRRRMMMMRM WWRRMWMYRM -> HELLOWORLD MRRRMWMMRM MWWWGMGMWY ルール これはcode-golfなので、最短の回答が勝ちます! テストセット WMWGMWWMYYGMYWGMBMMYWYGMWYWMWRWWMYGW GMRMMGRMMMMMMRMMBMWMRMMMRMGMRRMBMMMR GWWMMGRYYYMWMWMGBMWYWMMMWYGWWRWGGMMM -> THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG GMRWMGRMMMMWMRMMBMMRRMMCRMGMRRMRGMMM GMWCWWWMYMGMMRGMWWMRWYGBWMGMWWMWGYGW
56 code-golf 

30
数学なしの出力Pi [終了]
できる限り少ないバイトで、あなたの仕事は以下を出力するプログラムを書くことです: 3.14 もちろん、Piの遅い日のお祝いに!:) ルール 好きなようにできますが、いくつかの制限があります。 プログラムのどこでも算術演算を使用できません。この含む+、-、*、/、%、^(べき乗)、など...これはまた、(通常インクリメント含む++(、)デクリメント--)、ビット演算を、任意のような代替として使用することができる機能に内蔵されましたsum()、prod()、mod()、double()、pow()、sqrt()、inc()、dec()など...(著者の裁量) 数字は3、1と4もないあなたのコード内の任意の場所に表示されます。 あなたはありませんあなたの言語での代替品として持っている可能性のある定義済みの変数/定数を使用3、1と4。(著者の裁量) あなたはまたかもしれないような任意の三角関数を使用しsin()、cos()、tan()、arcsin()、arccos()、arctan()、sinh()、cosh()、tanh()、等...(著者の裁量) Pi(または)の組み込み値または事前定義値を使用することはできません3.14。Webリクエストはありません。 あなたのプログラムは(それを実行する以外に)いかなる種類の入力も要求できません。 3.14出力できるのは唯一のものであり、より長い/大きい出力の一部になることはできません。 勝者 4月18日のバイト数が最も少ない答えが勝ちです。幸運を! 賢い心からの賢い答えを楽しみにしています!マルボルジ誰か?:P
56 code-golf  pi 

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