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

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

3
「x」の進化
最大サイズが5フィールドの5倍の可変サイズのボードがあります。すべてのフィールドは「x」で埋められます。「x」で埋められていない場合は、「o」で埋められます。 すべてのボードの開始状態が示されます(以下を参照)。各ボードでは、10ラウンドをプレイする必要があり(最大、条件:以下を参照)、xの進化を監視する必要があります。 1ラウンドは次のように機能します。 すべての「x」は、直交するフィールドに広がりますが、消えます 2つの「x」が1つのフィールドにあるたびに、互いに中和します。 各ラウンドのすべての「x」の進化は同時に発生する必要があります。例: o o o o x o o x o -> x o x o o o o x o 進化の各ラウンドで、ボードに「x」が空になるかどうかを確認する必要があります。空ではない場合、繰り返しパターンが存在する可能性があります。これも当てはまらない場合は、進化の分析を放棄します。さらに、開始ボードごとにxフィールドの最大パーセンテージを印刷する必要があります(整数に切り捨てられます)。 入力: 入力データはここ(Pastebin)にあります。このデータには100の開始状態が含まれています。すでに述べたように、ボードのサイズはさまざまです。行の数は、1から5までの番号nで示され、その後に「x」と「o」のみを含むn行が続き、開始パターンを表します。ボードの各行には1〜5個のフィールドがあります。 出力: 完全な結果を印刷する必要があります。開始ボードごとに1行を次の形式で印刷します。 Round {0-10}: {repetition/empty/giveup}, {0-100} percent maximum-fill 例: 例1: Input: 2 Starting state: x o x xox x x xx Round …
15 code-golf 

2
ナンセンスだらけの本:リメリックを特定する
ご存知のように、リメリックは、AABBA韻を踏むスキームとアナペスティックメーター(それが何であれ)を備えた、短い5行の、時折みだらな詩です: リムリックの不条理書く 言葉でライン1とライン5つの韻を そして、あなたが数えてきたと同じように 彼らが第二と韻 四行目は、第三と韻必要があります 入力テキストが入力されると、入力が有効なライムリックであると考えられるかどうかを出力する最短のプログラムを作成する必要があります。入力は、オプションでコマンドラインまたは標準入力を介して行うことができ、出力は、オプションで単純な「Y」/「N」または信頼スコアのいずれかです。 正しいlimerickの別の例を次に示します。 目 が色と大きさに関して独特だった若い女性がいまし た彼女がそれらを大きく開いたとき、 人々はすべて背を向け、 そして驚きで出発しました しかし、以下の詩は明らかにされていない、それは韻しないため、リメリック: スズメバチによって腕に刺された聖蜂の老人がいました。 「痛いですか?」 「いいえ、そうではありません 。スズメバチではなかったことをとてもうれしく思います。」 メーターがすべて間違っているので、これもそうではありません。 ベルリンの男が 自分のいる部屋を嫌っていた と聞いた。 彼がため息をついて言う理由について尋ねたとき 、「昨夜、くまのくびきを勝ち取った祝賀会の周りに少数の愚か者がいた。ワールドカップ、そして彼らは本当に騒々しかったので、私は騒のために眠れませんでした。」 手がかり 入力がリメリックかどうかを判断するために使用できる手がかりのいくつかを次に示します。 リムリックの長さは常に5行です。 1行目、2行目、5行目は韻を踏む必要があります。 3行目と4行目は韻を踏む必要があります。 1行目、2行目、5行目は約3x3 = 9の音節を持ち、3行目と4行目は2x3 = 6の音節を持っています 最初のものを除いて、これらのどれも厳格なものではないことに注意してください。100%の正確性評価は不可能です。 ルール エントリは、少なくとも例1から3を決定論的な方法で正しく分類する必要があります。 あなたはされている(具体的に参照このコンテストのために設計されたコースプログラミング言語のを除いて、ご希望の任意のプログラミング言語を使用することができ、ここで)。 プログラミング言語の標準製品以外のライブラリを使用することはできません。 このファイル(CMU Sphinxの発音辞書)が現在のディレクトリの「c」というファイルにあると仮定することができます。 テスト入力用にハードコーディングすることは許可されていません。プログラムは一般的なlimerickカテゴライザーでなければなりません。 入力は特別なフォーマット(例のように)なしでASCIIであると仮定することができますが、プログラムは中断によって混同されるべきではありません。 ボーナス 以下のボーナスが利用可能です: あなたのプログラムは結果をライムリックとして出力しますか?150文字の長さのボーナスを差し引きます! あなたのプログラムはソネットも正しく識別していますか?150文字の余分な長さのボーナスを差し引きます! あなたのプログラムは、ソネットで使用されたときに、その結​​果をソネットとして出力しますか?追加の長さのボーナスを100文字引きます! 最後に... あなたがあなたに値すると思うボーナスを言及し、あなたのスコアに到達するためにあなたのキャラクターの数からボーナスを引くことを忘れないでください。これはコードゴルフコンテストです。最短のエントリー(つまり、最低スコアのエントリー)が勝ちます。 …

24
文字を削除して回文を作成する
問題 単語がパリンドロームになるようにその文字の1つを削除できる場合、その単語はほとんどパリンドロームであるとしましょう。あなたの仕事は、特定の単語に対して、回文を取得するために削除する文字を決定するプログラムを書くことです。 プログラミング言語でこれを行う最短のコードが優先されます。 入力 入力は、2〜1000文字の大文字の単語で構成されます。 出力 削除する必要がある文字の1インデックス位置(左端の文字に位置1、次の位置に位置2など)を出力します。回文につながる可能性のある選択肢がある場合、それらの位置のいずれかを出力します。指定された単語がすでに回文である場合でも、文字を削除する必要があることに注意してください。指定された単語がほとんど回文ではない場合、-1を出力します。 例 入力: racercar 出力を生成する可能性があります: 5 5th文字を削除するracecarと、回文であるが生成されるためです。 また、入力 racecar それでも出力を生成できます 4 4生成するth文字を削除することraccarは、まだ回文です。
15 code-golf 

5
ASCIIアート番号を認識する
チャレンジ ASCIIアート番号を認識します。物事を面白くするために、画像内の3つのランダムなポイントを反転させることができます。例えば: ***** * ** ** ** ** ** 入力 以下のPythonスクリプトによって生成された7x7 ASCIIアート番号。 出力 数字。 テストスクリプト テストケースを生成するPythonスクリプト(2.6以降)は次のとおりです。 import random digits = '''\ *** ** ** ** ** ** ** ** ** ** ** *** * *** * * * * ***** *** * ** * ** ** ** ****** *** * …

7
ホワイトノイズを生成する
課題は、ホワイトノイズで作成されたオーディオファイルを生成することです。 要件と手順: プログラムは、ホワイトノイズのみを含むオーディオファイルを生成する必要があります。つまり、その強度は、すべての(合理的な)周波数とゼロ以外で同じです[ プロット例を参照]。 VLCの最新バージョンで音声ファイルを再生できる必要があります(回答を書いている時点)。 プログラムは暗号的に強力なランダム性、rand関数、または読み取りは必要ありません/dev/rand。 プログラムは、少なくとも理論的には少なくとも1時間のオーディオを生成できなければなりません(つまり、最大ファイルサイズなどのシステム制限は適用されません)。 スコアは、ソースコードのバイト数と、適用されるすべてのボーナスです。 サードパーティの外部ライブラリを使用しても問題ありません。 プログラムは、インターネットにアクセスせずに動作する必要があります。 ボーナスは次のとおりです。 -15%:オーディオファイルの形式の指定を許可します(少なくとも2つの選択肢。可能な選択肢の数はスコアを変更しません)。 -10%:オーディオファイルの長さを指定できます。 -5%:オーディオファイルのビットレートを指定できます。 設定は変数、ファイルに保存するか、コマンドラインパラメーターとして指定できます。パーセンテージは、ボーナスが適用される前の元のバイト数から計算されます。

18
英数字バランス
入力として文字列を取得し、その中の英数字および非英数字の数をカウントするプログラムを作成します。次のように結果を表示する必要があります。 入力:http://stackexchange.com 出力:20 + 4 = 24 問題は、ソースコードに英数字以外の文字と同じ数の英数字を使用する必要があることです。コメントは許可されません。空白は無視されます。(ホワイトスペースと呼ばれる言語は投票のために競争するかもしれませんが、明らかに勝者として選択されません) コード内の文字には、少なくとも多少の正当化が必要です。完全に不必要であってはなりません。たとえば、長い変数名も許可されますが、i = (j*3)+4;代わりにi = j*3+4;許可されます。しかし、そうでi = i + 1;;;;;;はありません。 これに加えて、標準のコードゴルフ規則が適用されます。

9
任意精度の除算を実装する
divide(int a, int b, int c)のベース10値を出力する関数を実装しますa/b。浮動小数点演算もBigInteger/ BigDecimalまたは同等のライブラリも一切使用しません。以下の4の(可能性のある)例外を除きc、のセット内の少なくとも正確な文字を0123456789.印刷する必要があります。 aそしてb、任意の32ビットの整数であってもよいです。更新:ゴルフの目的で、入力に問題のない64ビットプリミティブを使用する場合は、64ビット範囲のデータ全体をサポートする必要はありません。 そうでない場合は、それcが正であることを確認する必要はありません(ただし、プログラムがクラッシュしないことを願っています)。 のサポートされる最小の上限cは500です。プログラムがc上記の値をサポートしていない場合でも問題ありませんが、サポート500している場合でも問題ありません。 数値が均等に分割される場合、余分なゼロを(の値に基づいて)印刷するかc、何も印刷しないかを選択できます。 この関数を使用して商でさらにタスクを実行する必要はありません。唯一の目標は印刷です。 -1との間の数値について1は、先頭を印刷するかどうかを選択します0。ただし、これは先行ゼロの印刷が許容される唯一のシナリオであり、このようなゼロを1つだけ印刷できます。 最後の小数位には、任意の丸め/フロア/セルロジックを使用できます。 否定的な答えを得るには、先頭に-。を印刷する必要があります。これはにカウントされませんc。しかし、それはあなたが印刷したい場合はあなたの選択ではない、+または肯定的な回答のために何も。 整数除算と整数モジュラスの両方が許可されます。ただし、コードの長さに対してカウントされる独自のBigInteger/ BigDecimalライブラリを実装することを選択しない限り、プリミティブに制限されることに注意してください。 あなたが処理する必要がありませんbという0ことができますけれども、あなたがしたい場合は、。プログラムが無限ループに入るか、ifがクラッシュすると、b=0ペナルティは科せられません。 コメントごとにわずかなルール変更。競技場が水平でありa、b32ビット整数であることが保証されるようにするには、64ビット長整数を使用できます。選択した言語がプリミティブとして64ビット整数を超える場合、その機能を使用することはできません(64ビットで制限されているふりをする)。 不明な点(現在の有効な回答は変更しないでください):c印刷文字数または小数点以下のスペース数として解釈される場合がありますが、プログラムはc何らかの方法で関連する方法で使用する必要があります印刷する文字数を決定します。言い換えれば、divide(2,3,2)よりもはるかに短い出力であるべきdivide(2,3,500)です。に関係なく500文字を印刷することはできませんc。 実際、関数の名前は気にしません。dゴルフの目的には大丈夫です。 入力 関数呼び出しと読み取りの両方stdinが受け入れられます。から読み取る場合stdin、セットにない文字は[-0123456789]引数の区切り文字と見なされます。 出力 stdout上記の文字。 例 の場合divide(2,3,5)、次のすべてが許容可能な出力です。 0.666 0.667 .6666 .6667 0.666 0.667 .6666 .6667 +0.666 +0.667 +.6666 +.6667 別の例:divide(371,3,5)以下については、すべて受け入れられる出力です。 123.6 123.7 123.6 123.7 +123.6 +123.7 123.66666 123.66667 123.66666 123.66667 …

8
フラクタルツリーを作成する
私が見たいのは、整数を入力できるフラクタルツリーです。出力は、入力された分岐ステップ数のフラクタルツリーになります。 ルール: フラクタルはラインフラクタルツリーである必要があります。 フラクタルの形状もこの図と同じでなければなりません。 各分岐は、分岐するたびに幅が25%減少するはずです。 ブランチの最終層は1ピクセル幅の線である必要があります 最短のコードが勝つ ヒント:このサイトは役に立つかもしれません。

6
コードインジェクションはC#でも機能します!
次のC#プログラム出力が与えられた場合、プログラムが出力するようFalseに「悪意のある」コード行を挿入しますTrue。 class Program { static void Main() { System.Console.Write("False"); ; } } あなたの答えは、第二のセミコロンを置き換え、出力するプログラム原因となる文字列で構成する必要がありTrue、全体Trueと何もなく、True(いなくても改行を)。stdoutがコンソールに出力され、stdoutがファイルにリダイレクトされる場合、これを行う必要があります。 最短の答えが勝ちです。

30
ゴールドバッハの予想
2より大きい偶数の整数をユーザーに求めるプログラムを作成します。 2より大きいすべての整数は2つの素数の合計として表現できるというGoldbachの推測を考えると、2つの素数を出力し、それらを加算すると、要求された偶数を提供します。編集:プログラムは、すべてではなく素数のペアを印刷するだけです。例えば: 4:2 + 2 6:3 + 3 8:3 + 5 10:5 + 5または3 + 7
15 code-golf  primes 

12
ソートされた整数のリストからバランスの取れたBSTを作成する
一意のソートされた整数のリストを指定して、再帰を使用せずに配列として表されるバランスの取れたバイナリ検索ツリーを作成します。 例えば: func( [1,2,3,5,8,13,21] ) => [5,2,13,1,3,8,21] 始める前に、ヒント:この問題を1トン単純化し、入力整数(またはその点で同等のオブジェクト)を実際に考慮する必要がないようにします。 入力リストが既にソートされていることがわかっている場合、そのコンテンツは無関係です。元の配列へのインデックスの観点から単純に考えることができます。 入力配列の内部表現は次のようになります。 func( [0,1,2,3,4,5,6] ) => [3,1,5,0,2,4,6] これは、比較可能なオブジェクトを処理する必要があるものを記述するのではなく、範囲[0、n)から結果の配列にマップする関数を記述するだけでよいことを意味します。新しい順序を取得したら、入力の値にマッピングを適用して戻り配列を作成できます。 有効なソリューションは次の要件を満たす必要があります。 ゼロ要素配列を受け入れ、空の配列を返します。 長さnの整数配列を受け入れ、整数配列を返します nから2マイナス1の次に高い累乗の間の長さ(たとえば、入力サイズ13の場合、13から15の間のいずれかを返します)。 ルートノードが位置0にあり、高さがlog(n)に等しいBSTを表す配列。0は欠落ノード(またはnull言語で許可されている場合は-like値)を表します。空のノードは、存在する場合、のみ(例えば、木の端部に存在しなければなりません[2,1,0]) 入力整数配列には、次の保証があります。 値はゼロより大きい32ビット符号付き整数です。 値は一意です。 値は、位置ゼロから昇順です。 値はまばらかもしれません(すなわち、互いに隣接していない)。 ASCII文字カウントによる最も簡潔なコードが優先されますが、特定の言語向けのエレガントなソリューションを見ることにも興味があります。 テストケース 含む単純なアレイの出力1にn種々のためn。上記のように、末尾0のsはオプションです。 [] [1] [2,1,0] [2,1,3] [3,2,4,1,0,0,0] [4,2,5,1,3,0,0] [4,2,6,1,3,5,0] [4,2,6,1,3,5,7] [5,3,7,2,4,6,8,1,0,0,0,0,0,0,0] [6,4,8,2,5,7,9,1,3,0,0,0,0,0,0] [7,4,9,2,6,8,10,1,3,5,0,0,0,0,0] [8,4,10,2,6,9,11,1,3,5,7,0,0,0,0] [8,4,11,2,6,10,12,1,3,5,7,9,0,0,0] [8,4,12,2,6,10,13,1,3,5,7,9,11,0,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,15]

5
SHA-1ハッシュアルゴリズムの実装
このcode-golfの目標は、入力として文字列を受け取るプログラムを作成することであり、SHA-1ハッシュ値を16進数として出力する必要があります。ここでSHA-1の擬似コードを見つけることができます その他の規則: ネットワークアクセスなし 外部プログラムの実行は許可されていません 組み込みメソッドを使用して入力をハッシュすることは許可されていません 最短のコードが勝ちます ASCII入力を処理する必要があるだけです 出力は小文字でも大文字でもかまいません 入力は次を使用して提供できます。 入力を促す コマンドライン引数を使用する STDINを使用する テストケース: Input: The quick brown fox jumps over the lazy dog Output: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 ---------------------------------------------------------- Input: The quick brown fox jumps right over the lazy dog Output: 1c3aff41d97ada6a25ae62f9522e4abd358d741f ------------------------------------------------------------ Input: This is a code golf challenge Output: f52ff9edd95d98e707bd16a7dead459cb8db8693

1
0から9までの数字を声に出して話す
electronics.SEからのこの質問に触発されて、ここにあなたのための挑戦があります: 既存の音声合成ツールを使用せずに、一連の10進数(0〜9)を取り込んで声に出して話すプログラムまたはサブルーチンを作成します。 入力: 入力数字は、ASCII数字の文字列、整数の配列、BCDでエンコードされた数字など、合理的な形式で提供されるように要求できます。ソリューションが実行可能プログラムである場合、入力をコマンドラインパラメーター、標準入力から読み取る、またはその他の合理的な方法で取得します。 プログラムは、呼び出しごとに少なくとも8桁を話せる必要があります。あなたはあり、それが唯一の数字でない限り、最初の桁は、ゼロではないことを前提としています。 出力: プログラムは、オーディオデバイスを使用して番号を直接話すか、再生可能なサウンドファイルを出力する場合があります。出力ファイルがある場合は、標準のオーディオ形式であるか、生のサンプルデータで構成されている場合があります。生のサンプルデータを出力する場合は、再生に適したパラメーター(サンプルレート、サンプルあたりのビット数、エンディアンネス、符号付き/符号なし、チャンネル数)に注意してください。aplayでサポートされている形式が推奨されます。 数字の読み方の詳細は自由に決めることができますが、出力は、典型的な英語話者が理解できる方法で話された英語の数字で構成する必要があり、リスナーが正確に文字起こしできるように十分明確にする必要があります話されている8桁の乱数。いいえ、ビープ音をn回鳴らすだけではカウントされません。数字の間に一時停止を含めることを忘れないでください。 得点: 標準のコードゴルフスコアリングルールが適用されます。スコアは、コードの長さ(バイト単位)、またはコードがUnicodeテキストで記述されている場合はUnicode文字です。最低スコアが勝ちます。すべての言語が行きます。 Electronics.SEの最初の質問は組み込みプログラミングに関するものであったため、低レベル言語を使用して作成者に骨を投げるのが適切だと感じました。ソリューションがコンパイルされた言語で記述されている場合、スコアとしてバイト単位でコンパイルされた実行可能ファイル。(はい、Java .classファイルなどのプリコンパイルされたバイトコードでも構いません。)このオプションを使用することを選択した場合は、ソースコードと一緒にコンパイル済み実行可能ファイルのコピーを(たとえば、16進ダンプとして)回答に含めてくださいそして、生成に使用したコンパイラのバージョンとオプション。 佳作は、50担当者の恵みとともに、またの基準に適合していることを最初の答えに付与されます元の質問を、すなわち、フラッシュの4キロバイトとSRAMの1キロバイトを埋め込んだMCU上で実行することが可能です。 制限事項: 上記のファイルまたはリソースの長さをスコアの一部としてカウントしない限り、選択した言語の標準ランタイム環境の一部ではないファイルまたはネットワークリソースを使用することはできません。(これは、Webからのオーディオサンプルの読み込みなどを禁止するためです。) 選択した言語の標準ランタイム環境に含まれている場合でも、既存の音声合成ツールやライブラリ、またはオーディオデータのコンパイルを使用することはできません(サイズをスコアの一部としてカウントしない限り)。
15 code-golf  audio 

12
Tclでのゴルフのヒント
Tclでゴルフをするための一般的なヒントは何ですか?私は、少なくともゴルフの問題をコード化するのに適用できる、Tclに少なくともある程度固有のアイデアを探しています(たとえば、「コメントを削除する」は答えではありません)。回答ごとに1つのヒントを投稿してください。
15 code-golf  tips 

8
チューリングマシンシミュレータ
チューリングマシンシミュレータを作成します。 簡単にするために、ステータスを整数、シンボルをchar、空白シンボルが空白に等しいと想定できます。 現在の状態、入力シンボル、次の状態、出力シンボル、方向(左または右)の形式の5タプル。順序は必須ではありませんが、スワップするかどうかを指定します 不明な状態になったときにマシンを停止する必要があり、他の停止条件は許可されません。 テープは両方向に無限にあり、いつでも空の文字を読むことができます。 入力:初期テープ、初期状態、およびプログラム。好きな形式でどこからでも自由にデータを読むことができます 出力:プログラムの実行後のテープ 必須:シミュレーター上で実行されるサンプルプログラム これはコードコルフなので、最短のコードが優先されます。 今後数時間以内に実装とサンプルプログラムを投稿します。

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