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

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

5
接線ポリゴン拡張
次のようなものを描きます。 より正確に言えば、半径rの円を描き、長さlのnの等間隔接線を描く。これらの線の端を接続して、新しいn辺の正多角形を形成します。 ルール r =円の半径 n =接線の数-円の周りに等間隔である必要がある(n> = 3) l =接線の辺の長さ 引数{r、n、l}を受け入れ、必要な出力を描画するプログラムを作成します。 単位はピクセルです。 図面がすべて表示されている限り、図面の場所に制限はありません。 写真は一目瞭然です。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

12
Piem Validatorプログラム
「ユーザーが望むものまたは入力したもの」という文字列変数がパイムかどうかをチェックできる関数を定義するプログラムを作成します。(piem =語長がπの数字を表すストーリーまたは詩(Wikipediaから)) いくつかの例: myfunction("I am clearly wrong") # False myfunction("How I want a drink, alcoholic of course, after the heavy lectures involving quantum mechanics") #True (Taken from Wikipedia) myfunction("Law ' s fine") # True 処理する前に、あらゆる種類の句読点または改行を削除する必要があります。純粋なコードゴルフ、最短の勝利 終了日:2014年1月10日の夕方 さまざまな答え 何桁処理する必要がありますか?10以上 関心事として、PIの0はどのように解釈されるべきですか?スキップまたは10文字の単語?10文字の言葉として 「piemと呼ばれる変数」–パラメータの名前はpiemでなければなりませんか?いいえ、質問テキストは修正されていません 楽しいボーナスはそれ自体が解決策である可能性がありますあなたの解決策が解決策である場合、* 0.5のボーナスが得られます 議論のために、_は常に句読点ですか?句読点かそうでないかを決めることができます 「あらゆる種類の句読点」が何を意味するのかは不明です、つまり、。 ''?!;;() 数字を数える必要がありますか?そして、法律の罰金は虚偽でしょうか?数字は文字として扱う必要があります。Law's fine = False; Law …
11 code-golf  pi 

1
Golfscript対角配列
Golfscriptで、配列のすべての対角線を単一の配列にする方法はありますか? たとえば、配列の場合 [[1 2 3][4 5 6][7 8 9]] 帰る [[7][4 8][1 5 9][2 6][3]] (必ずしもこの順序である必要はありません)および ["ABCD""EFGH""IJKL"] 帰る ["I""EJ""AFK""BGL""CH""D"] (必ずしもこの順序である必要はありません)。配列の長さが同じであると仮定します。 私はそれを理解するのに苦労しています。文字列のth文字を使用して=繰り返し処理を試みましたが、うまくいき(length+1)ませんでした。誰か助けてくれますか? 可能であれば、これを行う最短の方法が欲しいです。

26
文字列内のすべての数値をインクリメントします
10進数を含む文字列がある場合: teststring134this 123test string54 100 この文字列のすべての数値を1ずつインクリメントして、新しい文字列を提供します teststring135this 124test string55 101。 文字列は次のように提供できます。 コマンドライン引数 STDIN ハードコーディングされた変数または関数の引数 番号のすべての可能な位置をカバーします: 単語の接頭辞として。123test►124test 単語の接尾辞として。test123►test124 言葉の中 te123st►te124st 単独test 123 test►test 124 test Pythonのゴルフ以外のソ​​リューションを次に示します。 NUMBERS = '0123456789' def increment(s): out = '' number = '' for c in s: if c in NUMBERS: number += c else: if number …
11 code-golf  string 

1
矢印で再編成
私が何かを書いていて、間違ったボックスに間違って書いたとしましょう: +-------+--------+ | Verbs | Nouns | +-------+--------+ | Truck | | | eat | Banana | | | Car | +-------+--------+ だから、私は怠け者であるはずの空間に矢印を描くだけです: +-------+--------+ | Verbs | Nouns | +-------+--------+ |[Truck]---> | | eat | Banana | | | Car | +-------+--------+ あなたの仕事は、見た目をきれいにすることです。 +-------+--------+ | Verbs | Nouns | +-------+--------+ …
11 code-golf 

10
フィボナッチドミノタイル
あります古典的な組み合わせの結果タイルに、いくつかの方法があること2*nによって、ストリップ1*2ドミノがn 番目のフィボナッチ数は。あなたの目標は、nこれらの8つのタイルのようにダッシュと垂直線で描かれた特定のすべてのタイルを印刷することですn=5: |———— |———— ——|—— ——|—— |||—— |||—— ————| ————| ||——| ||——| |——|| |——|| ——||| ——||| ||||| ||||| n入力として必要な出力を出力するプログラムまたは名前付き関数を提供します。最少バイトが勝ちます。 入力 数n間1および10STDINまたは機能入力を介して包括的な。 出力 2*nストリップの可能なドミノタイルをすべて水平に描画して印刷します。タイルの順序は任意ですが、それぞれ1回だけ表示される必要があります。これらは空白行で区切る必要があります。 垂直ドミノは2つの垂直バー(|)で構成され、水平ドミノは2つのダッシュ(—)で構成されています。-ASCIIのままにするために、ダッシュの代わりにハイフン()を使用できます。 印刷出力が同じように見える限り、空白で何でもできます。

3
SPOF画像ハンギング
目的 壁に掛けたい素敵な写真があります。そして、私はそれを壮観な方法でそこに吊るしたいので、正の整数nでnある釘に吊るすことを選びました。 しかし、私は優柔不断でもあるので、気が変わっても、写真を撮るのに苦労する必要はありません。したがって、n爪のいずれかを削除すると、画像が落ちるはずです。私の家には摩擦がないと言いましたか? 手伝って頂けますか? ルール プログラムはn、stdinから番号を読み取り、stdout(または言語の同等物)に出力する必要があります。 出力は、他の末尾または先頭の文字を含まない出力仕様に応じたソリューションでなければなりません。ただし、末尾の空白や改行は許容されます。 爪を正確に 使用する必要がありますn。 摩擦のない世界を想定して、ソリューションは次の条件を満たす必要があります。 ソリューションで説明されているように画像をぶら下げて、画像が落ちてはいけません。 爪のいずれかが削除された場合、画像が落ちる必要があります。 標準の抜け穴が適用されます。特に、ブルートフォースソリューションの検証プログラムなどに要求することはできません。 4.2はすでに、すべてのn釘が関与しなければならないことを暗示していることに注意してください。 出力仕様 すべての爪は、左から右に、それぞれの位置から名前が付けられ1ます。 文字列を爪の周りに配置するには、時計回りと反時計回りの2つの基本的な方法があります。私たちは、時計回りのステップ示す>とと反時計回りのステップを<。 文字列が爪の周りに置かれるたびに、それは爪の上に出てくるので、爪を飛ばすことは、文字列が中間爪の上を横切ることを意味します。 すべてのソリューションは、爪1で始まり、爪で終わる必要がありnます。 出力は、一連のステップで構成されている必要があります。ステップは、爪の名前と、その周りに文字列を置く方向の組み合わせです。 出力例 n=5andの出力例を次に示しますn=3。 1>4<3<2>4>5< # n=5, incorrect solution 1>2<1<2>3<2<1>2>1<3> # n=3, correct solution そして、これはn=5(awsumz gimp skillz)の不正解の視覚的表現です の正しい解決策n=1は、単に1>または1<です。複数の爪の場合、さまざまな解決策があります。これはスコアの一部であるため、1つだけを出力する必要があります。 検証 ソリューションが正しいかどうかは、www.airblader.de / verify.phpで確認できます。 GET要求を使用するため、必要に応じて直接呼び出すことができます。たとえば、fooが各行にソリューションを含むファイルの場合、次を使用できます。 cat foo | while read line; do echo `wget …
11 code-golf 

6
私の端末の退屈さを軽減できますか?
最近の端末は退屈です。以前は次のようでした。 今、彼らはただ当たり障りのない鈍い、白黒です。私の端末を再びカラフルにするプログラムを書いてほしい! 説明 このRubyコードの例をご覧ください。 ほとんどのLinux端末はこれらのエスケープシーケンス(\eエスケープ文字の略)をサポートし、WindowsはANSICONでこれらをサポートできます。文字列のテキストまたは背景色を変更できる特定のエスケープシーケンスの構文は次のとおりです。 \e[{{COLOR}}m ここ\eで、エスケープ文字(0x1BASCII)を表し、{{COLOR}}使用する色の番号に置き換えられます(これについては後で詳しく説明します)。このエスケープシーケンスの後に来るテキストは指示どおりにフォーマットされ、値が0すべてのフォーマットをリセットします。 あなたの課題は、色を含む可能性のあるテキストを指定する文字列を取得し、そのカラフルなバージョンを出力することです。 入出力 通常のテキストは通常​​と同様に機能し、文字通り印刷されます。たとえば、入力wafflesは同じ出力を生成し、特別な色はありません。 色を指定するための構文は、Wikipediaの構文に似ています。たとえば、文の赤の単語「the color red」に色を付けるにはThis is the color red!、次のように入力します。 This is {{red|the color red}}! 背景色も機能します。白い背景に黒い文字が必要な場合は、これを使用します。 {{black|white|This text is black on white}} 背景色のみを取得するには、前景を省略します。 {{|red|This text has a red background}} 仕様 2つの開いた中括弧は、常にカラーディレクティブの始まりを指定します。2つの閉じ中括弧で終了を指定します。ブラケットは常に一致します。{{対応することなくa が決してなく、対応する前に}}a }}が決して来ないでしょう{{。これらのカラーディレクティブはネストされず、a {{はカラーディレクティブ内に表示されません。 カラーディレクティブ内には、常に1つまたは2つの|シンボルがあります。ある場合、前のテキストは前景色であり、後のテキストはその色で表示する文字列です。2つある場合、最初のテキストの前のテキストが前景色であり、最初のテキストの後2番目のテキストが背景色であり、2番目の後のテキストが表示する文字列です。これらの垂直バーは、カラーディレクティブの外側に存在する場合があり、文字どおりに印刷する必要があります。 前景色または背景色(両方ではない)が空の場合があります。その場合は、デフォルトのままにしておく必要があります。最終的な文字列(出力する文字列)が空になることはありません。 特定の色のテキストを出力する方法は次のとおりです。 色配列は、「説明」セクションで定義されています。たとえば、42の色シーケンスはになります"\e[42m"。 色を設定するには、以下で決定した番号の色シーケンスを印刷します。 Color name | Color …
11 code-golf 

4
成長するマンハッタンアメオバス
*** ameobaグラフ****は、すべてのノードの値が0から非負の整数Nであり、値x <Nの特定のノードが値x +のx + 1個の異なるノードに接続するツリーのタイプです1。 N = 3のアメオバグラフ(A 3と表示) 2が3を共有することは許可されていないことに注意してください。正確に3つの3が各2に「属する」必要があります。 チャレンジ あなたの仕事は、ノード間のマンハッタン距離を貪欲に最小化することによって、これらのアメオバグラフを2次元グリッドで誘導的に「成長」させることです。 基本ケース: A 0は単なるグラフ0です。 帰納的ステップ: A N + 1は、新しいN + 1値ノードを既存のA N構造内のN値ノードのできるだけ近くに繰り返し配置することによって生成されます。(最も近いスポットはすでに満たされている可能性があるため、可能な限り近くすることができます。) 誘導ステップの場合、従う必要がある一般的な手順は次のとおりです。 for each existing node P with value N: for each new N+1 valued node Q you need to connect to P: //this loops N+1 times …

6
rとnが与えられた場合、xの最初の数字を最後に移動するとx / r = yになるxの最初のn個の数字を見つける
目的 入力が与えられ、最初の自然数rをn見つけて、最初の数字を最後の位置に回転させるとが得られます。nxx/r あなたはそれ2 <= r <= 9と仮定するかもしれません1 <= n <= 65535。 stdinまたはコマンドライン引数から入力を受け取るプログラムを作成できます。または、パラメータを取りr、nパラメータとして使用する関数を作成できます。ただし、出力は標準出力にする必要があります。出力はの値ごとに1行であるべきであり、増加する順番にxフォーマットされx/r=yていxます。 ソリューションは、妥当なデスクトップコンピューターで1分以内にすべての有効なケースを処理できる必要があります。 テストケース 入力:4 5 出力: 102564/4=25641 205128/4=51282 307692/4=76923 410256/4=102564 512820/4=128205 入力:5 1 出力:714285/5=142857 これはコードゴルフであるため、最小バイトが勝ちます。勝利の答えは、今から4週間後に受け入れられます(2014-09-19)。 この質問のクレジットは同僚に送られ、同僚がこの質問をここに投稿することができました:)

3
英語の単語の音節化-種類
テキストの文字列内の単語をハイフンで区切って音節化するプログラムを作成する必要があります。それは大変な作業になるので、主に完璧なアルゴリズムに必要な発音の表を持ちたくないので、いくつかの部分をスキップしたいでしょう。また、この割り当てを与えられたときの復venとして、可能な限り短く(したがって、読み取り不能および保守不能に)したいと考えています。 次の2つの選択肢があります。 STDINから文字列を取得し、その結果をSTDOUTに出力するプログラムを作成します。 文字列を単一のパラメーターとして受け取り、結果を返す関数を作成します。 仕様 この場合、文字列とは、選択した言語の文字列に似た構造(バイト配列、文字配列、文字列など)を意味します。 母音は a, e, i, o, u 指定された文字列には1 <= n <= 10単語があり、各単語は1 - 30文字間の長さを含みます。 すべての文字は小文字であり、単語は常にスペースで区切られます。したがって、入力は文字で構成されます[a-z ] 重要度の順にルールを適用します。 単語が分割されたら、単語の右半分から再び始めます。 音節化のルール、重要度順 2つの連続する同じ母音は1つとしてカウントされます(つまりfeet、母音は1つだけですがbeat、finding2つあります)。すべての音節には1つの母音があるため、各母音には1つの音節があります。 単語全体に 4文字しか含まれていない場合は、変更せずに返します。(残りの単語はこれをスキップします) 単語に母音が1つしかない場合は、単語を変更せずに返します。 単語に2つの連続した母音がある場合、それらを分割します(つまりdiaspora-> di-as-po-ra) 2つ以上の子音が(同じまたは異なる)2つの母音の間に来るsis-ter場合、子音部分がckである場合を除き、最初の子音の後に分割します(つまり、その場合、その後の単語を分割します)。(つまりnickel-> nick-el) a yが2つの母音の間にある場合、その単語をその後に分割します(例paying-> pay-ing)。 1つの子音が2つの母音(同じまたは異なる)の間に来る場合、子音の前で分割します(つまり、dra-gon) 分割できない場合は、単語を変更せずに返します。 これらのルールは問題なく再帰的に適用でき、発音テーブルを必要としないため、これらのルールを選択しました。したがって、それらは正確ではなく、たとえばルール5はしばしば正しくありません。ただし、一般的な場合はそうです。 例 In: hello world Out: hel-lo world In: have a nice day …
11 code-golf 

16
最短最長増加サブシーケンスコード
挑戦は最も長く増加しているサブシーケンスを見つけるために最も短い実装を書くことです。 例:Sをシーケンス1 5 7 1 8 4 3 5 [Sの長さ= 8]とする 長さ0のサブシーケンスが1つあります[増加するとみなします] 長さ1の6つのサブシーケンス{1,5,7,8,4,3} [これらはすべて増加していると見なされます] (7 * 8)/ 2の長さ2のサブシーケンス[ただし、重複を削除します]、増加するサブシーケンスは強い黒で表示されます。 { 15,17、11、18,14,13,57、51、58、54,53,55,71、78、74,73,75,84,83,85,43、45,35 } [厳密に増加するサブシーケンスにのみ関心があることに注意してください] [ シーケンス内の要素の順序は変更できないため、シーケンス例にはサブシーケンス[37]はありません] 1578である長さ4のサブシーケンスが増加していますが、長さ5のサブシーケンスはありません。したがって、最大の増加サブシーケンス= 4の長さを考慮します。 入力: a 1 a 2 ... a N (シーケンス) すべての数値は10 3 N <= 1000 より小さい正の整数です 出力: 入力シーケンスの最も長く増加するサブシーケンスの長さを示す1つの整数。 sample input(1) 1 2 4 2 5 …
11 code-golf 

4
書式を維持しながらhtmlをn文字に減らします
ほとんどすべての言語には、特定の位置で文字列を分割できる組み込み関数があります。ただし、文字列にhtmlタグがあるとすぐに、組み込み関数は正しく機能しません。 あなたの仕事は、n番目の文字で文字列を分割するプログラムまたは関数を書くことですが、htmlタグの文字はカウントせず、有効なhtmlを出力します。プログラムはフォーマットを保持する必要があります。htmlタグの外側のスペースは、必要に応じてカウントされる場合とカウントされない場合がありますが、保持する必要があります。ただし、連続する複数のスペースを単一のスペースに交換できます。 入力: 文字列 分割する位置(0ベース) これらは、プログラムまたは関数の引数として使用するか、標準入力から読み取ることができます。 出力:返されるか、標準出力に書き込まれる分割文字列。 入力は有効なHTMLであり、エンティティ(など )は含まれません。文字制限の後に開かれるタグは、出力から除外する必要があります(最後の例を参照)。 例: 入力:<i>test</i>、3 出力:<i>tes</i> 入力:<strong><i>more</i> <span style="color: red">complicated</span></strong>、7 出力:<strong><i>more</i> <span style="color: red">co</span></strong> 入力:no html、2 出力:no 入力:<b>no</b> <i>html root</i>、5 出力:<b>no</b> <i>ht</i> 入力:<b>no img</b><img src="test.png" />more text、6 出力:<b>no img</b> 任意の言語および指定された言語の標準ライブラリを使用できます。これはコードゴルフで、最短のプログラムが勝ちます。楽しんで!

2
英語の句読点規則を適用する
ディクテーション作成アプリのコードを書くために雇われました。このアプリは、音声入力から音声入力を取得し、それを単語として解析し、画面に書き留めます。 経営陣はプロジェクトのパワーを本当に信用していません。残念ながら仕事をするのではなく、一日中じっと座ってゴルフをすることで知られています。適切にフォーマットされた文への句読点が散在した文。「適切にフォーマットされた」は以下で定義されます。 Sentenceは入力の文字列です。Wordは、連続する非スペース文字のグループです。句読点は、最初の文字がである単語です^。 単語の最初の文字が小文字ではない場合、単語は大文字になります(大文字の単語は正規表現に一致します/[^a-z].*/)。 文の最初の言葉は大文字にする必要があります。 A ^COMMAはコンマ文字,であり、スペースが続きますが、前にはありません。aaa ^COMMA bbbになりaaa, bbbます。 A ^COLONはのようなカンマです:。 A ^SEMICOLONはのようなカンマです;。 A ^PERIODはのようなカンマです.。aに続く単語は^PERIOD大文字にする必要があります。 A ^BANGは次のような期間です!。 A ^DASHはダッシュ文字-であり、前後にスペースがあります。 A ^HYPHENもダッシュ文字です-が、前後にスペースはありません。 An ^EMDASHは、ハイフン(ダッシュではありません!)で、スペルがあります--。 アンは^OPENQUOTE引用符で"スペース以下の直前ではなく、を持っています。に続く単語は^OPENQUOTE大文字にする必要があります。の^OPENQUOTE前に句読点ではない単語がある場合は^COMMA、その単語との間にを追加し^OPENQUOTEます。^OPENQUOTE次の単語を大文字にする句読点がanの前にある場合、次の単語にスキップし^OPENQUOTEます。 A ^CLOSEQUOTEは、,"後にスペースが続くが前にはない有向グラフです。場合^CLOSEQUOTEによって先行される^COMMA、^PERIODまたは^BANG、句読点が消えていることを^CLOSEQUOTE綴られている,"、."または!"それぞれ。句読点が消えて大文字が指定された場合、その大文字は引き続き次の使用可能な単語で発生する必要があります。 完全な最終結果の最初のスペースまたは末尾のスペースは削除する必要があり、行内の2つ以上のスペースの文字列はすべて単一のスペース文字に折りたたむ必要があります。 上記で説明されていないケース(^COMMA ^COMMAまたは^SEMICOLON ^CLOSEQUOTEまたは^UNDEFINEDPUNCTUATION)は、整形式入力では発生しないため、未定義の動作です。 開発チームは次のことを通知します。 プロジェクトは[あなたの言語はこちら]の言語で書かれています。Android/ iPhone用のアプリの場合は、できるだけスペースをとらないように、できるだけ短くする必要があります。あなたはそれがアプリ開発の仕組みではないことを説明しようとしますが、彼らは耳を傾けません。しかし、ちょっと、偶然です!あなたは[ここの言語]で素晴らしいゴルファーです! アプリにはWebアクセス許可がありません。また、このフォーマットを実行するライブラリはインストールされません。おそらく、あなたの言語に正規表現ライブラリが存在する場合は、それが必要だと思われる場合は、チームリーダーにそのライブラリを許可するよう説得することができます。 二重引用符または単一引用符を適切に使用するネストされた引用符のサポートは、アプリの今後のバージョンで予定されていますが、現在作業中のバージョンでは予定されていないので、心配しないでください。 経営陣はテスト駆動開発の大ファンなので、開発チームはすでに不幸なキーボードモンキーにプログラムの一部のテストを作成してもらいました:(読みやすくするために改行を追加し、スペースとして扱います) 入力: hello ^COMMA world ^BANG 出力: Hello, world! 入力: once upon a time …

2
スチームパンク:Clackerアニメーション
過小評価されているスチームパンク小説The Difference Engineでは、映画館に相当するものが、機械的に反転できるタイルで表示されるピクセル化された動画を配信しました。これらのタイルの動きを調整するための制御エンジンは、パンチされたカードのデッキによって制御される大きなノイズの多いマシンでした。 あなたの仕事は、そのようなエンジンをエミュレートし、入力ファイルで指定されたピクセル化されたアニメーションを表示することです。入力は固定幅形式の行で構成されますが、行末を示すのに便利なものは何でも想定できます。形式は次のとおりです。 SSSSYYxxXXOA SSSS: 4 digit sequence no. may be padded by blanks or all blank YY: the y coordinate affected by this line (descending, top is 0, bottom is m-1) xx: the starting x coordinate XX: the ending x coordinate O: hexadecimal opcode A: argument (0 or …

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