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

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

1
リバースエンジニアブラケットの長方形
すべてのプログラマーは、長方形□が本当に楽しいことを知っています。この楽しさを悪化させるために、これらのキュートでファジーな図は、織り込まれたブラケットのグループに変換できます。 この挑戦は私の以前のものの逆です。 次のような連動する長方形のグループがあるとしましょう: +------------+ | | +--+-+ +----+-+ | | | | | | | | | +---+--+ | | | | | | | | | | +--+-+ | +-+--+-+-+-+ | | | | | | | | | | | | | | | | | | | …

30
xのxᵗʰルートをゴルフする
高校に開けられますが(私は半分私の現在の年齢...だったとき)、私はその見つかったF(X)= X (xは-1)最大ことなどを含む、いくつかの興味深い性質、持っていたfは 0≤ xがあるfは(e)、および同位体の核子あたりの結合エネルギーは6× f(x ÷21) ... とにかく、言語のドメイン内の任意の数のxのx 番目のルートを計算する最短の関数またはプログラムを作成します。 例 すべての言語 -1 > -1 ¯0.2 > -3125 ¯0.5 > 4 0.5 > 0.25 1 > 1 2 > 1.414 e > 1.444 3 > 1.442 100 > 1.047 10000 > 1.001 複素数を処理する言語の場合 -2 > -0.7071i i > 4.81 2i …

6
フリップ、フロップ、平均
概要 入力としてプレーンPPM(P3)形式の画像が与えられた場合、画像内の各ピクセルpについて、次の4ピクセルの赤、緑、青のそれぞれを、4ピクセルすべての各チャネルのフロア平均値に置き換えます。 p 自体 p画像が垂直に反転されたときにの位置にあるピクセル p画像が水平方向に反転されたときにの位置にあるピクセル p画像が垂直と水平の両方に反転されたときにの位置にあるピクセル 結果の画像をプレーンPPM(P3)形式で出力します。 詳細については、128x128に拡大されたこの8x8画像を検討してください。 ましょうp赤いピクセルになります。p(および3つの青いピクセル)の新しい値を計算するには、と3つの青いピクセルの値をp一緒に平均します。 p1 = (255, 0, 0) p2 = (0, 0, 255) p3 = (0, 0, 255) p4 = (0, 0, 255) p_result = (63, 0, 191) 例 PPM: 入力、 出力 PPM: 入力、 出力 PPM: 入力、 出力 PPM: 入力、 出力 参照実装 #!/usr/bin/python …

5
代名詞操作
チャレンジ 引数として+記号で区切られた1つ以上の主観的な個人代名詞で構成される文字列を取る関数またはプログラムを記述します。出力は、次の段落で定義された関係の結果である単一の代名詞でなければなりません。 もちろん、確実に存在する文法エラーを修正したいので、自由に編集してください;) これはコードとゴルフのチャレンジなので、最短のコードが優先されます。 関係 このタスクの目標は、私たちが日常的に使用するものを「数学で話す」ものに翻訳することです。「あなたと私」をどう思いますか?さて、「私たち」ですよね?したがって、入力がYou+I出力である場合、文字列である必要がありますWe。3つ以上の代名詞を使用すると、次のようになります。- You+He+They>You 関係は次の表として定義されます。 I You He We You They I I We We We We We You You You We You You He He We You They We We We We You You You They They 「あなた」の問題 さて、ご覧の通り、私はネイティブスピーカーではありません。私の言語(イタリア語)では、複数形you(イタリア語ではvoi)と単数形you(tu)には違いがあります。この挑戦を考えたとき、私は英語で考えていなかったので、複数形と単数形のどちらを使用しているかを認識できないという問題があります。幸いなことに(または明らかに?)、入力/出力は両方の形式で変わらないので、どちらかを使用すれば両方のケースをカバーできます! 入力について 入力は常に「代名詞+代名詞+代名詞」という形式になります...代名詞の最初の文字は大文字で、残りは小文字になります。プラス記号はスペースで囲まれず、代名詞のみで囲まれます。空の入力が可能であり、結果は空の出力でなければなりません。 ボーナス プログラムが2つの新しい代名詞:SheとItを管理する場合、15%の小さなボーナス。彼らは明らかに彼と同じです。この関係は再帰的であるため、彼女->彼女とそれ->それ。したがって、She、He、またはItのみを含む組み合わせは、それらを出力する必要があります。 例 You+I -> …

26
バイト配列をビット配列に分割します
バッファb(1〜104857600バイトの長さ)とビット数n(1 <= n <= 64)を指定すると、バッファをnビットのチャンクに分割する関数を記述します。最後のチャンクを0sまでnビットで右詰めします。 例えば バッファb = "f0oBaR"または同等の[102,48,111,66,97,82]andを指定するとn = 5、 [12, 24, 24, 6, 30, 16, 19, 1, 10, 8] これは、上記のバッファがバイナリとして表される場合、次のようになるためです。 01100110 00110000 01101111 01000010 01100001 01010010 そして、5に再グループ化すると、次のようになります。 01100 11000 11000 00110 11110 10000 10011 00001 01010 010[00] 10進数に戻すと、答えが得られます。 ノート バッファを表すために、言語で最も意味のあるデータ型を使用できます。PHPではおそらく文字列を使用しますが、NodeではBufferを使用したい場合があります 文字列を使用してバッファを表す場合、char-> int変換ではASCIIであると想定します 必要に応じて、入力にintの配列(0〜255)を使用できます。 戻り値は配列または整数のリストでなければなりません テストケース > b = …

30
頭字語を作る
目的 あなたの目標は、入力を頭字語に変換するプログラムを作成することです。入力には文字とスペースのみが含まれることが保証されています。入力には、単語間にちょうど1つのスペースがあります。入力の頭字語を出力する必要があります。 ルール あなたのコードでは、大文字と小文字を区別すること(例えばすることができないfooとFoo同じです) コードでは次の単語を無視し、頭字語に入れないでください。 and or by of あなたはできません単語がすべて小文字であることを前提としています。 出力は、文字間を分離せずに完全に大文字にする必要があります。 末尾の改行は受け入れられますが、必須ではありません。 言語に頭字語機能が組み込まれている場合は、使用しないでください。 例 (入力/出力をグループ化) United States of America USA Light Amplification by Stimulation of Emitted Radiation LASER united states of america USA Jordan Of the World JTW 得点 これはコードゴルフの課題なので、最短のコードが優先されます。 リーダーボード var QUESTION_ID=75448,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function …
24 code-golf  string 

6
棒グラフを描く
かなりのASCII 棒グラフを作成するプログラムを作成することになりました。入力形式は次のとおりです。 [List of words (they can have spaces)] [an integer >= 0] Bar 3 This is so cool 4 IDK-Why 6 入力には、この形式の複数の行があり、各行はグラフの1つのバーを表します。グラフの出力形式は次のようになります。 _ _ _ _ |_|_|_|_| | | | | | | | + [name of 4th bar] | | + [name of 3rd bar] | + [name …

30
交換、削除、繰り返し
前書き 次の文字列を観察してみましょう。 ABCDEFGHIJKLMNOP 文字列の両端を交換すると、次のようになります。 ABCDEFGHIJKLMNOP ^^ ^^ 次の結果が得られます。 BACDEFGHIJKLMNPO その後、文字列の終わりを削除します。この場合はB、とOです。結果は次のとおりです。 ACDEFGHIJKLMNP プロセスを繰り返すと、次のリストが表示されます。 N Result 2 ADEFGHIJKLMP 3 AEFGHIJKLP 4 AFGHIJKP 5 AGHIJP 6 AHIP 7 AP N = 5の場合、結果はであることがわかりAGHIJPます。でN = 7、文字列の長さよりも小さい3 N> 7が考慮されるように、無効この場合。 タスク 少なくとも長さ4および繰り返し数N > 0の文字列Sが与えられた場合、最終結果を出力します。Nは常に有効であるます。 テストケース Input > Output N = 3, S = ABCDEFGHIJKLMNOP > AEFGHIJKLP N …
24 code-golf  string 

12
補猫
目的 64文字以内の任意のテキスト文字列を(STDOUTまたは最も近い代替に)出力する完全なプログラムを作成します。簡単ですよね?さて、ここに問題があります。前の回答の出力に存在していた文字は使用できません。そうです、どれも。 したがって、あなたは合計3日間の最後の答えになろうとしています。つまり、質問を投稿してから72時間以内に誰も質問に答えないようにします。 いくつかのルール 回答(および出力)には、印刷可能なASCII文字、改行(キャリッジリターンを含む)、およびタブのみを含めることができます。 回答の出力は、別の回答の出力と同じではない場合があります。2つの出力は、まったく同じ文字を使用する場合にのみ同じです。 チャレンジ後に作成された言語であっても、このチャレンジ専用に作成されていない言語を使用できます。(もちろん、この言語はテスト可能でなければなりません。) 以前に使用した言語を使用することはできません。 エントリにコメントを含めることはできません。もちろん、追加のコメント付きプログラムを提供することもできます。 連続して2回答えることはできません。 プログラムは少なくとも1バイト必要です。 エントリー形式 回答は一般的に次のようになります。 # {Language} Uses: `characters present in the output` Does not use: `characters used in the previous output` from [previous submission, language](link-to-previous-submission] {program} Outputs: {output} あなたの答えの説明を歓迎します。

16
私を数えてください!
あなたの仕事は簡単です。スニペットをn回繰り返すと、スペースで区切られたnを10進数、8進数、16進数の順に出力する任意の言語でスニペットを投稿します。nはゼロより大きい整数です。先行ゼロはありません。最短回答が勝つ 例 スニペットがABC次の場合、テストケースは ABC 1 1 1 ABCABC 2 2 2 ABCABCABCABCABCABCABCABCABC 9 11 9 ABCABCABCABCABCABCABCABCABCABCABCABC 12 14 C ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC 18 22 12
24 code-golf 

8
英数字スパイラル
タスクは非常に単純で、入力が与えられると、次のスパイラルのいずれかを出力します。 Input = 1A左上隅から始まる文字でスパイラルを与える: A B C D E F T U V W X G S 5 6 7 Y H R 4 9 8 Z I Q 3 2 1 0 J P O N M L K Input = 2A右上隅から始まる文字でスパイラルを与えます。 P Q R S T A O …

1
ループ検出-そんなことはありません!
この課題の目標は、ループで囲まれた方向と領域を見つけることです。 入力: これらの文字のみで構成される長方形のグリッド: ^v<> (オプションで、選択した接頭部、接尾部、および分離文字を使用して、グリッド自体の前に10進数でグリッドの寸法を指定することもできます。) ループグリッドでは次を指し、次の1つの点は、最終的に最初の文字に戻っ指し示すように前述の文字の集合です。例えば: <>>v> >>v ^^<>v ^ >v >^<<< ^<<< >^<v> 左のグリッドはサンプル入力です。右側のグリッドは分離されたループです。 入力グリッドには、ループがまったく含まれないか、1つのループが含まれます。グリッドに複数のループが含まれる場合について心配する必要はありません。 出力: グリッドにループが含まれていない場合は、を出力しますX。 グリッドが互いに指し示す2つの矢印を含む場合、output 0。 グリッドに反時計回りのループが含まれている場合、境界線を含め、ループで囲まれた文字をカウントします。その番号を出力します。 グリッドに時計回りのループが含まれている場合、反時計回りのループと同じプロセスに従いますが、その数値の負数を出力します。たとえば、上記の入力グリッドの出力は-11次のとおりです。10はループ自体からのもので、1はループで囲まれた文字からのものです。 これはcode-golfです。最短のコードが優先されます。 テストケース: <<^ ^>v ^v< 出力X。 <<<< ><<< >>^> 出力0。 <>^^< >>>v> <^^>v <^>>v >^<<< 出力-15。 v<<<< >v>>^ v<^<< >>>>^ 出力20。

15
ランダムウォーカープリンター
歩行者の位置にSTDOUT nドットを含む文字列を1回ずつ(1ステップずつ)書き込むプログラムまたは関数を描画します.。また、プログラムは1 s秒ごとに行を書き込む必要があります(またはs各行の後に数秒待機します)。 ランダムウォークは、一連のランダムステップ(wiki)で構成されるパスの数学的な形式化であり、すべての新しいステップが最後のステップと新しい値になるため、tステップ値はすべてのランダム値の合計になりますir +初期値の前。 プログラムは2つの入力を取る必要があり、出力ではスペース" "とドットのみを使用"."します。ウォーカーの開始値は、20出力が19スペースの後にドットになるようになります。 . #19 spaces then a dot 新しいステップごとに、値は歩行者の最後の値にこれらの1つを加えたものになります[-2-1,0,1,2](それぞれ20%の確率)。新しい位置が印刷された後、プログラムはs数秒待ってから次のステップに進みます。ステップが歩行者を範囲外に連れて行く場合、1 to 40それは無視されるべきであり、歩行者の位置は同じままである。スペースの数は常に0〜39の数になります。 例 #input Mywalk(s = 0.1, n = 30) #output . . . . . . . . . . . . . . . . . . . . . . . . . …
24 code-golf  random 

6
平方の10進連結
前提 ある夜、私はただ数字を考えていました。私は、7、10、12、13などのような数字についてユニークな何かを見つけました。彼らは正方形の正方形です!意味は、二乗したとき、それ自体が正方形で構成されることです。OEISは、2つ以上の正方形を10進数で連結したものを正方形と呼びます。 このような数の例には、7(49は2 2と3 2)13(169は4 2と3 2)と20(400は2 2と0 2)が含まれます。1369は1、36、9に分割できるので、他の例には37が含まれます。1444(38 2)は1、4、4、4 に分割できるので、用語です。 .SE、そして私にちなんで命名されました! チャレンジ TanMath番号を印刷するプログラムを設計します。番号n(1から始まる)を指定して、n番目のTanMath番号T(n)を出力します。 コード例として: >> 1 >> 7 または >> 4 >> 13 Python実装の参照(@MartinBüttnerと@ Sp3000に感謝!): from math import sqrt n = input() def r(digits, depth): z = len(digits) if z < 1: return (depth > 1) else: for i …

11
文字列をそれ自体で置き換えます!
文字列をそれ自体で置き換えます あなたの目標は、元の文字列の各文字を最初の文字から始めて折り返すことによって、文字列をそれ自体で置き換えることです。ここに私が意味することを示すためのいくつかの例があります: 最初の例: Input: program Output: apgopra How: Program -> mrogram (replace p by m in program) -> mpogpam (replace r by p in mrogram) -> mprgpam (replace o by r in mpogpam) -> mpropam (replace g by o in mprgpam) -> mpgopam (replace r by g in mpropam) -> …
24 code-golf  string 

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