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

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

4
メタチックタックトーをプレイしましょう!
メタ三目並べのゲームをプレイしましょう! これは王様ですメタ三目並べのオブザトーナメントです。Meta tic-tac-toeのルールは次のとおりです。 三目並べの規則はすべて適用されます。 1つのマスターボードを作成するために9つのボードが配置されています。そのようです: 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || ----- 6|7|8 || 6|7|8 || 6|7|8 ======================== 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || …

5
この言葉はボッグルボードにありますか?
前書き 飲みながらワールドカップを観戦した後は、腰を下ろして友好的なゲームをプレイします。あなたがボード上にさえないナンセンスな言葉でみんなの時間を無駄にしていると非難されると、気性が上がります!あなたは二重に見えるかもしれませんが、確かにあなたはあなたの言葉がボード上にあることを確認するプログラムを書くのに十分にまっすぐ考えています。 あなたのタスク 入力としてボッグルボードと単語を受け取り、単語がボード上にある場合はTrueを返し、単語がない場合はFalseを返すプログラム、スクリプト、または関数を作成します。 入力は、\n区切られた6 行の形式になります。最初の5行は5x5ボッグルボードで構成され、各行には5つの大文字が含まれます。6行目には、同様にすべて大文字で質問中の単語が含まれます。 サンプル入力: AJNES TNFTR LSAIL UDNEX EQGMM DAFTER 出力は、選択したプログラミング言語で明確にTrueまたはFalseを意味し、0、null、および空を意味するFalseの標準規則に準拠するものであれば何でもかまいません。 上記の入力のサンプル出力: 1 I / Oガイドライン 入力は標準入力から読み取られ、出力は標準出力に返されます。 または 入力は関数への単一の文字列引数であり、answerはその関数の戻り値です。 切り替えルール ボード上の連続した隣接する非繰り返しタイルのパスを介して単語を構築できる場合、単語は「ボード上」にあります。 タイルは、それを囲む8つのタイルに隣接していると見なされます(斜めのパスは許可されます)。ボードの端のタイルは、5つのタイルにのみ隣接しています。コーナーのタイルは3つだけに隣接しています。 単語内の連続する文字はi隣接している必要があり、単語内のth文字はi-1thとi+1thに隣接している必要があります。 1つの文字が1つの単語に2回以上表示される場合がありますが、1単語につき2回以上、同じ枠を使用することはできません。 あなたが以前にboggleをプレイしたことがないが、これらのルールを感じたい場合、オンラインboggleサイトwordsplay.netは役に立つかもしれません。 通常のboggleとは異なり: 単語が有効な英語であることを心配する必要はありません。 Qu単一のタイルはありません。 質問中の単語の長さは0を超えます。 例 ボード上 AJNES TNFTR LSAIL UDNEX EQGMM これらの単語はTrue、FATE、DATING、STANDS、LIFTSを返す必要があります。 これらの単語はFalseを返す必要があります:SADDEN、SULTANS、EXIST、SUEDE、QUEST これはコードゴルフの挑戦なので、最短のコードが勝ちます!
38 code-golf  boggle 

10
便器プロトコル
バックグラウンド 男性のトイレで個々の小便器を選ぶ順番を説明する、いわゆる「尿プロトコル」は、複数の場所で議論されてきました。1つのバージョンがこのxkcdブログ投稿で提供されています。この質問は、わずかなバリエーションに関するものです。 配置:行のnの小便器。 プロトコル:新しい人はそれぞれ、すでに使用されている便器から最も遠い便器の1つを選択します。 これは、最初の人が小便器を選ぶ際に制限を設けないことに注意してください。 更新:n人がn個の小便器を選択できるさまざまな方法のシーケンスは、1、2、4、8、20 ...で始まります。これは、OEIS A095236と同じではないことに注意してください。質問。 仕事 0〜10の整数nを指定すると、n人が小便器を占有できるすべての可能な順序が(任意の順序で)出力されます。各順序は、最終的な配置として印刷する必要があります。左端の小便器から始まり、オプションの非英数字セパレーター(前ではなく)で始まる、人々(最初の9人は1〜9、10番目は0)を表す数字のシーケンス以降)数字。たとえば、次の出力は両方とも有効です。 >> 3 132 213 312 231 >> 4 1|3|4|2 1|4|3|2 3|1|4|2 4|1|3|2 2|3|1|4 2|4|1|3 2|3|4|1 2|4|3|1 STDIN(または最も近い代替)、コマンドライン引数、または関数引数を介して入力を取得して、プログラムまたは関数を作成できます。結果はSTDOUT(または最も近い代替)に印刷する必要があります。 得点 最短のコードが優先されます。標準の利用規約が適用されます。

14
暗闇で文字を並べ替える
プログラムは、次のように入力として文字の行を受け取る必要があります。 @+.0 そして、次のように、文字を暗さでソートして出力します。 .+0@ 要件: 暗闇の検出には等幅フォントを使用する必要があります。 各文字が占めるピクセル数を調べる必要があります。実際に文字を描画してピクセルをカウントする必要があります。つまり、ピクセル量をハードコーディングすることはできません。 より具体的なルールとして、フォントを切り替えてもプログラムは機能するはずです。さらに、プログラムは、コード内の変数、値、または文字列を変更するだけでフォントを切り替えることができる必要があります。 アンチエイリアスを使用する場合、ピクセルを完全に黒いピクセルの割合としてカウントする必要があります。たとえば、rgb(32, 32, 32)ピクセルはフルピクセルの1/8としてカウントされます。キャラクターがアンチエイリアス処理されていない場合、このルールを無視してください。 ピクセルをカウントした後、ピクセルの量で文字をソートし、順番に出力する必要があります。 これはcode-golfなので、バイト単位の最短コードが優先されます。
38 code-golf 

30
予期しない機能を引き起こすソースコードの空白行の削除[終了]
プログラムロジックのフローに空白行が存在する場合は正常に動作するが、その行が削除されると予期しない動作が中断または発生するスクリプトを記述します。 標準的な抜け穴と愚かな答えを避けてください。プログラムは、いくつかの整数を追加するだけでも、「有用な」ことを行う必要があります。 複数行の文字列から空行を削除しても、その複数行の文字列から期待される出力が技術的に変更されない限り(つまり、一致するすべての空白行を削除する場合)、カウントされません^$。 ホワイトスペースの愚行も許可されていません。キャリッジリターン、タブ、スペースなどで奇妙なことをしないでください。

11
音楽:この和音には何が含まれていますか?
入力 トライアド和音の記号(http://en.wikipedia.org/wiki/Chord_(music)#Triadsを参照)。 出力 与えられたコードを構成する音。 例 入力:AM 出力:A C# E 入力:C#m 出力:C# E G# 入力:Db+ 出力:C# F A 入力:C0 出力:C D# F# ボーナス 7番目の和音にも対処できる場合は-50 -150は実際に和音を鳴らします -150ピアノで和音を演奏する方法を示すために印刷可能なキャラクターを使用する場合。例AM: ┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐ │ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │ │ │ ││ │ │ …
38 code-golf  music 

24
ロゼッタストーンチャレンジ:とにかく平均は何ですか?
Rosetta Stone Challengeの目標は、可能な限り多くの言語でソリューションを作成することです。プログラミングの多言語性を自慢しましょう! チャレンジ 「平均」という用語を使用する場合、一般的に算術平均を意味します。これは、数の合計を数で割ったものです。ただし、「平均」という言葉には、調和平均、幾何平均、算術平均、二次平均、および逆調和平均など、さらに多くの意味があります。 あなたの挑戦は、数字のリストを入力し、それらの5つの異なる手段を出力するプログラムを書くことです。さらに、できるだけ多くの言語でプログラムを作成しようとしています。これは主に言語のショーケースであるため、言語が持つあらゆる種類の標準ライブラリ関数を使用できます。 入力 入力は正数のリストになります。 1,2,3,4,5 1.7,17.3,3.14,24,2.718,1.618 8.6 3,123456 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602 3,4,4,6.2,6.2,6.2 出力 出力は、上記の順序の5つの平均(調和、幾何、算術、二次、逆調和)になります。便利なことに、これは昇順と同じです。 2.18978,2.6052,3,3.31662,3.66667 3.01183,4.62179,8.41267,12.2341,17.7915 8.6,8.6,8.6,8.6,8.6 5.99985,608.579,61729.5,87296.6,123453. 5.95799,14.3041,22.5453,27.9395,34.6243 4.5551,4.74682,4.93333,5.10425,5.28108 I / O形式にはある程度の妥当性がありますが、小数点以下の桁数の精度が必要です。浮動小数点出力が必要なので、浮動小数点入力を想定できます。 目標達成基準 客観的な勝利基準については、次のとおりです。各言語は、最短のエントリを書くことができる人に関する個別の競争ですが、全体的な勝者は、これらのサブ競争のほとんどに勝った人になります。これは、多くの一般的でない言語で答える人が有利になることを意味します。Code-golfは、言語に複数の解決策がある場合の大部分のタイブレーカーです。最短のプログラムを持っている人がその言語の功績を認められます。 同点の場合、勝者は最も多くの2位の応募者(など)になります。 ルール、制限、および注意 あなたのプログラムは、2014年9月2日より前に存在した任意の言語で作成できます。また、テストすることができないため、より一般的ではない/難解な言語で作成されたいくつかの応答を検証するために、コミュニティに頼る必要がありますそれら。 単一の回答に含まれるすべての異なる提出物を保管してください。 また、わずかに異なる言語の方言で基本的に同じ答えを持つシェナンガンはありません。私は、提出物が十分に異なっているかどうかの裁判官になります。 現在のリーダーボード このセクションは定期的に更新され、言語の数と各言語のリーダーを示します。 アルゴイド(337)-ベータ崩壊 APL(42)-algorithmshark アウク(78)-デニス BBC BASIC(155)-ベータ崩壊 C(136)-デニス C ++(195)-ゼータ C#(197)-マーティン・ブットナー CJam(43)-デニス Clojure(324)-マイケル・イースター コブラ(132)-オウラス CoffeeScript(155)-マーティン・ブットナー コモドールベーシック(104)-マーク Common Lisp(183)-DLosc …

30
指定された数字を含む-100〜100のすべての数値を出力します
0〜9(両端を含む)の数字を指定すると、関数/サブルーチンは、指定した数字を含む-100〜100(両端を含む)のすべての数値を出力する必要があります。 例えば: Input: 9 Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99 ルール: 文字列(選択した言語で表現される方法は問わない)やchar配列は使用できません。(コンソールに回答を印刷する場合を除きます。) 配列は使用できません。 得点: スコア=サブルーチン/関数の長さ(空白はカウントされません) 最も低いスコアの答えが勝ちです。 空白はカウントされません。コードを適切にフォーマットしてください! …
38 code-golf 

13
2つの数字を追加する最長コード[終了]
仕事: を使用して、2つの数値をすべて簡単に追加できることを知っています+。あなたの仕事は、2つの入力番号を追加できる最長のコードを作成することです。 ルール: すべてのコードはトピックに含まれている必要があります(長さを追加するために非追加コードを入力しないでください) カウントは文字単位ですが、タブ、スペース、または改行はカウントしません。 過度に長い変数名を使用しないでください これはコードボウリングですので、最も長い答えが勝ちます!

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

9
テキストの圧縮と解凍—「Nevermore」。
コードゴルフでの圧縮ツールの使用に関する最近の議論で、独自のテキストコンプレッサーとデコンプレッサーを作成することは素晴らしい挑戦になると思いました。 チャレンジ: 2つのプログラムを作成します。1つはASCIIテキストをバイトシーケンスに圧縮し、もう1つは圧縮解除します。プログラムは同じ言語である必要はありません。 最初のプログラムは、ASCIIファイルを(ファイルから、または標準入力から、または言語にとって最も自然なメカニズムを使用して)読み取り、その圧縮バージョンを出力する必要があります。(圧縮された出力は、任意のバイトで構成されている場合があります。読み取り可能である必要はありません。)2番目のプログラムは、最初の出力を読み取り、元の入力テキストを再作成します。 得点: ソリューションのスコアは、次の3つのカウントの合計になります。 圧縮プログラムの長さ(文字数)。 以下のテスト入力が与えられた場合の、コンプレッサーの出力の長さ(バイト単位)。 圧縮解除プログラム(圧縮器と異なる場合)の長さ(文字数)。 3つのカウントすべてとその合計を回答に書き留めてください。これはコードゴルフであるため、スコアが低いほど優れています。 ルールと制限: 選択した言語にバンドルされている場合でも、既存の圧縮または解凍ツールまたはライブラリを使用することはできません。特定のツールまたは機能が許可されているかどうか疑問がある場合は、お問い合わせください。 圧縮プログラムは、タブ(ASCII 9)および改行(ASCII 10)を含む印刷可能なASCIIテキストで構成される入力を処理できる必要があります。任意のUnicodeおよび/またはバイナリ入力を処理できますが、必須ではありません。 圧縮解除プログラムは、入力として圧縮器に与えられたものとまったく同じ出力を生成する必要があります。特に、入力に末尾の改行が含まれていない場合は、末尾の改行を出力しないように注意してください。(以下のテスト入力には末尾の改行があるため、これを個別にテストする必要があります。GolfScriptのヒント:'':n。) 圧縮プログラムと圧縮解除プログラムは同じプログラムである場合があります(コマンドラインスイッチなどで適切なモードが選択されている場合)。その場合、その長さは一度だけカウントされます。 プログラムの速度が極端に遅くなったり、メモリを大量に消費することはありません。あまり新しくないデスクトップ(2.2GHz AMD Athlon64 X2)でテスト入力を圧縮または解凍するのに1分以上かかる場合、または1ギガバイトを超えるRAMを消費する場合、ソリューションを無効と判断します。これらの制限は意図的に緩いものです。プッシュしないようにしてください。(以下の修正を参照してください。これらの制限内で少なくとも100 kBの入力を処理できる必要があります。) スコアリングにはテスト入力のみが重要ですが、少なくとも任意の入力テキストを圧縮するよう努力する必要があります。テスト入力に対してのみ適切な圧縮率を達成するソリューションは、技術的には有効ですが、私からは賛成を得られません。 圧縮プログラムと圧縮解除プログラムは自己完結型である必要があります。特に、選択した言語の標準ランタイム環境の一部ではないファイルまたはネットワークリソースを読み取ることができることに依存している場合、そのファイルまたはリソースの長さは、プログラムの長さの一部としてカウントする必要があります。(これは、入力をWeb上のファイルと比較し、一致する場合は0バイトを出力する「コンプレッサー」を許可しないためです。申し訳ありませんが、これは新しいトリックではありません。) 修正と説明: コンプレッサーは、妥当な時間とメモリ使用量(最大1分、1 GBのメモリ)内で、少なくとも100 kBの典型的な英語テキストで構成されるファイルを処理できる必要があります。圧縮解除プログラムは、結果の出力を同じ制限内で圧縮解除できる必要があります。もちろん、それよりも長いファイルを処理できるということは完全にすばらしいことであり、賞賛に値します。長い入力ファイルをチャンクに分割して個別に圧縮したり、他の手段を使用して圧縮効率と長い入力の速度を犠牲にしたりしてもかまいません。 圧縮解除プログラムが出力で同じ改行表現を使用している限り、圧縮プログラムでは、優先プラットフォームのネイティブ改行表現(LF、CR + LF、CRなど)を使用して入力を指定する必要があります。もちろん、コンプレッサーが元の入力と同じ種類の改行を出力する限り、コンプレッサーがあらゆる種類の改行(またはプラットフォームに関係なくUnixの改行のみ)を受け入れることも問題ありません。 テスト入力: 回答の圧縮効率を判断するために、次のテスト入力(エドガーアランポーによるレイヴン、Project Gutenberg提供)が使用されます。 Once upon a midnight dreary, while I pondered, weak and weary, Over many a quaint and …

13
相互馬のゴルフ
選択した2つの言語を使用して、できるだけ小さな「相互クイン」を作成します。 つまり、プログラムQの出力がPのソースコードと同じになるように、言語BのプログラムQのソースコードを出力する言語AのプログラムPを記述します。 空のファイルはカウントされず、「ソースファイルを読み取って印刷する」スタイルのプログラムもカウントしません。 編集: P = Qの回答はカウントされなくなりました。

30
すべての数字の合計を数える
この課題は、1から特定の数までの整数内のすべての数字の合計をカウントするプログラムまたはスクリプトを作成することです。 入力、1つの正の整数。出力、その数字とすべての小さい数字の桁の合計。 例: Input: 5 Integer Sequence: 1, 2, 3, 4, 5 Sum of Digits: 1 + 2 + 3 +4 + 5 = 15 Input: 12 Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Sum of Digits: 1 + 2 + 3 + …
38 code-golf  math 

30
干し草の山で針を見つける
すべて同じ印刷可能なASCII文字で構成される少なくとも2x2のサイズの長方形の干し草が与えられた場合、異なる文字である針の位置(左上から数えて)を出力します。 たとえば、次のhaystackが入力された場合: ##### ###N# ##### ##### 出力は、3,1インデックスがゼロの場合(このチャレンジで使用するもの)または4,2インデックスが1の場合です。 haystackは、印刷可能な任意のASCII文字で構成できます。 ^^^ ^^^ ^N^ ^^^ ^^^ ^^^ 出力: 1,2 針は他の印刷可能なASCII文字になります。 jjjjjj j@jjjj jjjjjj 出力 1,1 コーナーに針を置くことも可能です: Z8 88 出力 0,0 88 8Z 出力 1,1 または、針を端に置くには: >>>>>>>>>> >>>>>>>>>: >>>>>>>>>> 出力 9,1 規則と説明 入力と出力は、任意の便利な方法で指定できます。これは、文字のリストのリスト、単一の文字列などとして入力を取得できることを意味します。 結果をSTDOUTに出力するか、関数結果として返すことができます。提出物の中で、出力の順序を指定してください(つまり、チャレンジで使用される水平方向と垂直方向、またはその逆)。 完全なプログラムまたは機能のいずれかが受け入れられます。 あなたはしない使用する文字を選択。それが課題です。 干し草の山のサイズは少なくとも2x2であることが保証されているため、どちらが針であり、どちらが干し草であるかは明確です。 入力に含まれる針は1つだけで、サイズは1文字だけです。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
38 code-golf  string 

30
非表示のテキストを印刷する
文字列を入力として、文字列の長さに等しい数の空白文字(0x0Aおよび0x20)を出力します。 たとえば、文字列が与えられた場合、Hello, World!コードは正確に13個の空白文字のみを出力する必要があります。これらは、スペースと改行の組み合わせにすることができます。 コードは、後続の改行やスペースを追加出力しないでください。 テストケース: Input -> Amount of whitespace to output "Hello, World!" -> 13 "Hi" -> 2 " Don't Forget about Existing Whitespace! " -> 45 "" -> 0 " " -> 13 " " -> 1 得点: これはコードゴルフなので、最少バイト数が勝ちます!
38 code-golf  string 

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