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

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

14
オーストラリアへの発掘-対pod
バックグラウンド 数え切れない世代の子供たちは、穴を真下に掘った場合、どこに行き着くのか疑問に思っています。これは、当然のことながら、かなり危険ですが、とにかく... 対podは、地球の表面上で互いに正反対の点です。これは、2点の間に線が引かれた場合、地球の中心を通ることを意味します。 チャレンジ ポイントを指定すると、その対anti点を見つけるプログラムまたは関数を作成します。 この課題では、ポイントは経度-緯度システムと度、アーク分、アーク秒を使用して表されます。対極を見つけるには、各縦座標(N <-> SおよびW <-> E)の方向を入れ替え、180度から経度縦座標を引きます。 例: ポイントを取りN 50 26 23 W 4 18 29ます。指示を入れ替えてを表示しますS 50 26 23 E 4 18 29。経度縦座標を減算180 0 0与えるため175 41 31などの対掌体の座標を残しS 50 26 23 E 175 41 31。 ルール 入力 妥当な形式の緯度経度座標のセット。各縦座標には、方向、度数、アーク分数、アーク秒数が含まれます。 出力 妥当な形式の対極の緯度経度座標。各縦座標には、方向、度数、アーク分数、アーク秒数が含まれます。 合理的に考えて、座標の各部分を明確に区別できることを意味します。 スペック 緯度縦座標の方向はNまたはSであり、経度縦座標の方向はWまたはEです。 すべての座標値は整数です。度の値は、の間であろう0と90緯度のために、間0及び180経度のため。両方の縦のためのアーク分アーク秒の値は間であろう0と59。 縦座標のすべての値がの場合0、どちらの方向も受け入れられます。 値をゼロで埋める必要はありません。 緯度の縦座標は90度より大きくならず、経度の縦座標も度より大きくなりません180。 標準の抜け穴が適用されます。 …
24 code-golf 

7
ASCIIピアノキーボード
ピアノのキーの幅は3文字、高さは7文字です。ただし、すべてのキーの幅が3文字である場合、黒いキー用のスペースが十分にありません。そのため、一部の白いキーの一部が切り取られています。白鍵には3種類あります。 右半分がないキー(R): ____ | | | | | | | | | | | | |___| 左半分が欠落しているキー(L): ____ | | | | | | | | | | | | |___| そして、左半分と右半分が欠けているキー(M): ___ | | | | | | | | | | | | |___| 実際のキーボードでは、これらのパターンは次のようになります。 RMLRMML, RMLRMML, RMLRMML... …

30
アルファベットの三角形が再び打つ
仕事 あなたの仕事はこの正確なテキストを印刷することです: A BCD EFGHI JKLMNOP QRSTUVWXY ZABCDEFGHIJ KLMNOPQRSTUVW XYZABCDEFGHIJKL MNOPQRSTUVWXYZABC DEFGHIJKLMNOPQRSTUV WXYZABCDEFGHIJKLMNOPQ RSTUVWXYZABCDEFGHIJKLMN OPQRSTUVWXYZABCDEFGHIJKLM NOPQRSTUVWXYZABCDEFGHIJKLMN OPQRSTUVWXYZABCDEFGHIJKLMNOPQ RSTUVWXYZABCDEFGHIJKLMNOPQRSTUV WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ スペック すべて大文字ではなく、すべて小文字で行うことができます。 三角形の末尾の末尾の改行は許可されます。 各行の後のスペースは許可されます。 文字列の配列を出力する代わりに、STDOUTに出力する必要があります。 得点 これはcode-golfです。最も少ないバイト数のプログラムが勝ちます。

6
電気ガレージのドアは開いていますか?
私の電気駐車場のドアは次のように機能します。 ドアを制御するためのプッシュボタンは1つだけです ドアが完全に閉じてボタンを押すと、ドアが開き始めます。完全に開くには10秒かかります ドアが完全に開いていてボタンを押すと、ドアが閉じ始めます。完全に閉じるには10秒かかります ドアが開閉の途中にあり、ボタンを押すと、ドアが停止し、部分的に開いたままになります。 開閉動作の自動完了、または動作の途中でボタンを押して手動で中断したことにより、ドアの動きが止まるたびに、メカニズムは反転し、次の動作の方向を記憶します。 ドアが停止しているが部分的に開いているときにボタンを押すと、そのアクションを完了するまでの時間は、アクションを完了するために移動する必要がある量に比例して、わずか10秒になります。 開始時にドアが完全に閉じていると仮定します。 整数の入力リストが提供されます。これらの整数は、コントロールボタンを連続して押す間に待機する秒数です。 2つのことを出力します。 すべてのボタンのプッシュが完了し、ドアが定常状態に達したときのドアの状態を示すパーセンテージ。%シンボルの出力はオプションです。 次のボタンを押すとドアが移動する方向を明確に示します。これは、up/ down、U/ D、+/ -、1/ 0または任意の選択です。 ドアが開いたり閉じたりするアクションを完了するのに、ドアが無限に10秒未満かかると仮定することができます。 入力例: <empty list> # button was pushed just once 20 # button was pushed twice with 20 seconds between 10 5 20 20 10 10 5 5 1 2 3 8 9 10 …
24 code-golf 

11
Swiftでのゴルフのヒント
Swiftでのコードゴルフのヒントは何ですか?安全性に重点を置いているため、ゴルフをするのが難しくなっているように見えますが、ヒントはほとんどなく、さらに便利です。Swiftには、特定のアプリケーションのコードゴルフで優れていると思われる機能がありますか? 回答ごとに1つのヒントを投稿してください。
24 code-golf  tips  swift 

24
音楽のビートを説明する
あなたは知っている-彼らはこのように見える: ソース 目標は、次のような音楽ビートのイラストを描くことです。 = = = = = = = = == = == = == = ==== == ==== == === = = ======= ======== == ==== = ========= = ================================= ルールは次のとおりです。 図の幅は33シンボルですが、必要に応じて、この幅を超える後続スペースは許可されます。 各列は等号(=)で構成されています。 各列にはランダムな高さがあり(次の列の高さは前の列の高さに決して依存してはいけません)、1から6まで変化します。厳密ではない入力が少なくとも可能であれば問題ありません数学の確率(つまり、一部の入力は他の入力よりもまれにしか表示されない可能性があります)。 カラムは底部の上に浮いてはならず、隙間はありません。 すべての列の最小の高さは1であるため、最後の行にも隙間はありません。常に33の等号で構成されます。 高さ6の列を持たない可能性があるため(結局すべてランダムです):この場合、スペースでできた一番上の行を持つ必要はありません。この性質のあらゆるエッジケースに適用されます。コードが突然1を超える高さの列を提供しなかった場合、一番下の行の上にスペースで作られた追加の行を持つ必要はありません。 あなたは何も入力しません。

29
数字をアルファベット順に並べ替えます
負でない整数(n)が与えられた場合、nの各数字のリテラルスペルに従って、アルファベット順に戻る関数を作成しますn。 例: Input: 101 >> one, zero, one >> one, one, zero Output: 110 Input: 31948 >> three, one, nine, four, eight >> eight, four, nine, one, three Output: 84913 Input: 5544 >> five, five, four, four >> five, five, four, four Output: 5544 Input: 1234567890 Output: 8549176320 注:この例の操作は例示にすぎず、出力に含める必要はありません。アルファベット順にソートされた番号のみを返す必要があります。 これはコードゴルフなので、バイト単位の最短コードが優先されます。 …

9
Rustでのゴルフのヒント
一方で錆が(Javaはしばしば短い)コードゴルフ大会で非常に、非常にまれ競争力がある、それはまだでゴルフに楽しいことができます。錆コードを作成するための短いいくつかのトリックは何ですか? 各回答には1つのヒントのみを投稿してください。
24 code-golf  tips 

9
おおよその∫((e ^ x)/(x ^ x))dx
次の値を概算します。 入力はどこにありますかI。 ルール 組み込みの積分関数は使用できません。 組み込みの無限合計関数を使用することはできません。 コードは妥当な時間内に実行する必要があります(私のマシンでは20秒未満) 入力は0より大きく、言語の上限よりも小さいと仮定できます。 任意の形式の標準の戻り値/出力が可能です。 結果はWolfram |で確認できます アルファ(目的の入力をリンクされたクエリに連結することで確認できます)。 例 (関数を呼び出しましょうf) f(1) -> 2.18273 f(50) -> 6.39981 f(10000) -> 6.39981 f(2.71828) -> 5.58040 f(3.14159) -> 5.92228 あなたの答えはに正確でなければなりません±.0001。

2
ノードのネットワークを描く
(名前は26個のノードまでのネットワークがあるAにZかaにzあなたの願いどおりに)。ノードのすべてのペアは接続または切断できます。ノードは、最大4つの他のノードに接続できます。あなたの仕事は、ネットワークを2Dダイアグラムに描くことです。このタスクが可能になるように入力が与えられます(出力セクションのその他の制約を参照)。 フォーマット 入力 (文字のペアAにZかaへのzあなたの願いどおり)。それらは任意の順序でソートされません。 オプション-ペアの数 出力 ノード間の実際のリンクを示すASCII図面。ノードはato zまたはAtoで与えられZます。-水平リンクおよび|垂直リンクに使用します。リンクは任意の長さ(ゼロ以外)でもかまいませんが、曲がらない直線の水平線または垂直線にする必要があります。画像の外観を損なわない限り、スペースを追加できます。 グラフのレイアウトに役立つビルトインを使用することはできません。他のグラフ関連のビルトインが許可される場合があります(ただし、ビルトインのないソリューションの方が好まれます)。最短のコードが優先されます。 サンプルデータ 入力 A B B F B L F K L K K R K S R P S J S P J A T V V N 出力 A - B - F T - V | | | | …

8
KOTH:みんなトークンが大好き
このゲームでは、2人のプレイヤーがトークンの最も多くのポイントを食べるために競いますが、ひねりがあります!同じ色の行で複数のトークンを食べると、増え続けるボーナスが得られますが、気を付けないと、相手はあなたが望む前にあなたが望むトークンを食べることであなたの計画を妨害します! ルール: 1対1 n x nボード(5x5〜15x15のランダムサイズ) あなたとあなたの対戦相手は同じランダムなセルに出現します ボード全体で、値が1〜3の範囲のいくつかのセルでランダムに生成された数値になります。 2 *(ボードの幅)トークンが生成されますが、オーバーライドが存在する可能性があるため、偶然少ない可能性があります。 各数値は、赤、緑、または青の16進数RGB形式の3色のいずれかです。 ラウンドごとに、プレーヤー1が移動してボードが更新され、次にプレーヤー2が移動してボードが更新されます。そのため、各プレイヤーは、ボードの状態の変化に基づいて、前のプレイヤーがどのような動きをしたかを効果的に知ることができます。後述するように、これはゲームが終了するまで続きます。 ターンには6つのアクションがあります:UP、RIGHT、DOWN、LEFT、EAT、PASS 4つの移動コマンドは一目瞭然であり、自分のターンをパスできます。あなたが無意味な動きを返す場合、我々はあなたがパスを意味すると仮定します。ボードの端から移動しようとしても、移動しません。エッジはラップしません。 EATは、現在と同じスペースにいる番号を消費します 消費した数だけポイントを獲得できます 同じ色の2つの数字を連続して食べると、+ 1が得られます 同じ色の3つの数字を連続して食べると、+ 2になります 同じ色の行にm個の数字を食べると、+(m-1)が得られます これらのボーナスは累積的に追加されるため、m個の数字を連続して取得すると、異なる色を食べるまでに合計ボーナスがm *(m-1)/ 2になります。 ゲーム終了条件: すべての数字が消費されます 4 *(ボードの幅)ターンはいずれかのプレイヤーによって発生した効果的な食事なし(あなたがいないトークンなしで "EAT"と言うだけ)になりました(トークンは2 *(幅)で到達可能です)移動するため、両方のプレイヤーが単一のターゲットトークンを念頭に置いていない場合にのみ、この境界を超えます) AIが移動するのに要する時間は1秒未満です。そうでない場合、PASSが選択として想定されます。 トーナメントは、100または1000などの多数のラウンドを含むラウンドロビンになります。ランダムなボードが生成され、異なるボードの各注文ペアがそのボードで実行されます。トーナメントが完了したら、合計スコアで人々をランク付けします。あなたがゲームのプレイヤー2であっても、目標は可能な限り多くのポイントを獲得することです。 AIの提出:コントローラーがサポートする言語はJavascriptです。複数の提出が許可されています。誰もがこのようなオブジェクトのコンストラクタを送信します: function (player1) { this.yourMove = function (b) { return "MOVE"; } } 入力player1は、プレイヤー1であるかどうかを示すブール値です。コンストラクタにはyourMove関数が必要ですが、追加の関数や値をいくつでも持つことができます。グローバル変数を定義せず、オブジェクトに変数として配置するだけです。オブジェクトの新しいバージョンは、各マッチの開始時に作成され、 yourMove現在のボードを入力として、各ターンで呼び出され、有効なムーブを返す必要があります。 b入力は、yourMove、であるコピー現在のボードのあなたがそれらを自分で呼び出すことはできませんが、ここでのコンストラクタは、入力例を、以下のとおりです。 function token(color, …

30
24時間と12時間
24時間および12 時間のこの文字列を出力または出力する入力なしでプログラムまたは関数を記述します。 00:00 12:00am 01:00 1:00am 02:00 2:00am 03:00 3:00am 04:00 4:00am 05:00 5:00am 06:00 6:00am 07:00 7:00am 08:00 8:00am 09:00 9:00am 10:00 10:00am 11:00 11:00am 12:00 12:00pm 13:00 1:00pm 14:00 2:00pm 15:00 3:00pm 16:00 4:00pm 17:00 5:00pm 18:00 6:00pm 19:00 7:00pm 20:00 8:00pm 21:00 9:00pm 22:00 10:00pm 23:00 11:00pm …

30
すべて一緒に今
1から9までの数字のリストが与えられると、各数字が単一の連続したブロックとしてグループ化されるかどうかを出力します。つまり、同じ数字の2つが異なる数字で区切られていません。数字がまったく表示されなくても問題ありません。少ないバイトが勝ちます。 入力: 1から9までの数字の空でないリスト。これは、10進数、文字列、リスト、または同様のシーケンスにすることができます。 出力:一貫したTruthyの値のすべての桁が連続したブロックにグループ化されている場合、および一貫性のFalseyの値はそうではありません場合。 真の場合: 3 51 44999911 123456789 222222222222222222222 偽の場合: 818 8884443334 4545 554553 1234567891 コードスニペットを表示 var QUESTION_ID=77608,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/77608/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 i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link …

8
planet Flapusで使用される数字の音声名を出力します
Flapusの居住者は、ベース8の番号システムを使用します。番号は次のとおりです。 0-クズラ 1-ポナラ 2-ボクケル 3-コロペ 4-ヴルーナ 5-フォーハム 6-スティクティ 7-クリコラ 7を超える数の場合、最後の数字の完全な名前が最初に来て、その後にアポストロフィと最初の母音を含む他の数字の最初の文字が続きます。 11-ポナーラ(1) 'po(1) 13-コロペ(3)' po(1) 64-ヴルナッティスティ 55- フォーハムフォ47-クリコラヴルー 数字が増えても、式は変わりません。フルネームの最後の桁が最初に来て、その後にアポストロフィと最初の母音までのその他の数字の最初の文字が続きます。最後の数字(最初の単語)を除き、順序は同じままであることに注意してください。 123-Colopee(3) 'po(1)bo(2) 205-Foham(5)' bo(2)ku(0) 1123-Colopee'popobo 7654 -Vruenat'kristifo 規則の例外は、0で終わる数字の場合です。ここでは、単語はKuで始まり、最初の母音まで、他の数字の最初の文字で完了します。アポストロフィは使用されません。 10 - Kupo 70 -ククリ 350 - Kucofo 630 - Kustico - 1000 Kupokuku チャレンジ 有効な8進数を受け入れ、音声で同等の音声を出力するプログラムまたは関数を作成します。常に有効な番号を受け取ると仮定できます。末尾の空白/回答後の単一改行は問題ありません。例のように、最初の文字は大文字である必要があります。 これはcode-golfです。バイト単位の最短コードが優先されます。標準の抜け穴が適用されます。長さが変換され、Flapussianで追加送信される回答には、追加のCookieが追加されます。 テストケース 0 - > Kuzla 1 - …
24 code-golf 

19
糸巻きのゴルフ
弦のねじれ方 ツイストアルゴリズムは非常に単純です。各列はそのインデックスによって下にシフトされます(列0は0に移動し、列1は1に移動します...)。列シフトは上に折り返されます。それはこのように動作します: aaaa bbbb cccc になる: a ba cba ---- cba cb c 行の下のすべてが上に折り返されます。実際の例: Original: \\\\\\\\\\\\ ............ ............ ............ Twisted: \...\...\... .\...\...\.. ..\...\...\. ...\...\...\ 入力 入力は、文字列の配列または複数行の文字列です。すべての行の長さは同じです。 出力 ツイスト文字列、std-outへの複数行出力(または最も近い代替)。 例: (>入力を示し、末尾のスペースが重要です) >Hello, world! >I am another >string to be >twisted! Hwrmoe oo br! Ieii ,dttr e s lsna !ohl ttaltgnw ed …
24 code-golf  string 

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