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

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

3
通常のポリグラム
頂点の数n ≥ 3と「ステップサイズ」1 ≤ m < n/2 (2つの接続された頂点間の距離を示す)を指定して、対応する通常のポリグラムのグラフィカル表現を出力します。ポリグラムが複数の閉じたループで構成されている場合、各ループは異なる線色でレンダリングする必要があります。(これが分かりにくいように思える場合は、以下の例で問題を解決してください。) ルール 問題の合理的な解決策は、これらのルールを自動的に満たす可能性があります-「この黒いブロックは完全にポリグラムですが、あなたはそれを見ることができないので線幅を9000以上に設定しました。」 ポリグラムをファイル(ディスクまたは標準出力ストリームに書き込まれる場合があります)にレンダリングするか、画面に表示できます。 ベクターグラフィックまたはラスターグラフィックを使用できます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があり、ポリグラムの半径(中心から各頂点までの距離)は辺の長さの35%〜50%でなければなりません。 ポリグラムの縦横比は1でなければなりません(そのため、頂点は適切な円上にあります)-画像のキャンバスは長方形になります。 ポリグラムの線は、半径の5%より太くてはなりません(そしてもちろん、見えるようにゼロ以外の太さでなければなりません)。 ポリグラムに加えて軸またはフレームをレンダリングできますが、それ以外は何もレンダリングできません。 任意の(単色の)背景色を選択できます。 複数の閉ループで構成されるポリグラムの場合、少なくとも6つの視覚的に異なる色をサポートする必要があります。これらはすべて背景とは異なる必要があります。(グレースケールは、シェードがスペクトル全体に十分に広がっている場合は問題ありません。)コードは6つ以上のループで機能する必要がありますが、追加のループで色を区別する必要はありません(つまり、再利用することもできます)その時点での以前のループの色)。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 例 以下は、n = 16(列がに対応しn、行がに対応する)までのすべての出力mです。 クリックして拡大版をご覧ください。 largeの例として、以下nが(n, m) = (29, 11)あり(30, 12)ます:

2
論理システムの修正
論理ステートメントのセットが提供されます。あなたの課題は、他のものと矛盾するものを削除することですが、最適な方法で(つまり、最小限のステートメントを削除することです)。 チャレンジ ステートメントのリストを入力として受け取り、ソリューションがあるように最小限のステートメントを削除して残りを出力するプログラムまたは関数を作成します。 論理 ステートメントは、変数 A-Zとそれらの間の演算子で構成されます。 5つの演算子があります:-(not)、v(or)、^(and)、->(if)、および<->(iff)。 真理値表: A | B | -A | AvB | A^B | A->B | A<->B 0 | 0 | 1 | 0 | 0 | 1 | 1 0 | 1 | 1 | 1 | 0 | 1 | 0 1 | 0 …
16 code-golf 

3
ダイナミックASCIIエンコーダー!
前書き 一部のASCII文字は最近非常に高価です... お金を節約するために、高価な文字を安価な文字を使用してエンコードするプログラムを作成することにしました。 ただし、キャラクターの価格は頻繁に変更されるため、別のキャラクターをエンコードまたはデコードする必要があるたびにプログラムを変更する必要はありません。より動的なソリューションが必要になります。 チャレンジ あなたの仕事は、エンコーダーとデコーダーの 2つのプログラムを書くことです。 エンコーダは、 5つの安価な文字のリスト、および単一の高価な文字を受け入れる必要があります。 安価な文字で構成される単一の文字列を出力し、高価な文字をエンコードする必要があります。 この文字列 は、安価に保つために4文字より長くすることはできません。ただし、エンコードで安価な文字をすべて使用する必要はなく、エンコードの長さは異なる場合があります。 デコーダは、エンコーダによって出力された文字列、および出力高価な文字を受け入れなければなりません。 デコーダは、エンコードされた文字列以外の入力を受け付けません。入力の任意の(有効な)組み合わせに対して、エンコーダの出力から変更せずに動作する必要があります。言い換えれば、デコーダプログラム は、どの文字が高価であるか、または安価であるかを知りません。 得点 最短の組み合わせコードが勝ちます! ノート すべての文字は、大文字[A-Z]、小文字[a-z]、または数字のいずれかになります[0-9]。 安価な文字のリストには重複が含まれません。安価で高価なキャラクターはありません。 エンコーダーとデコーダーを同じ言語で記述する必要はありませんが、可能です。プログラムまたは関数を作成できます。 入力および出力は、言語に適した任意の形式である場合があります。 2つのプログラムは、変数またはデータを共有できません。 概要 いくつかの安価な文字と高価な文字の入力がエンコーダに与えられます。 エンコーダーは、安価な文字列を出力し、高価な文字をエンコードします。 デコーダーにはエンコーダーの出力が与えられ、高価な文字が出力されます。 例 入力: a, b, c, d, e f エンコーダーの可能性: a eeee caec デコーダ: f 入力: a, b, c, d, e h エンコーダーの可能性: bc …
16 code-golf 

3
ループとループとループ
チャレンジ ASCIIアートの入力(最終的にループする可能性のあるパスを指示する)が与えられると、ループの長さ(ある場合)およびループのいずれかにある「テール」の長さを出力する関数を作成します。以下のフォーム。 入力 入力を関数に渡す必要があります。以下は、単純な入力の例です。 # --> # --> # ^ | | | | v # <-- # 上記のブロックは次のように視覚化できます 「尾」は1つのアイテムで、ループは4つの長さです。 より難しいもの: # --> # --> # ^ | | | | v # --> # <-- # # --> # ^ ^ | | | | | | v # …

2
鶏はどのように道路を横断しましたか?
ガチャガチャ。鶏が道路を横断した理由は誰にもわかりません。反対側には見栄えの良い雄鶏がいたかもしれません。しかし、私たちはその方法を理解できます。この(または任意の)「道路」を横切る左から右へのプログラムを作成します。 1356 | 1738 3822 | 1424 3527 3718 9809 | 5926 0261 | 1947 7188 4717 6624 | 9836 4055 | 9164 2636 4927 5926 | 1964 3144 | 8254 プログラムは「交差」し、左から右に移動します。あなたが好きな一番左の列の任意の番号から始めます。そこから、右側の隣接するキャラクターに移動できます。左上隅の1で開始した場合は、3または8に移動できます。開始番号を含む、移動したすべての番号が合計に加算されます。スペースは合計に追加されません。「|」右側に移動するのではなく、強制的に上下に移動します。(このキャラクターで前進することはできません)あなたの目標は、可能な限り最小の金額で反対側に到達することです。プログラムは最後に合計を印刷する必要があり、すべての道を解決できなければなりません。道路への入力も可能ですが、必須ではありません。プログラムは、パスと合計の両方を印刷する必要があります。最少バイトのコードが勝ちます。 明確にするために、垂直バー上にいる場合を除き、診断的に移動できます。垂直バーにいるときのみ上下に移動できます。 道路をより明確に指定するために、基本的には文字列(または列や行の配列)を文字のルールに従いますが、文字は何もありません道路。任意の数字、スペース、バー( "|")、または改行を使用できます。ProgrammerDanの答えのように、道路が酔っ払った男によって舗装された場合、それはまだ有効な道路であり、プログラムはそのような道路を解決できる必要があります。反対側に到達することが不可能な場合、道路とはみなされません(たとえば、バーの直線から抜け出す方法がありません)。 プログラムは、道路が無効かどうかを判断する必要はありません。 キー: 任意の数字-合計に数字を追加し、前進します。 スペース-前進します。合計には何も追加されません。 「|」-上下に移動しても、合計には何も追加されません。 編集:提案されたソリューションの例。私は恐ろしく大きなものを作ることはできません。ATMのためにそれを解決するIDEに乗ることはできません。 この小さな道を進みます。 9191 | 8282 1919 | 2727 5555 5555 …

17
自己切断プログラム
簡単に言えば、あなたの目標は、ソースのすべての文字が元の文字と異なるまで、独自のソースコードを変更する完全なプログラムを作成することです。 投稿に開始ソースと終了ソース、および説明を含めてください。例えば、あなたのプログラムが何を(他に)、あなたが使用した言語、あなたの戦略などを記述してください。 ルール 変更が完了した後、プログラムを停止する必要があります。 新しいプログラムを印刷したり、新しいファイルを書き込んだりするのではなく、現在実行中のソースコード(インタープリターに渡したファイルである必要はなく、命令を変更する必要はありません)を実際に変更する必要があります。 標準の抜け穴は許可されていません。 最短のプログラムが勝ちます。 言語が独自のファイルを変更して新しいコンパイラプロセスを実行できるが、独自の(現在実行中の)ソースコードを変更できない場合は、代わりに+ 20%バイトのペナルティで切り上げてそのようなプログラムを記述できます。実際の自己修正言語には利点があります。 編集:プログラムがエラーで停止した場合は、そのように指定してください(そして、エラーの内容を伝えてください)。

11
バナッハ・タルスキのパラドックス
Banach–Tarskiパラドックスは、3次元空間でボールが与えられると、ボールを有限数のポイントサブセットに分解できると述べています。これらのばらばらのポイントのセットは、最初のボールの2つのコピーを作成するために再構築できます。理論的には、2つの同一のボールがあります。 再アセンブリのプロセスは、前述のポイントサブセットを移動して回転させるだけで、空間形状は変更されません。これは、わずか5つの互いに素なサブセットで実行できます。 互いに素な集合には、定義上、共通の要素はありません。ここで、A及びBイニシャルボールの任意の2点のサブセットとの間の共通要素であるAとB空集合です。これは次の式で示されます。 以下の非結合セットの場合、共通メンバーは空のセットを形成します。 チャレンジ 入力ASCII「ボール」を取り、複製「ボール」を出力できるプログラムを作成します。 入力 入力ボールの例を次に示します。 ########## ###@%$*.&.%%!### ##!$,%&?,?*?.*@!## ##&**!,$%$@@?@*@&&## #@&$?@!%$*%,.?@?.@&@,# #,..,.$&*?!$$@%%,**&&# ##.!?@*.%?!*&$!%&?## ##!&?$?&.!,?!&!%## ###,@$*&@*,%*### ########## 各球体はポンド記号(#)で囲まれており、次の文字で満たされています.,?*&$@!%。すべての入力は22x10文字(幅と高さ)です。 複製を作成する まず、ボール内の各ポイントには、のインデックスに基づいて番号付きのポイントが与えられ.,?*&$@!%ます。番号が付けられた上記の例を次に示します。 ########## ###7964151998### ##86295323431478## ##5448269677374755## #75637896492137317572# #21121654386679924455# ##1837419384568953## ##85363518238589## ###2764574294### ########## 次に、各ポイントが1つ上にシフトされます(9つが1つに移動します)。 ########## ###8175262119### ##97316434542589## ##6559371788485866## #86748917513248428683# #32232765497781135566# ##2948521495679164## ##96474629349691## ###3875685315### ########## 最後に、新しいポイント値はそれぞれ対応する文字に変換されます。 ########## ###!.@&,$,..%### ##%@?.$*?*&*,&!%## ##$&&%?@.@!!*!&!$$## #!$@*!%.@&.?,*!*,!$!?# #?,,?,@$&*%@@!..?&&$$# ##,%*!&,.*%&$@%.$*## …

2
ポケットには何が入っていますか?
概要:で囲まれた文字を検索しMYPOCKETます。 入力例 MYPHEIF YFOCKVH MBNDEIF TEUFTMY ESNDUWP KBOVUVO CENWFKC OPYMTEB 出力例 F BND EUF SNDUW BOVUV ENWF え?どのようにして出力として取得しましたか?「ポケット」は見にくい場合があります。これにより、明確になります。 MYP HEIF Y F OCK VH M BND E IF T EUF TMY E SNDUW P K BOVUV O C ENWF KC OPYMTE B 太字の文字は、MYPOCKET繰り返し繰り返される文字列で構成される、互いに直交する文字の輪を示します。プログラムは、そのリング内にある文字を出力する必要があります。 ノート: 「ポケット」は1つだけです。 行の後の新しい行またはスペースは許可されます。 グリッドの残りの部分にもからの文字が含まれている場合がありますMYPOCKETが、リングの形状があいまいになるような方法ではありません。 M右上の隅に常にではありません。 「ポケット」は時計回りまたは反時計回りに移動できます。 「ポケット」は斜め方向に移動しません。つまり、各文字は左、右、上、または下につながっています。 …
16 code-golf 

1
私たちは奇妙なパズル、私たち英国人が大好きです
イギリスの数紙の新聞にはHidatoとして知られているゲームがあります。数独にやや似ていますが、ラインとブロックに1-9を置く代わりに、番号を配置01して、一番上まで順番に接続するので、すべて水平、斜め、または垂直に触れます。 入力には\n、スペースで区切られたブロックを含む、で区切られた複数の行が含まれます。これは、2文字の幅と想定できます。各ブロックは、数字、塗りつぶされる空白スペース(で示される--)、または数字を入れることができない壁(XX)になります。 出力は、番号が提供された空のブロックであるにもかかわらず、提供されたものと一致する必要があります。ユニークな、または溶液の存在すら存在しないかもしれないことに注意してくださいいくつかは非常に数独のように、その曖昧さに起因する複数得て、そしていくつかは、文字通り解けないかもしれ、あなたが与える必要があり、その場合には- falseyの出力を、あなた入力は以下のようにフォーマットされていると想定できます。 標準ヘッダーを使用しますLanguage: XX bytes。ハッピーゴルフ! 例 入力01 XX 03、01 -- 04、01 --、などは、すべての戻り何かべきfalsey。 入力: 01 -- -- -- XX 05 出力: 01 03 04 02 XX 05 入力: -- 33 35 -- -- XX XX XX -- -- 24 22 -- XX XX XX -- -- -- 21 -- …

3
ピラミッドを構築
キューブからピラミッドを構築する必要があります。キューブは2つの角度から表示できます。 _____ _____ /\ \ / /\ / \____\ /____/ \ \ / / \ \ / \/____/ \____\/ これは、2つの可能な角度からの2サイズのキューブの例です。キューブの高さは$sizeスラッシュ(またはバックスラッシュ)で、キューブの幅は2 * $sizeアンダースコアです。最上位の幅には、追加のアンダースコア文字を含める必要があります。 入力は、数字(キューブのサイズ)、スラッシュまたはバックスラッシュ(方向/角度を示す)、および別の数字(ピラミッドの高さ)を含む文字列として提供されます。 例: 入力: 1/1 出力: ___ /\__\ \/__/ 入力: 1\1 出力: ___ /__/\ \__\/ 入力: 2/1 出力: _____ /\ \ / \____\ \ / / \/____/ 入力: 1/2 …

4
アスキーアートアーチェリーの矢
正の整数を取り込んで、入力に応じてスケーリングされたアーチェリーの矢の ASCIIアート描写を印刷または返すプログラムまたは関数を作成します。 入力が1出力の場合 /\ / \ \__/ || || || || || || || || /||\ / || \ / || \ // \\ / \ 入力が2出力の場合 /\ / \ / \ / \ \ / \____/ | | | | | | | | | | | | | …

1
D * mn明白な打ち切りを書く
検閲は、インターウェブで使用される一般的なツールです。しかし、彼らはしばしば言葉を検閲しすぎており、したがって、呪いは読者にとって曖昧になっています。そして、時々彼らは十分に検閲しないので、言葉はまだ不快なままです。あなたの仕事はそれを修正することです。 あなたのタスク 2つのリストと1つの文字列を受け取るプログラム/関数/なんでも書きます。最初のリストは、次のようなあなたの言語のすべての単語の辞書になります["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]。次は、言語のすべての不快な単語を含む最初のリストのサブセットです["belgium", "offensive"]。これらのリストの単語には、アルファベットの小文字のみが含まれることが保証されています。 文字列は、検閲する必要があるフレーズです。それは、スペースで区切られた辞書の単語で構成されます:"Goodbye offensive belgium" 戻り値は、そのフレーズが打ち切られます。ただし、特定の方法で検閲する必要があります。具体的には、不快なリストの各単語について、メイン辞書で完全に明確なままで、できるだけ多くの文字を検閲する必要があります。したがって、ここでは次のようになりますGoodbye o******** b******。 明確化 コードは大文字と小文字を区別せずに単語を解釈する必要がありますが、最初の大文字で返します。 最適な回答が複数ある場合は、いずれかを選択してください。 明確な検閲が不可能な場合は、他の可能な解釈の数が最も少ない単一の文字を検閲します(複数の可能性がある場合は、再度選択します)。 テストケース ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******" ["word"] ["word"] "word" -> "****" ["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" …

3
Python Importを使用したゴルフ
Pythonでインラインのシングルユースインポートを使用するのが有益な場合 例えば: __import__("x").doSomething() 上記は下よりも短くなっていますか? import x x.doSomething() または from x import* doSomething()
16 code-golf  tips  python 

2
XKCD:キーボードマッシュ異常
別のXKCDに触発された競争。これはKeyboard Mashに基づいています。 入力文字列が与えられたら、標準のUS QWERTYキーボードの 1行に大部分が入力されたと仮定して、異常な文字を特定します。入力文字列にはシフトされたキーストロークを含めることができますが、キャリッジリターン(Enter)、CTRL / ALTの影響を受ける文字、スペース、タブ、およびバックスペースは含まれません(これはばかげているためです)。このチャレンジでは、テンキーはキーボードの一部とは見なされません。 課題は、単一の文字列の個々の文字の大半と同じキーボード行にない文字を出力することです。出力には、各異常文字が1回だけ含まれ、他の文字は含まれません。 2つ以上の行で異常な文字の数が等しい場合、タイブレークは次の順序で決定されます。 最短の一意のリスト 一番上の行 入力 STDIN、ARGV、または関数パラメーターのいずれかを介した文字列 出力 STDOUTへの文字列または関数が戻ります。それぞれの異常なキャラクターは一度だけ持つべきですが、注文する必要はありません。 例 入力: FJAFJKLDSKF7KFDJ 出力: 7 入力: ASDF11111の 出力: ASDF 入力: lkjrhsDdftkjhrksRjd 出力: rtR 入力: } * 3%&2098 @ $ 2k234#@ $ M 出力: } 返された一番上の行リスト 入力: ASD!@#Vcx 出力:!@# 返される最短の一意のリスト 入力: ASdf1233qwER 出力: 123 返される最上部の最短リスト 入力: …
16 code-golf 

5
Code Golf:Googleの結果の解析
Googleで何かを検索すると、結果ページ内で、ユーザーは結果の最初のページの緑色のリンクを見ることができます。 可能な限り短い形式で、バイト単位で、任意の言語を使用して、stdoutへのリンクをリストの形式で表示します。スタック交換クエリの最初の結果の例を次に示します。 入力: 選択:URL(www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8)または単にstackexchange 出力: french.stackexchange.com/, stackoverflow.com/, fr.wikipedia.org/wiki/Stack_Exchange_Network, en.wikipedia.org/wiki/Stack_Exchange,... ルール: 結果がhttps://www.google.comの検索と同じである限り、URL短縮サービスまたは他の検索ツール/ APIを使用できます。 プログラムにWebブラウザーを開くなどの副作用があり、暗号化されたGoogle html / jsページがレンダリング時に読み取られる場合は問題ありません。 ブラウザのプラグイン、ユーザースクリプトを使用できます... stdoutを使用できない場合は、たとえばを使用して画面に印刷します。ポップアップまたはjavascriptアラート! 終了/または開始http(s)://は不要です 他のリンクは表示しないでください 最短コードが勝ちます! 幸運を ! 編集:このゴルフは07/08/15を終了します。

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