タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

5
携帯電話のキーボード入力
携帯電話のキーボード入力 この質問はしばらく前に尋ねられましたが、仕様が悪いため終了しました。だから、私はそれをより良い仕様でやり直しています。この質問は関連していますが、反対の方向に進みます。 T9が登場する前に、テキストメッセージに文字を入力するには、数字キーの1つを何度か押して、目的の文字を取得する必要がありました。参考のために、標準のマッピングを次に示します。 +-------+-------+-------+ | 1 | 2 | 3 | | .?!1 | ABC2 | DEF3 | +-------+-------+-------+ | 4 | 5 | 6 | | GHI4 | JKL5 | MNO6 | +-------+-------+-------+ | 7 | 8 | 9 | | PQRS7 | TUV8 | WXYZ9 | +-------+-------+-------+ | …

14
順列の楽しみ
順列を絶対に好きではない人はいますか?私は知っています、彼らは驚くべきことです。とても楽しいです! さて、なぜこの楽しさを取ると、それにしないfunner? これが課題です。 正確な形式で入力所与:nPr、nプールから採取されるとr、そのプールからの選択の数である(そしてnそしてr整数である)、出力/順列の正確な数を返します。用語で少し錆びているあなたのために:順列、定義。2a。 ただし、これが課題の出番です(簡単ではありません): 置換関数に組み込みのライブラリ、フレームワーク、またはメソッドを使用することはできません。階乗法、順列法、またはそのようなものは使用できません。すべてを自分で書く必要があります。 さらに説明が必要な場合は、コメントで私に話すことをheしないでください、私はすぐにそれに応じて行動します。 I / Oの例を次に示します。 サンプル関数は permute(String) -> int 入力: permute("3P2") 出力: 6 これはコードゴルフなので、最短のコードが勝ちです!

2
いくつかの安全なPINを生成する
このひどく受信された移行された投稿に触発されました。 あなたの会社のセキュリティ責任者は、彼に与えたPIN生成システムを心配しています12345。彼はまた、あなたが彼の費用で行ったスペースボールのジョークを本当に感謝していなかったので、あなたはPINジェネレータを書き直すように委任されました。いくつかの特別なハードウェアに収まる必要があるため、できるだけ小さくする必要があります。 あなたのタスク PINの数とPINの桁数の2つの入力を受け取ります。 指定されたサイズの指定された数のPINをランダムに生成し、印刷します。 サイズが均一である可能性がなくても、すべての有効なPINを印刷できる必要があります。 ただし、PINにはいくつかの制限があります。無効なものは次のとおりです。 すべてのペアが同じ数字である場合:(114422注:これには明らかにすべて同じ数字のPINが含まれます)。 ますます線形のPIN(MOD 10): 246802。 3のすべてのグループは以下のキーパッドの物理的な線です1 2 3;4 5 6;7 8 9;bksp 0 enter;:147369。 PINはルール1とルール3からグループに完全に分割できます。 これはcode-golfなので、バイト単位の最短コードが勝ちです!

6
ウラムのらせんの素数
Ulamのスパイラルは、数学では本当に魅力的でありながら不可解なトピックです。詳細については、こちらをご覧ください。ただし、短い要約は次のように説明できます。 最初に1を書くことから始め、次にその右側に2を書きます。2つの上に3を書き、その左側に4を書きます。このパターンを1(および私と1の間の数字)を無限に(または停止するように指示されるまで)旋回させ、らせんパターンを形成します。(下の例を参照) 目的 行の数と相関する入力としてn(常にゼロより大きい奇数)を受け入れるプログラムを作成し、Ulamスパイラルの行ごとに素数の値を出力します。書式設定はどのような方法でもかまいませんが、人間が判読できる明白なものでなければなりません。 たとえば、入力3を指定する5,3,2,7と、3行が次の螺旋を生成するため、プログラムはを出力する必要があります。 5 4 3 <-- first row has the primes 5 and 3 6 1 2 <-- second row has the prime 2 7 8 9 <-- third row has the prime 7 これはコードゴルフであるため、バイト数が最も少ない答えが(どれだけ非効率であっても)勝ちます!標準的な抜け穴は受け入れられません。
17 code-golf  math  primes 

14
チェスのFEN文字列に基づいてスコアを評価する
チャレンジ Forsyth–Edwards Notation(FEN)は、チェスゲームの特定のボードの位置を記述するための標準的な表記法です。あなたの課題は、FEN文字列を使用してスコアを評価することです。これはFEN文字列の例です。 5k2/ppp5/4P3/3R3p/6P1/1K2Nr2/PP3P2/8 この文字列を使用して、次のスコアテーブルで各色のマテリアルスコアを計算できます。 p / P =ポーン= 1ポイント n / N =ナイト= 3ポイント b / B =ビショップ= 3ポイント r / R =ルーク= 5ポイント q / Q =クイーン= 9ポイント k / K =キング、これらのポイントはありません 白い部分は大文字( "PNBRQK")を使用して指定され、黒い部分は小文字( "pnbrqk")を使用します。空の四角は1〜8の数字(空の四角の数)を使用して示され、「/」はランクを区切ります。 FEN文字列の例から、各側の材料スコアを計算できます。 黒の場合: 5 k 2 / ppp 5 / 4P3 / 3R3 p …
17 code-golf  chess 

8
Pawn Chessboardでキャプチャする
入力および出力としてポーンのみを含むチェスボードを表す文字列を受け取るプログラムまたは関数を作成する必要があります。または、ボード上でキャプチャが可能かどうかを返します。 入力は、他のピースが存在しない白と黒のポーンの位置を記述するFENのような表記法です。敵を捕まえることができるポーンがあるかどうかを判断する必要があります。 ランク8から始まり、ランク1で終わる各ランクが記述されています。各ランク内で、各正方形の内容はファイル「a」からファイル「h」まで記述されます。各ポーンは1文字で識別されます(白いポーン=「P」、黒いポーン=「p」、)。空の四角は1〜8の数字(空の四角の数)を使用して示され、「/」はランクを区切ります。(一部ウィキペディアから取得) 例えば 8/pppppppp/8/8/4P3/8/PPPP1PPP/8 ボードについて説明します -------- pppppppp P PPPP PPP -------- 白のポーンは黒のポーンが斜めに上にある場合(黒は左上または右上)、黒のポーンは白のポーンが下から斜めにある場合(白は白左下または右下)。他のキャプチャー移動(en passant)は考慮しないでください。 入力 A FENの文字からなる文字列様12345678pP/。 入力は、有効なチェスのゲーム位置のポーンを記述します。これは、(他のより複雑な制約の中でも)各側に最大8つのポーンがあり、ランク1と8にはポーンがないことを意味します。 出力 あなたが出力するいずれかの側に可能なキャプチャがある場合truthyの値とfalsyそうでない場合、値を。 例 真実の出力を持つ入力(1行に1つ) 8/7p/6P1/8/8/8/8/8 8/8/p7/1P6/3P3p/8/8/8 8/2P5/8/4P1p1/2p2P2/3p4/3p1P2/8 8/P7/8/5P2/2pp4/3P2p1/3pP3/8 8/P7/p7/p1P1P3/1P3p2/8/1p6/8 8/4p1P1/2P2P1P/2p1pPpp/8/6P1/pP1p4/8 偽の出力を伴う入力(1行に1つ) 8/8/8/8/8/8/8/8 8/7P/6p1/8/8/8/8/8 8/7p/7P/8/8/8/8/8 8/pppppppp/8/8/8/8/PPPPPPPP/8 8/p7/8/1p6/5P2/8/8/8 8/p7/P7/2P1p1p1/2p5/8/PP6/8 これはコードゴルフなので、最短のエントリーが勝ちます。

16
このように印刷
STDINへの入力を受け取り、2k-1thワードのすべての小文字(アクセント付き文字を含む)を大文字にし、2kthワードの小文字(アクセント付き文字も含む)をすべて小文字(k正の整数)にするプログラムを作成します。プログラムは、どの単語の他の文字にも影響を与えません。たとえば、文字列がの場合Ook! O0k!、出力はになりますOOK! o0k!。 空白以外の文字の後に空白がゼロ以外の量があると、新しい単語が形成されます。入力の先頭の空白は無視する必要があります。単語に変更された文字が含まれていない場合、プログラムはそれを単語とみなして続行します。 サンプル入力(異なる入力は空白の改行で区切られます) Nineteen Eighty-Four (1984) Programming Puzzles & Code Golf - Hooray for Code Golf Stack Exchange! 2be or not 2be, that is the ~~~QuEsTiOn~~~ ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. サンプル出力 NINETEEN eighty-four (1984) PROGRAMMING puzzles & code GOLF - HOORAY for CODE golf STACK exchange! 2BE or NOT 2be, THAT …
17 code-golf 

6
オードゴルフ-レターの削除
辞書ファイル(各行に単語または句を含むテキストファイルで、句読点は使用できますが数字はありません。行はアルファベット順です)を指定すると、単語から文字を削除して別の文字を作成できます。削除した文字は括弧で囲む必要があります。 たとえば、入力 cat cart code golf ode verify versify の出力を与える必要があります ca(r)t (c)ode ver(s)ify 同じペアを取得する複数の方法は、一度だけ表示する必要があります。scra(p)pedまたはを出力できますscrap(p)edが、両方はできません。 出力は、長いエントリのアルファベット順に並べる必要があります。 mart mar mat ma の出力が必要です ma(r) ma(t) ma(r)t mar(t) 後者の2つはどちらの順序でもかまいません。 辞書ファイルには、大文字、スペース、ハイフン、またはアポストロフィを含めることができます。これらは無視する必要があります。例えば、 inlay in-play を生成する必要がありin(p)layます。出力はすべて同じケースにする必要があります。余分な空白は許可されます。 入力は、STDINまたはファイルから行うことができます。改行で区切られています。出力は、関数の戻り値またはSTDOUT(または必要に応じてファイルに書き込まれます)です。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 (これはPPCGに対する私の最初の挑戦です-何か間違ったことをしたかどうかを教えてください。それを修正します。)
17 code-golf  string 

3
トグル、印刷、繰り返し
このチャレンジは緩く未実装esolangに触発されPADA。 すべてゼロに初期化された8ビットの配列を考えます。任意の文字列を印刷するための非常に最小限の命令セットを紹介します。2つの命令があり、どちらもNビットのインデックスであるパラメーターを取ります。 t N以下のためにトン oggle:これは、ビットの値を変更しますN。 p Nfor p rint:これは、8ビットすべてを、bitから始まりNendの周りにラップするバイトとして解釈します。このバイトに対応する文字がSTDOUTに出力されます。 例を見てみましょう。印刷したい:=。単純に次のようにこれを達成します(0ベースのビットインデックス): t 2 [0 0 1 0 0 0 0 0] t 3 [0 0 1 1 0 0 0 0] t 4 [0 0 1 1 1 0 0 0] t 6 [0 0 1 1 1 0 1 0] …

3
より強力な4平方暗号
バックグラウンド 100年と13年前、アマチュア暗号学者のフェリックス・デラステッレは、25字のアルファベットの2つの順列をキーとして受け入れ、それらの文字で構成されるメッセージをエンコードする4乗暗号に関する研究を発表しました。 ほとんどのペンと紙の暗号と同様に、4平方暗号は現在暗号的な価値を持ちませんが、発明の時点では、モノグラフの暗号よりも大きな利点がありました。 100年後、13年後、アリス・デラステッレは、アルファベットのサイズとキーの数を増やすことで4平方暗号を改善することにしました。[引用が必要] キー設定 アルファベットには次の文字が含まれます(スペースで始まる): !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ パスフレーズを指定すると、次のようにこのアルファベットの順列を作成します。 各文字の最初の出現のみを保持します。 アルファベットの未使用文字を自然な順序で追加します。 4つのパスフレーズを4つのキーに変換した後、各キーを辺の長さ7の正方形に分割し、結果の4つの正方形を配置して1つの大きな正方形を形成します。 たとえば、パスフレーズが PROGRAMMING PUZZLES & CODE GOLF POPULARITY CONTESTS & CODE BOWLING CORRECT HORSE BATTERY STAPLE DON'T TELL EVE!!! キーは次のように構築および配置されます。 PROGAMI POULARI N UZLES TY CNES &CDF!"# &DBWG!" $%'()*+ #$%'()* ,-./:;< +,-./:; =>?@BHJ <=>?@FH KQTVWXY JKMQVXZ CORET H DON'T E …

18
トーナメント形式の同義語
今日はすべてをスーパースマッシュブラザーズトーナメントで過ごし、セットを説明するときに使用する用語の一部について考え始めました。これらは、トーナメントでプレイされる3種類のセットです。 ベストオブ3(Bo3) 3つのゲームがプレイされます。このセットの勝者は、ゲームの大半を獲得したプレーヤーです。 1人のプレイヤーがセットの2ゲームに勝った場合、相手が追いつくことは不可能なので、すぐに勝者と宣言されます。 ベストオブ5(Bo5) 5つのゲームがプレイされます。このセットの勝者は、ゲームの大半を獲得したプレーヤーです。 1人のプレイヤーがセットの3ゲームに勝った場合、相手が追いつくことは不可能なので、すぐに勝者と宣言されます。 最初の5(Ft5) さて、以前の文言で少しごまかしました。この種のセットはトーナメントの一部ではありませんが、多くの場合、会場で開催されます。これは伝統的に、他のプレイヤーに挑戦してお金が出ている場合にプレイする種類のセットです。 簡単なことです。プレーヤーは、ゲームの1つが5つ勝つまで繰り返しプレイし、そのプレーヤーが勝者と宣言されます。 明らかに、Bo3とBo5は非常に似ており、プレイされるゲームの数のみが異なります。しかし、Ft5は明らかに違います...そうですか?あんまり!Bo3セットがどのようにダウンしたとしても、勝者はちょうど2つのゲームに勝ったことになります。Bo5セットの勝者は、正確に3ゲーム勝ちました。なぜFt2またはFt3と呼ばないのですか?逆に適用された同じロジックは、Ft5がBo9とまったく同じであることを示します。 この課題の目的は、セット形式の同義語を判別することです。 仕様 プログラムまたは関数はinputから単一の文字列を取得します。最初の2文字はBoまたはFtになり、その後に数字が続きます。プログラム/関数意志の出力と反対のプレフィックスと、入力と出力文字列が同じものを意味するような数の文字列。 で始まる文字列Boは奇数で終わります。 入力文字列の数値が200を超えることはないと想定できます。また、正しい出力に200を超える数値が含まれる入力を受信しないと想定することもできます。同様に、入力および正しい出力の数値は常に0より大きくする。 例 Bo3 -> Ft2 Ft2 -> Bo3 Bo5 -> Ft3 Ft3 -> Bo5 Bo9 -> Ft5 Ft5 -> Bo9 Bo51 -> Ft26 Ft26 -> Bo51 Bo199 -> Ft100 Ft100 -> Bo199
17 code-golf 

14
基準角度を見つける
これはかなり単純な質問です。よると、私が見つけたこのランダムなウェブサイト- Webアーカイブ、基準角度は、the acute angle formed by the terminal side of the given angle and the x-axis.あなたがこれらを見つけるためのプログラムを記述する必要があります。 代数2のことは何も覚えていませんが、これはどういう意味ですか? 通常、角度は標準形式で与えられます。これは、角度の片側を配置し、反対側を反時計回りに測定することで測定されます。 これが入力になります。出力はこれの基準角度になります。これは、基本的に端末側からx軸までの最小距離と考えることができます。ただし、距離ではなく角度です。ここではいくつかの例を示します。 明確化 入力および提出に関するすべてのデフォルト。 角度は度単位です。 負の角度、非整数の角度、および360度を超える角度が許可されます。 形式で出力します60 deg。 これはcode-golfなので、バイト単位の最短コードが勝ちです! 別の役立つリンク。 テストケース 70 -> 70 deg 135 -> 45 deg 210 -> 30 deg -60 -> 60 deg 91 -> 89 deg 610 -> …

24
その言葉にサイン2!
その言葉にサイン2! その少し前に、私はその言葉に署名というチャレンジを投稿しました!。課題では、順番に入れ文字(の例えば署名である単語の署名、見つけなければならないthisですがhist)。さて、そのチャレンジは非常にうまくいきましたが、重要な問題が1つありました。それはとても簡単でした(GolfScriptの回答を参照)。そのため、同様の課題を投稿しましたが、より多くのルールがあり、そのほとんどは前のパズルのコメントでPPCGユーザーによって提案されています。だから、ここに行きます! ルール プログラムは入力を受け取り、使用する言語に関係なくSTDOUTまたは同等のものに署名を出力する必要があります。 組み込みのソート関数を使用することは許可されていないため$、GolfScriptのようなものは許可されていません。 マルチケースをサポートする必要があります-プログラムは大文字と小文字の両方の文字をグループ化する必要があります。したがって、の署名は、最初のバージョンのGolfScript回答で指定されたとおりでHelloはeHlloありませんHello。 プログラム用の無料のインタープリター/コンパイラーが必要です。リンクする必要があります。 得点 スコアはバイトカウントです。最も少ないバイト数が優先されます。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes コードスニペットを表示 var QUESTION_ID=55090;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var …

6
ASCII都市の再構築
+-+ +-+ | | +-+ +-+ | | | | | | | | +-+ +-+ +-+ +-+ ASCIIvilleの人々は都市を再建し、新しい青写真をスケッチしています。あなたの仕事は、彼らが望む建物の数に基づいて、新しい都市を描くことです。 入力は、建物の数です。各建物は、入力の高さの半分(奇数の場合は切り上げ)であり、建物の上部と下部は含まれません。 の基本的な例を描きましょう 4 +-+ +-+ +-+ +-+ | | | | | | | | | | | | | | | | +-+ +-+ +-+ +-+ ここでわかるように|、入力が4だったため、すべての建物に2つのがあります。しかし、キャッチがあります!(つまり、上記の例は正しくなく、この投稿の上部の例は4の実際の出力です) 素数ではない各建物について、その高さは1つ下がります。数はで割り切れる場合は3、5、または10、それはより1ダウンします。それらの数値の2つ以上で割り切れる場合、差し引かれる金額は合計されます(10は10と5で割り切れ、素数ではないため、3が差し引かれます)。 の入力の例を見てみましょう5。 +-+ …

4
MIDIトラックを表示する
バックグラウンド MIDIファイルは、WAVまたはMP3オーディオファイルとはまったく異なります。MP3およびWAVファイルには、オーディオの「録音」を表すバイトが含まれています。一方、MIDIファイルには、MIDIイベントに格納された一連のMIDIメッセージがあります。これらのメッセージはトラックに保存され、トラックのコレクションがMIDIシーケンスを構成します。MIDIシーケンスのイベントはシーケンサーによって分析され、そのメッセージをシーケンサーからシンセサイザーの受信機に送信できます。 ほとんどの場合、MIDIイベントに保存されるMIDIメッセージは、特定のノートを演奏するようシンセサイザーに指示するノートオンメッセージ、またはノートの再生を停止するようシンセサイザーに指示するノートオフメッセージです。これらのメッセージには2つのデータバイトが含まれており、1つ目はシンセサイザーにノートのベロシティを通知し(ベロシティーが大きいと音が大きくなります)、2つ目はシンセサイザーに再生するノートを伝えます(つまり、ミドルC)。イベント自体には、メッセージをいつ送信するかをシーケンサーに伝える目的に役立つチックも含まれています。 チャレンジ 課題は、シングルトラックMIDIシーケンスで一連のノートオンおよびノー​​トオフMIDIメッセージを分析し、特定のノートがオンのとき、オフのとき、およびこれらのノートの速度。チャートの垂直軸は音価を表し、以下に説明するようにラベル付けする必要があり、水平軸はMIDIティックで時間を表します(ただし、複雑さと間隔の問題を減らすためにラベルは付けないでください) 入力は、それぞれが一連の整数値を含む4つの個別の配列またはリストです。一連の整数値を持つ4つのサブ配列/サブリストを含む2次元配列またはリスト。またはその他の便利な手段。これは、トラック内のノートオンおよびノー​​トオフメッセージを含むコレクションMIDIイベントを表します。これらの配列の最初の値は、音符、2番目のベロシティ、3番目のノートオンイベントティック、4番目のノートオフイベントティックを指定します。たとえば、次のような4つの配列がある場合: {60, 62, 64, 65, 67} {20, 40, 60, 80, 100} { 0, 4, 8, 12, 16} { 2, 6, 10, 14, 18} 各配列の最初の要素を分析すると、次の2つのイベントが得られます。NoteOnコマンド、note 60(中央C)、およびノー​​ト速度20のメッセージを持つティック0のイベント。ティック2のイベントには、同じノートとベロシティを持つノートオフコマンドを持つメッセージがあります。 ルール チャートは、左側に0から127までの数字(音符の値を表す)、音符の開始時、各音符の長さ(音符のオフティックから音符のオンティックを引いたもの)、および音符のベロシティを表示する必要があります。ノートを表すシンボルは、ベロシティに依存します。 0-15: O 16-31: = 32-47: # 48-63: - 64-79: @ 80-95: + 96-111: 0 112-127: * 次のことを想定できます。 ノートとベロシティの値は、[0、127]の範囲内になります。 …

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