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

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

15
パリンドロームポリグロット
あなたの仕事は、2つの異なる言語で実行されるプログラムを作成し、次のことを行うことです。 1つの言語では、指定された文字列を回文化します。 文字列を取ります。 abcde 文字列を逆にします。 edcba 最初の文字を削除します。 dcba 元の文字列に接着します。 abcdedcba 別の言語では、特定の文字列をdepalindromizesし​​ます。 上記の方法で回文化された文字列を取得します。 abcdedcba 最初から真ん中までキャラクターを取得します。 abcde これはcode-golfであるため、バイト数ではなく文字数が最も少ないコードが優先されることに注意してください。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language 1/Language 2, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby/Python, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # Perl/C, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、リーダーボードスニペットに表示することもできます。 # [><>](http://esolangs.org/wiki/Fish)/Python, 121 bytes コードスニペットを表示 var …

2
実際のチェビシェフ回転
これは、チェビシェフローテーションに触発された挑戦です。この課題のインスピレーションを得るために、そこの答えを見ることをお勧めします。 平面上の点が与えられると、原点を中心としてその点と交差する一意の正方形(同じ辺を持つ長方形)があります(インタラクティブデモ)。 点所与Pとの距離D、距離移動した点を返すDからP、反時計回り(および負のために時計回り dは正方形の周囲に沿っての)交差する原点を中心P。回答は、少なくとも4桁の10進数で正確でなければなりません。 テストケース: (0, 0), 100 -> (0, 0) (1, 1), 81.42 -> (-0.4200, 1.0000) (42.234, 234.12), 2303.34 -> (-234.1200, 80.0940) (-23, -39.234), -234.3 -> (39.2340, -21.8960) 以下のテストケースは、Martin Enderによる元のチャレンジからのもので、すべてd = 1を使用しています。 (0, 0) -> (0, 0) (1, 0) -> (1, 1) (1, 1) -> (0, 1) (0, 1) …

1
その地図は何歳ですか?
xkcd 1688の参照: あなたの仕事は、ユーザーに質問することにより、マップの年齢を差し引くことです。これらの質問は大文字と追加の改行を除き、xkcdガイドとまったく同じでなければなりません。さらに、ユーザーに選択するオプションを提供する必要があります。オプションはxkcdイメージのような順序である必要はありません。入力が予想される回答のいずれとも一致しない場合、プログラム/関数は未定義の方法で動作する可能性があります。最後に、マップが作成された年/タイムスパンを出力する必要があります。 例(>入力を示しますが、別のものを選択することもできます): 例1: ISTANBUL OR CONSTANTINOPLE? (CONSTANTINOPLE, NEITHER, ISTANBUL) >ISTANBUL DOES THE SOVIET UNION EXISTS? (YES, NO) >NO ZAIRE? OR: 'HONG KONG (UK)' (YES, NO) >NO SERBIA / MONTENEGRO ARE? (ONE COUNTRY, TWO COUNTRIES) >TWO COUNTRIES HOW MANY SUDANS ARE THERE? (ONE, TWO) >ONE 2007-11 例2: ISTANBUL OR …

4
スタック交換URLを一致させる
プロローグ アンチXSSブラウザー拡張機能をインストールした後、Stack SnippetsはStack Exchangeネットワーク全体で突然機能しなくなりました。私はもうStack Overflowから学ぶことができず、ユーザーエクスペリエンスの実際のデモを見て、最悪のことには、プログラミングパズルとコードゴルフで JavaScriptの答えをテストできませんでした!必死に、私は救済策を探し、設定に小さな入力ボックスを見つけました。そこに単一の正規表現を置くことができました。すべてのStack Exchangeサイトをこの小さなボックスに収めることができなかったため、助けを求めました。これがその質問です。 仕事 あなたのタスクは、Stack Overflow Inc.が所有していないドメインとは一致せずに、すべてのStack Exchange WebサイトURLと一致する正規表現を作成することです。 正規表現は、次の部分を持つすべてのURLと一致する必要があります。 protocol:これはhttp://またはhttps://です。 domain:これは、このリストのアイテムになります。 stackoverflow.com www.stackoverflow.com facebook.stackoverflow.com serverfault.com superuser.com meta.stackexchange.com webapps.stackexchange.com nothingtoinstall.com meta.webapps.stackexchange.com meta.nothingtoinstall.com gaming.stackexchange.com arqade.com thearqade.com meta.gaming.stackexchange.com meta.arqade.com meta.thearqade.com webmasters.stackexchange.com webmaster.stackexchange.com meta.webmasters.stackexchange.com meta.webmaster.stackexchange.com cooking.stackexchange.com seasonedadvice.com meta.cooking.stackexchange.com meta.seasonedadvice.com gamedev.stackexchange.com meta.gamedev.stackexchange.com photo.stackexchange.com photography.stackexchange.com photos.stackexchange.com meta.photo.stackexchange.com meta.photography.stackexchange.com meta.photos.stackexchange.com stats.stackexchange.com statistics.stackexchange.com …

12
エラトステネスのふるい、ステップバイステップ
数字Nを指定すると、左揃えのN x Nの数字のボードを描画し、1つの空白(スペースとして)を残します(N = 5の図を表示します) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 あなたの仕事は、エラトステネスのふるいを段階的に構築することです。まず、2から始めます。素数なので、そのままにしておき、2で割り切れる他のすべての数字を適切な数のスペースに置き換えます。 2 3 5 7 9 11 13 15 17 19 21 23 25 次に、次の印刷されていない番号(3この場合)に移動して、同じ操作を行います。 2 3 5 7 11 13 …

4
HexaGolf:ロータタゴン
参照:ワードゴン チャレンジ n入力として六角形と数値を指定すると、同じ六角形の回転n時間を出力します。 六角形 六角形は次のような文字列になります。 a b c d d e e f f o g g h h i i j k l 六角形は常に規則的であり、印刷可能なASCII文字のみが含まれます。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 回転 六角形をどれだけ回転させるかを調べるにはn、60度を掛けて回転角度を取得します。たとえば、上の六角形を使用して、n2の場合、60を掛けて120度を取得します。次に、六角形を120度回転します。 j h f k h f d l i o d a i g e b g e c 各側面が時計回りに2つの側面を移動していることに注意してください。 n正の場合、六角形を時計回りに回転させる必要があります。もしnが負の、六角形を反時計回りに回転させる必要があります。 n …

12
悪いフェードアニメーションを作成してください。
あなたの仕事は、タイトルが慎重に示唆しているように、1つの単語が本当にあなたのために2番目の単語に変わるフェードアニメーションを作成することです。 正確に何であるあなたが求めることができる。この「フェードアニメーションは」? 壮観な(かなり悪い)フェードアニメーションを作成するには、印刷可能なASCII文字のみを含む2つの文字列を使用します。最初の文字列(2つのうちの最初の文字列)を印刷することから始めます。次に、元の単語の文字をランダムに選択し、アニメートする単語の対応する文字に変更します。言葉の長さが等しくないとき、あなたはスペースでパッドにそれらをしなければなりません。 すべての文字が変更されるまでこれを続けますが、特定のインデックスの文字を複数回変更することはありません。以下にI / Oの例を示します。 Hey -> Peeps Hey # original string Hey s # replace char at index 4 Hey s # replace char at index 1 Pey s # replace char at index 0 Pee s # replace char at index 2 Peeps # replace char at …
15 code-golf  string 

8
セグメント番号
セグメント化された数のシーケンスまたは測定の素数(OEIS A002048)は、各メンバーがで、以前の連続した数の合計で作成できない最小の正の(ゼロより大きい)数であるような数のシーケンスですa(0) = 1。 例 計算するにa(7)は、最初にを計算しa(0->6) = [1, 2, 4, 5, 8, 10, 14]ます。次に、ゼロから開始し、シーケンス内の1つ以上の連続した数字の合計ではない数字が見つかるまで数字を調べます。 1 = 1 2 = 2 3 = 1 + 2 4 = 4 5 = 5 6 = 2 + 4 7 = 1 + 2 + 4 8 = 8 9 = 4 + …

22
それほど多くない数の除算
正の整数を取り込みプログラムや関数を書いてa、bそしてc、およびプリントやリターンa/bにcあなたはそのすべてを使用することができます。正の整数に* /%[追加、減算、乗算、除算、モジュレート] - +演算を使用して、小数点以下の桁数ご使用の言語では許可されていますが、浮動小数点数では許可されていません。a、b、cの範囲は、言語の符号なし整数に許可される範囲です。数値の結果は、印刷する最後の桁に切り捨てられます(そのためno round)。 これは、言語に整数型(フロートのみ)がない場合、これらの浮動小数点数を正の整数としてのみ使用して参加できることを意味します。この演習の手掛かりは、[符号なし]整数の演算+-* /%のみを使用して、浮動小数点除算の桁を見つける関数を作成することです。 例 print(1,2,1) 印刷します 0.5 print(1,2,2) 印刷します 0.50 print(13,7,27) 印刷します 1.857142857142857142857142857 print(2,3,1) 印刷します 0.6 print(4,5,7) 印刷します 0.8000000 print(4,5,1) 印刷します 0.8 print(9999,23,1) 印刷します 434.7 print(12345613,2321,89) 言語に32ビットの符号なしが含まれている場合に印刷されます 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466 バイト単位の最短コードが優先されます。これがはっきりしないように見える場合は申し訳ありません...私も言語を知らない、言葉をよく覚えていません... Ideone.comまたは他の場所へのリンクを1つ用意して、特に提案とは異なる入力をテストします。

15
最終番号
チャレンジ 4つの整数(特定のアルゴリズムによって生成された数値のシーケンスを表す)の配列を受け取り、その後に続く次の整数を返すプログラムを作成します。 単純な加算、減算、乗算、除算アルゴリズムのみを使用し、一定の(つまり非可変の)バリエーションを使用します。 除算のために我々は、使用するfloor整数値を:133/4 = 33と33/4 = 8 常に1つの有効な戻り値があると仮定できます。 テストケース [14,24,34,44] 54(追加アルゴリズム)を返す必要があります [105,45,-15,-75] -135(減算アルゴリズム)を返す必要があります [5,25,125,625] 3125(乗算アルゴリズム)を返す必要があります [256,64,16,4] 1(分割アルゴリズム)を返す必要があります 一般的なルール これはcode-golfであるため、バイト単位の最短回答がチャレンジに勝ちます。 標準的な抜け穴は禁止されています
15 code-golf  number 

3
Javaアスタリスクの長方形[閉じた]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 2年前に閉店。 私のCSクラスでは、インストラクターが、Javaで斜めの線が描かれたアスタリスクで作られた長方形を作成する割り当てを与えてくれました。 彼はまた、できる限り少ないバイト数で書き込むように言っています。190バイトに削減しましたが、このコードをさらに単純化してバイト数を減らすためにいくつかを見つける必要があります。誰でもこれで私を助けることができますか? このコードは機能的です: interface d{static void main(String[]a){for(int z=0,w=new Byte(a[0]),h=new Byte(a[1]);z<h*w;){int y=z/w,x=z++%w;System.out.print((x>w-2)?"*\n":(y%(h-1)*x*((y-x)%3)==0)?"*":" ");}}} 入力は10 10です。 出力: ********** ** * * * * * * ** * * * * ** * * * * * * ** * * * * ** * * * * * * …
15 tips  java 

8
ルーカス対 ガレージドアリモート
免責事項 私はこの特定の関連する質問があることを知っていますが、私の質問はランダム化コンポーネントである2つのガレージドアを使用し、実際の生活上の出来事にも基づいています。先週のガレージ...創造力を発揮するために頭に衝撃を与えるようなものはありません!;) 背景 ルーカス(私の15ヶ月の息子)は、ガレージのリモコンで遊ぶのが好きです。このリモコンには2つのボタンがあります。1つは左のガレージドア用で、もう1つは右のガレージドア用です。両方のボタンは同じように機能します。一度押すとドアが開き始め、もう一度押すと停止し、もう一度押すと閉じるようになり、もう一度押すと再び停止します。 ルーカスはこのリモコンが大好きで、ボタンのいずれか、または両方をランダムに押すか、まったく押しません。両方が押された場合、信号は送信されませんが、1つのボタンを押すと信号が送信されます。 そのため、コードゴルフの課題は2つの部分に分かれています。 パート1 ルーカスのボタンが1分以上押されたことを表す60文字の文字列を生成します。この場合の「ランダム」とは、「各ティックで各入力が均等に発生する」ことを意味します。文字は次のとおりです。 0:ルーカスはボタンを押さなかったか、両方のボタンを押しました。いずれにしても、信号は送信されていません。 1:左のガレージのドアのボタンがルーカスによって押されました 2:右のガレージのドアのボタンがルーカスによって押されました 二部 パート1で生成された文字列を使用して、これらのドアを開閉するためのトリガーとして番号を使用して、2台の車のガレージの開閉をシミュレートします。 私のガレージのドアは非常に高速です(理由については上記の免責事項を参照してください)。ボタンを押すと、完全に開いたり閉じたりするのに4秒かかります。 したがって、閉じている場合: 0秒:0%オープン(クローズ); ボタンを押すと、ドアが開き始めます 1秒:25%オープン 2秒:50%オープン 3秒:75%オープン 4秒:100%開いて、ドアが止まる したがって、開いている場合: 0秒:100%オープン; ボタンを押すと、ドアが閉じ始めます 1秒:75%オープン 2秒:50%オープン 3秒:25%オープン 4秒:0%開いた(閉じた)、ドアストップ 特定のドアが動いている場合、その同じドアへの信号はそれを停止します。同じドアに送信された次の信号は、反対方向に移動して送信されます。以前に動いていたときにドアが停止し、「停止」信号を受信したときに完全に開いたり完全に閉じたりすると、ドアは完全に開いた状態または完全に閉じた状態で「停止」として登録され、新しい信号を受信すると、反対方向に移動します。 このシミュレーションでは、両方のガレージドアが最初に閉じた位置にあります。それでは、コマンドの10秒のリストを見て、Lucasがリモートでコマンドを実行した場合にどうなるかを見てみましょう。 2120221120 2: (L:0% stopped, R:0% opening) 1: (L:0% opening, R:25% opening) 2: (L:25% opening, R:50% stopped) 0: (L:50% opening, R:50% …
15 code-golf 

10
目に見える建物
このパズルは、CodinGame SamSiの「Heart of the City」パズルから派生しています。 説明 n* nタイルの街を散歩し、中央のタイルに移動することにしました。すべての建物は無限に小さくなっていますが、スーパービジョンがあり、すべてを間近に見ることができます。 制約 n いつも奇妙です 別の建物に直接遮られていない建物を見ることができます 仕事 各建物をでマークし*ます。建物は、まったく同じ視線上の別の建物に遮られていない場合にのみ表示されます。 つまり、@が原点である場合、建物は、x座標とy座標が互いに素である場合にのみ表示されます。 入力と出力の例 入力: 7 出力: ** ** * * * * ******* *@* ******* * * * * ** ** *は目に見える建物で あり、目に見えない建物であり @、あなたがいる場所です。 得点 これはcode-golfであるため、バイト数が最も少ない答えが勝つことを忘れないでください。 var QUESTION_ID=91394,OVERRIDE_USER=59057;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 …

1
チェス変換
チェスの世界で行われている非常に多くの仕事があります。たとえば、標準化されたファイル形式.pgnがあります。これは、移動リストを含むチェスゲームを記述しています。さらに、.fenボードの位置を説明する別のファイル形式があります。 今日の課題は、チェスの動きのリスト(代数表記)をボードの位置に変換することです。 定義 位置[a-h][1-8]:行(ファイル)と列(ランク)を追加することによって与えられます。ボード上の64の可能な位置の1つを定義します。 片[KQRBNP]?:表しKの ING、Qの ueen、R OOK、Bの iショップ、K Nの IGHT、Pの AWNを。代数表記でPは、使用されません。ボードで使用する場合、文字は白の場合は大文字、それ以外の場合は小文字です。 移動[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O):ピースの後に移動先の位置が続きます。 ピースがあいまいな場合は、行、列、またはその両方が示されます。 ピースがピースをキャプチャしている場合、ピースとx位置の間に配置されます。 移動がキャスリングの場合、O-Oキングサイドに与えられ、そうでない場合はに与えられますO-O-O。 ポーンがプロモートされている場合、移動にはプロモート=されているピースが追加されます。 移動によってキングがチェックされる場合、が追加されます+。 移動によって王がチェックメイトに置かれた場合、キングが追加され#ます。 ピースの色はターン番号によって決まります(黒から始まる白と黒の交互ターン)。 ボード(([1-8]|[KQRBNPkqrbnp])*\/){8}:行は、行の順序でピースをリストすることによって与えられます。空の四角がある場合、空の四角の各実行は、実行の長さを使用して与えられます。行は次を使用して区切られます/ ボードの初期位置はrnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNRであり、次を表します。 rnbqkbnr pppppppp PPPPPPPP RNBQKBNR Moveのリストを取得して、Boardを返す必要があります。入力が有効であると想定できます。 例 -> rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR e4 -> rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR e4,c5 -> rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5 -> rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6 -> rnbqkbnr/ppp2ppp/4P3/8/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4 -> r1bqk2r/ppp2pp1/4Pn2/2P4p/6nP/8/PPP2PPN/RNBQKB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4 -> r1bqk2r/ppp2pp1/4P3/2P4p/3Q2nP/6P1/PPP2n1N/RNB1KB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O -> …
15 code-golf  chess 

5
三角形のアルファベットのスライス
to (またはto )nからの入力番号を指定1すると、左から右に読み、対応する文字を含むアルファベットを出力します。ねじれは、アルファベットの位置に対応して文字も垂直に繰り返される必要があることです。奇数(-indexedの場合)は水平線に沿ってバランスをとる必要があり、偶数は上または下を交互に繰り返す必要があります(どちらの方向に進むかを選択できます)。インデックスが0の場合、前の文の奇数/偶数を交換します。26025a=1, b=2, c=3, ...1 別の方法を言葉で表現-文字のアルファベット値があれば?ある#、そこでなければなりません#、それらのすべてで、出力にその手紙のコピー#番目の列。これらの文字は、が付いている水平線の上下で均等にバランスが取れている必要がありますa。文字のバランスを均等にできない場合は、その行の上と下に「余分な」文字を交互に付けます。 以下に、n = 1,2,3,4,5,6改行で区切られた最初の6つの出力(、1から1番目、下から順に選択)を示します。これにより、パターンを確認できます。パターンを説明するコメントはで始まり#ます。 a # On a line by itself ab b # The "extra" letter is below the horizontal c abc # The 'c' splits evenly bc d # Because the 'b' was below, the extra 'd' must be above cd abcd …

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