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

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

30
アルファベットの三角形
この正確なテキストを印刷する必要があります。 A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA ABCDEFGHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHGFEDCBA ABCDEFGFEDCBA ABCDEFEDCBA ABCDEDCBA ABCDCBA ABCBA …

30
すべての整数を出力
無限の時間とメモリが与えられた場合、すべての整数を正確に一度だけ印刷するプログラムまたは関数を作成します。 可能な出力は次のとおりです。 0, 1, -1, 2, -2, 3, -3, 4, -4, … 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -2, -3, -4, -5, -6, -7, -8, -9, 10, 11, … これは有効な出力ではありません。これは負の数を列挙しないためです。 0、1、2、3、4、5、6、7、8、9、10、11、… ご使用の言語が10進整数をサポートしていない限り、出力は10進数でなければなりません(その場合は、言語が使用する整数の自然表現を使用してください)。 あなたのプログラムは、あなたの言語の標準整数型の最大の大きさの数値まで動作しなければなりません。 各整数は、言語の数字でも負符号でもないセパレーター(スペース、コンマ、改行など)を使用して次の整数から分離する必要があります。 区切り文字はどの時点でも変更してはなりません。 区切り文字は、数字でも負符号でもない限り、複数の文字で構成することができます(例:, と同じくらい有効です,)。 サポートされている整数は、最終的に有限時間後に印刷されなければなりません。 得点 これはcode-golfなので、バイト単位の最短回答が勝ちます リーダーボード コードスニペットを表示 var QUESTION_ID=93441,OVERRIDE_USER=41723;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 …

17
縁の騎士は厳しい
前書き Aron Nimzowitschは、主要なチェスマスターであり、影響力のあるチェスライターでした。 彼の著書「My System」の最初の章では、センターの重要性と、なぜそれを支配する必要があるのか​​について説明しています。単純な理由は、あなたの駒が中心にいるとき、あなたの駒がより直接的な次の動きを持つ可能性があり、それが再びプレーヤーにより多くの力を与えるということです。 これは、空のボードで騎士のさまざまな位置とその潜在的な次の動き(ピンク色で表示)を見ると非常に明確になります。 目的 空のボード上の騎士の位置に基づいて、騎士の潜在的な直接的な次の動きの数を評価します。 入力仕様 騎士の位置。 最初にx(列)、次にy(行)。0 0左下隅です。 簡単にするために、チェス盤のラベルを数字のみに変更しました。例とテストケースでは、0ベースのインデックスを使用していますが、1ベースのインデックスを自由に使用できます。 任意のタイプの可能な入力形式、配列、関数引数などを使用できます。 出力仕様 空のボード上の騎士の潜在的な直接の次の動きの数。 テストケース 3 4 => 8 4 6 => 6 7 7 => 2 1 0 => 3 テストケースでは、0ベースのインデックスを使用しています。値の完全なグリッドは次のとおりです。 2 3 4 4 4 4 3 2 3 4 6 6 6 6 4 3 …
48 code-golf  math  chess 

30
アルファベットを入れ替える
この課題では、アルファベットを「逆にする」か、で交換a-zしz-aます。これは、一般にAtbashサイファーと呼ばれます。 この変換により、出力は外国語のように見えるため、コードはできるだけ短くする必要があります。 例 abcdefghijklmnopqrstuvwxyz zyxwvutsrqponmlkjihgfedcba Programming Puzzles & Code Golf Kiltiznnrmt Kfaaovh & Xlwv Tlou Hello, World! Svool, Dliow! 仕様 入力には複数の行が含まれる場合があり、ASCIIのみになります いかなる 追加の空白が出力に追加すべきではありません 大文字と小文字を区別する必要があります リーダーボード コードスニペットを表示 var QUESTION_ID=68504,OVERRIDE_USER=40695;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 process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var …
48 code-golf  string 

3
最短のユニバーサル迷路出口文字列
正方形のセルのN×Nグリッド上の迷路は、各エッジが壁であるか壁でないかを指定することによって定義されます。外縁はすべて壁です。1つのセルはstartとして定義され、1つのセルはexitとして定義され、exitはstartから到達可能です。開始と終了が同じセルになることはありません。 開始点と終了点のどちらも迷路の外側の境界にある必要はないため、これは有効な迷路です。 「N」、「E」、「S」、「W」の文字列は、それぞれ北、東、南、西を移動しようとしていることを示します。壁によってブロックされている移動は、移動せずにスキップされます。文字列は終了(かかわらず、文字列が出口に達した後に継続するかどうか)に達している出口における開始結果からその文字列を適用する場合迷路。 触発され、このpuzzling.SE質問れるXNOR提供解くの証明可能な方法で非常に 3迷路によって任意の3を出て、単一の文字列を検索することができ、長い文字列、書き込みコードを。 無効な迷路(同じセルで開始および終了、または開始から到達できない終了)を除くと、138,172の有効な迷路があり、文字列はそれぞれを終了する必要があります。 有効 文字列は次の条件を満たす必要があります。 文字「N」、「E」、「S」、および「W」のみで構成されています。 開始時に開始された場合、適用される迷路を終了します。 考えられるすべての迷路のセットには、考えられる有効な各開始点を持つ各考えられる迷路が含まれているため、これは、文字列が任意の有効な開始点から迷路を出るということを自動的に意味します。つまり、出口に到達できる開始点から。 勝ち 勝者は、最短の有効な文字列を提供し、それを生成するために使用されるコードを含む答えです。複数の回答がこの最短の文字列を提供する場合、その文字列の長さを最初に投稿したものが勝ちます。 例 これは、打ち勝つための500文字の文字列の例です。 SEENSSNESSWNNSNNNNWWNWENENNWEENSESSNENSESWENWWWWWENWNWWSESNSWENNWNWENWSSSNNNNNNESWNEWWWWWNNNSWESSEEWNENWENEENNEEESEENSSEENNWWWNWSWNSSENNNWESSESNWESWEENNWSNWWEEWWESNWEEEWWSSSESEEWWNSSEEEEESSENWWNNSWNENSESSNEESENEWSSNWNSEWEEEWEESWSNNNEWNNWNWSSWEESSSSNESESNENNWEESNWEWSWNSNWNNWENSNSWEWSWWNNWNSENESSNENEWNSSWNNEWSESWENEEENSWWSNNNNSSNENEWSNEEWNWENEEWEESEWEEWSSESSSWNWNNSWNWENWNENWNSWESNWSNSSENENNNWSSENSSSWWNENWWWEWSEWSNSSWNNSEWEWENSWENWSENEENSWEWSEWWSESSWWWNWSSEWSNWSNNWESNSNENNSNEWSNNESNNENWNWNNNEWWEWEE これを寄付してくれたorlpに感謝します。 リーダーボード 等しいスコアは、そのスコアの投稿順にリストされます。特定の回答のスコアは時間とともに更新される可能性があるため、これは必ずしも回答が投稿された順序ではありません。 裁判官 次に、コマンドライン引数として、またはSTDINを介してNESWの文字列を受け取るPython 3バリデータを示します。 無効な文字列の場合、失敗した迷路の視覚的な例を示します。

10
月曜日のミニゴルフ#6:Meeesesessess upp teeexexextext
月曜日のミニゴルフ:毎週月曜日に(願わくば!)投稿された一連の短いコードゴルフチャレンジ。 実話1:先日、JavaScriptをテストするためにPCで通常使用するページにアクセスすることを考えていたときに、タブレットで遊んでいた。ページが読み込まれた後、次の簡単なプログラムを入力しました。 alert("Hello!") その後、[実行]ボタンを押して、入力したコードが無効であると言われたときは驚きました。私はテキストボックスをもう一度見て、これを見ました: alllelelerlerlertlert("Heeelelellellelloello!") え?それは私が入ったものではありません!それで、ここで何が起こったのでしょうか?それを理解するために、2つの簡単な行を入力しました。 abcdefg 0123456 これは次のように判明しました。 abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg 0112123123412345123456 今では、文字に何が起こったのかまだ分かりませんでしたが、数字はもっとシンプルに見えたので、詳しく調べました。判明したように、Webページは最初の文字を入力し、新しい文字が押されるたびに文字列の残りすべてを繰り返していました。 0112123123412345123456 0 1 12 123 1234 12345 123456 しかし、手紙のセクションはどうですか?少し考えた後、それはまったく同じであることに気づきましたが、各サブセクションを1回繰り返す代わりに、2回繰り返します。 abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg a bb bcbc bcdbcd bcdebcde bcdefbcdef bcdefgbcdefg 2つの組み合わせは、これらの手法の組み合わせで機能します。 abc123z abbbcbcbc1bc12bc123bc123zbc123z a bb bcbc bc1 bc12 bc123 bc123zbc123z どのようなグリッチはそう、これは句読点やスペースでリセットすると思われる原因とabc defなりましたabbbcbc deeefef。 この時点までに、私はそれを理解し、それを興味深い挑戦に変えることに夢中になっていたので、そもそもそこにいた理由を忘れていました。(ただし、通常の入力方法を考えました。すべての文字の後にスペースとバックスペースを押します。かなり退屈ですが、やらなければならないことをしなければなりません。) チャレンジ チャレンジの目標は、処理されるテキストを取り込み、上記の変更を行い、結果を出力/返すプログラムまたは関数を作成することです。 詳細 入力には印刷可能なASCIIのみが含まれ、タブや改行は含まれません。 テストケース 入力:(1行に1つ) Mess …
48 code-golf  string 

30
レゴピースを印刷する
この課題は、単純なascii-artの課題です。レゴのピースの高さと幅を説明する2つの入力がある場合、そのASCIIアート表現を印刷します。 レゴのピースの外観は次のとおりです。 (4, 2) ___________ | o o o o | | o o o o | ----------- (8, 2) ___________________ | o o o o o o o o | | o o o o o o o o | ------------------- (4, 4) ___________ | o o o o …

6
文字列をHodorize
Hodorはショーのオン遅い心が、かわいらしいキャラクターでゲーム・オブ・スローンズ(彼はだで図書もちろん、同様)。彼が言う唯一の言葉は「hodor」です。 驚いたことに、語彙が多くないにもかかわらず、Hodorは常に正しい大文字と句読点を使用して完全な文で話し、実際に意味を伝えます。 Hodorは、128 文字すべてのASCII文字を表現できますが、各文字を言うには文全体が必要です。各文字には、文としての単一の正確な表現があります。ASCII文字列は、文字列内のすべての文字を対応するHodor文に変換し、すべての文を結合することによりHodorizedされます。すべての文字は正確な文にマッピングされるため、すべてのASCII文字列は単一の一意のHodorized表現を持ちます。 臭気のキャラクター Hodorは、128の表現可能な文字を、文字を表す文に4種類の句読点を使用して、32の4セットに分割します。 文は...で終わります .ASCII文字コードmod 4が0の場合。 .[newline][newline] (新しい段落の場合)コードmod 4が1の場合。 ? コードmod 4が2の場合。 ! コードmod 4が3の場合。 たとえば、のASCII文字コードbは98で、98 mod 4は2なので、Hodorの文bは必ずで終わり?ます。 文の内容は、単語「hodor」のみを含む32個の異なる文字列の1つです。特定の句読点タイプの32文字のそれぞれは、異なる文内容文字列にマッピングされます。したがって、32の文内容文字列と4つの句読点タイプにより、128個のASCII文字すべてを個別のHodor文として表現できます。 ASCIIコードCを持つ文字の文の内容を決定するには、(floor(C / 4) + 16) mod 32;を計算します。このリストのその行のコロンの後はすべて文の内容です。 0:Hodor 1:HODOR 2:Hodor hodor 3:Hodor, hodor 4:Hodor hodor hodor 5:Hodor, hodor hodor 6:Hodor hodor hodor hodor 7:Hodor hodor, hodor hodor 8:Hodor …
48 code-golf  string 

3
コンピューター生成のテクスチャ壁ペイント
私の部屋の壁の絵の具は、ランダムで、ほとんどフラクタルのような、3次元のテクスチャーです。 このチャレンジでは、私の壁の一部になりそうなランダム画像を生成するプログラムを作成します。 以下では、壁のさまざまなスポットの画像を10個収集しました。すべての照明はほぼ同じで、カメラは壁から1フィート離れた場所で撮影されました。境界線を均​​等にトリミングして2048 x 2048ピクセルにし、512 x 512にスケーリングしました。上の画像は画像Aです。 これらはサムネイルのみです。画像をクリックするとフルサイズで表示されます。 A: B:C:D:E: F: G:H:I:J: あなたの仕事は、1〜2 16の正の整数をランダムシードとして取り込むプログラムを作成し、各値に対して、壁の「11番目の画像」であるかのように見える個別の画像を生成することです。私の10枚の画像とあなたの数枚の画像を見ている人が、どちらがコンピュータで生成されたのかわからない場合、あなたは非常にうまくやった! 視聴者がコードを実行せずにそれらを見ることができるように、生成された画像のいくつかを披露してください。 私の画像の照明は、強度や色が完全に均一ではないことがわかります。申し訳ありませんが、より良い照明器具なしでできる最高の方法です。画像に可変照明を使用する必要はありません(可能ですが)。テクスチャは、焦点を当てるより重要なものです。 詳細 画像処理ツールとライブラリを使用できます。 任意の一般的な方法(コマンドライン、標準入力、明らかな変数など)で入力を取得します。 出力画像は、一般的なロスレス画像ファイル形式にすることも、ウィンドウ/クッパに表示することもできます。 私の10個の画像をプログラムで分析できますが、コードを実行している全員がそれらの画像にアクセスできると想定しないでください。 プログラムでイメージを生成する必要があります。私の画像の1つまたは他のストック画像のわずかな変形をハードコードすることはできません。(とにかく人々はこれに賛成票を投じるでしょう。) 組み込みの疑似乱数ジェネレーターを使用して、期間が2 16以上であると想定できます。 得点 これは人気コンテストなので、最も投票数の多い回答が勝ちます。

6
MSペイントは過小評価されています
MSペイントは常に素晴らしい時間の浪費でしたが、ほとんどのグラフィックデザイナーによって避けられました。恐ろしいカラーパレットのために、または元に戻すレベルが制限されているために、おそらく人々は興味を失いました。とにかく、標準のブラシとデフォルトのカラーパレットだけで美しい画像を生成することは可能です。 チャレンジ デフォルトのブラシ(角のない4x4の正方形)とデフォルトのカラーパレット(以下の28色)のみを使用して、確率的ヒルクライミングに基づく手法を使用してソースイメージの複製を試みます。 アルゴリズム すべての答えは、同じ基本アルゴリズム(確率的ヒルクライム)に従う必要があります。各ステップ内で詳細を調整できます。移動は(すなわち塗料にクリック)ブラシのストロークであると考えられています。 次の動きを推測します。好きなように、次の動きを(座標と色の)推測します。ただし、推測ではソース画像を参照しないでください。 推測を適用します。ペイントにブラシを適用して、動きを作成します。 運動の利点を測定します。ソース画像を参照することで、動きがペイントに利益をもたらしたかどうかを判断します(つまり、ペイントがソース画像により似ている)。有益な場合は、動きを維持し、そうでない場合は、動きを破棄します。 収束するまで繰り返します。ステップ1に進み、アルゴリズムが十分に収束するまで次の推測を試みます。この時点で、ペイントはソースイメージに非常に似ている必要があります。 プログラムがこれらの4つのステップと一致しない場合、おそらく確率的な山登りではありません。目標は限られたカラーパレットとブラシに基づいて興味深いペイントアルゴリズムを作成することなので、これを人気コンテストとしてタグ付けしました。 制約 アルゴリズムは何らかの方法で確率的でなければなりません。 次の推測は、ソース画像の影響を受けるべきではありません。それぞれの新しい動きを推測し、それが助けになったかどうかを確認しています。たとえば、ソースイメージの色に基づいてブラシを配置する場所を決定することはできません(これは、ソースイメージのディザリングに似ていますが、これは目標ではありません)。 アルゴリズムのステップを自由に調整して、配置に影響を与えることができます。たとえば、エッジから推測を開始して内側に移動したり、ブラシをドラッグして各推測の線を作成したり、最初に暗い色をペイントすることを決定できます。次の目的の動きを計算するために、前の反復画像を参照できます(ソース画像は参照できません)。これらは、必要に応じて制限することができます(つまり、現在の反復の左上の象限内でのみ推測します)。 他の潜在的な動きを計算して、この動きが「最良」と見なされるかどうかを判断しない限り、ソース画像と現在の反復との「差」の測定は任意に測定できます。現在の動きが「最良」であるかどうかを知るべきではなく、受け入れ基準の許容範囲内に収まるかどうかだけを知る必要があります。たとえば、abs(src.R - current.R) + abs(src.G - current.G) + abs(src.B - current.B)影響を受ける各ピクセルや、よく知られている色差技術のいずれかと同じくらい簡単にできます。 パレット あなたはできる28x1画像としてパレットをダウンロードするか、コード内で直接作成します。 みがきます ブラシは、角のない4x4の正方形です。これはスケーリングされたバージョンです: (コードは4x4バージョンを使用する必要があります) 例 入力: 出力: 基本アルゴリズムがどのように進行するかは、私が作成した短いビデオ(各フレームは500回の繰り返し)で見ることができます:The Starry Night。最初の段階は注目に値します:

7
川を避ける
バックグラウンド タイポグラフィでは、川はテキストブロック内の視覚的なギャップであり、スペースの偶然の整列により発生します。これらは特にあなたの脳が周辺視でそれらをより簡単に拾い上げているように見え、常にあなたの目をそらします。 例として、次のテキストブロックを見てください。行の幅が82文字を超えないように改行されています。 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum …

14
速すぎる、フーリエすぎる:FFTコードゴルフ
できるだけ少ない文字で高速フーリエ変換を実装します。 ルール: 最短のソリューションが勝つ 入力は、長さが2のべき乗である1D配列であると想定できます。 任意のアルゴリズムを使用できますが、解は実際には単純な離散フーリエ変換ではなく、高速フーリエ変換でなければなりません(つまり、O (NログN)O(Nログ⁡N)O(N \log N)漸近的計算コストが必要です) 編集: コードは、標準の高速フーリエ変換を実装する必要があります。その形式は、このWolframの記事の式(3)で見ることができます。 既存の標準ライブラリまたは統計パッケージからFFT関数を使用することは許可されていません。ここでの課題は、FFTアルゴリズム自体を簡潔に実装することです。

30
*、/、+、-、%演算子を使用せずに数値を3で除算する
SO(スポイラーアラート!)でこの質問を引用: この質問は、Oracleのインタビューで尋ねられました。 *、/、+、-、%、演算子を使用せずに数値を3で除算するにはどうすればよいですか? 番号は署名されている場合と署名されていない場合があります。 タスクは解決可能ですが、最短のコードを記述できるかどうかを確認してください。 ルール: 必要な整数除算を実行します(/3) 非テキストベースの演算子を使用しないでください*、/、+、-、または%(またはその等価物、など__div__またはadd())。これは、i++またはのような演算子のインクリメントとデクリメントにも適用されますi--。文字列の連結とフォーマットに演算子を使用しても問題ありません。これらの文字をさまざまな演算子(-負の数の単項演算子など)に使用したり*、Cでポインターを表すことも同様に問題ありません。 入力値は、正と負の両方の任意の大きさ(システムが処理できるもの)にすることができます 入力は、STDINまたはARGVに入力するか、他の方法で入力できます 上記を実行できる最短のコードを作成します

25
最初のコードゴルフ十種競技[終了]
タスク すべての競合他社は、次の10のタスクのリストを解決しようとします。 数学 入力から正の整数nを読み取り、最初のn個の非負整数の立方体の合計を返します。 入力の1場合、これはを返すはず0です。 入力から正の整数nを読み取り、nがメルセンヌ素数である場合にのみ、真理値を返します。 入力からn個の整数の空でないリストを読み取り、それらの中央値を返します。 nが偶数の場合、2つの中央の値のうち小さい方を使用します。 たとえば、の中央値は[1 4 3 2]です2。 入力から整数(正、負、0)、または基数10または単項の文字列表現を読み取り、先行ゼロなしで入力の桁をnegabinaryに返します(入力0を除く)。 出力は、任意の便利な方法(数字、配列、文​​字列など)でフォーマットできます。 ひも 戻るpneumonoultramicroscopicsilicovolcanoconiosis。 現在の日付を確認Happy New Year!し、グレゴリオ暦に従って適切な場合に戻ります。 UnicodeブロックCJK Unified Ideographs Extension-A(U + 3400 – U + 4DB5)から64個の一意に割り当てられたコードポイントを擬似ランダムに選択し、対応する文字の文字列を返します。 可能なすべての文字列は、選択される可能性が同じでなければなりません。 入力から印刷可能なASCII文字の2つの文字列を読み取り、最初の文字列の文字が2番目の文字列のサブシーケンスを形成する場合にのみ、真理値を返します。 たとえば、abc、axbxctruthy返す必要がありますとbac、axbxcfalsy返す必要があります。 配列操作 入力から整数と整数nの多次元矩形配列を読み取り、すべての整数にnを掛けた修正済み配列を返します。 アスキーアート 以下に示すように、入力から負でない整数nを読み取り、n個の列車ワゴンのチェーンを返します。 n = 3の出力例: ______ ______ ______ | | | | | | ()--() ~ …

16
首謀者の馬バッテリーステープル
目的 3ワードのパスフレーズのリストが与えられたら、それらをすべて解読します。推測するたびに、パスワードに一致する文字数と、正しい位置にある文字数を示すMastermindスタイルの手がかりが与えられます。目的は、すべてのテストケースで推測の総数を最小限にすることです。 パスフレーズ 私のシステムのデフォルトの単語リストから、10,000個の異なる単語をランダムに選択して、この課題の辞書を作成しました。すべての単語a-zのみで構成されます。この辞書はこちら(raw)にあります。 この辞書から、3つのランダムなスペースで区切られた各単語(apple jacks feverたとえば、)で構成される1000個のパスフレーズを生成しました。個々の単語は各パスフレーズ内で再利用できます(hungry hungry hippos)。パスフレーズのリストはここ(raw)にあり、1行に1つあります。 プログラムは、必要に応じて辞書ファイルを使用/分析できます。この特定のリストに対して最適化するためにパスフレーズを分析することはできません。フレーズの異なるリストが与えられても、アルゴリズムは機能するはずです 推測 推測するには、チェッカーに文字列を送信します。返されるだけです: パスフレーズ内の文字列内の文字数(正しい位置ではありません) 正しい位置にある文字数 文字列が完全に一致する場合、それを示すものが出力される場合があります(私-1の最初の値に使用します)。 たとえば、パスフレーズがでthe big catあり、推測したtiger baby mauling場合、チェッカーはを返す必要があります7,1。7文字(ige<space>ba<space>)は両方の文字列にありますが位置が異なり、1(t)は両方の同じ位置にあります。スペースがカウントされることに注意してください。 Javaでサンプル(最適化されていない)関数を作成しましたが、必要な情報のみを提供する限り、自由に作成してください。 int[] guess(String in){ int chars=0, positions=0; String pw = currentPassword; // set elsewhere, contains current pass for(int i=0;i<in.length()&&i<pw.length();i++){ if(in.charAt(i)==pw.charAt(i)) positions++; } if(positions == pw.length() && pw.length()==in.length()) return new int[]{-1,positions}; …

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