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

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

7
Pythonでメンバー関数をエイリアスするにはどうすればよいですか?
Pythonでは、繰り返し使用される関数をエイリアスすることでバイトを節約できます。例えば: r=range a=r(100) b=r(200) c=r(300) ただし、関数が一緒にメンバー関数である場合、チェーンを可能にする方法でそれらをエイリアスする方法がわかりません。例えば: s='Hello' // Plain code s=s.replace('H','J').replace('e','i').replace('l','m').replace('o','y') // What I am trying to do q=replace s=s.q('H','J').q('e','i').q('l','m').q('o','y') 明らかに、私がやろうとしていることは無効です。そして、これもどちらでもありません: q=s.replace s=q('H','J') // Replaces the 'H' in 'Hello' s=q('e','i') // Replaces the 'e' in 'Hello'... and the J is gone. s=q('l','m') s=q('o','y') メンバー関数とチェーン関数をエイリアスして文字を保存する別の方法はありますか?
23 code-golf  tips  python 

5
建物の影を描く
入力: 1 X X X X XX XXXXXX X X X X XX XXXXXX X X X XXX X XX XXXXXX X X X XXX X XX XXXXXX X X X 出力: X. X.. X... X.... XX. XXXXXX. X.X.X. X..... XX.. XXXXXX.. X.X.X.. XXX. X......XX... XXXXXX... X.X.X... XXX.. X......XX....XXXXXX.... X.X.X.... …

11
休憩してヘビを作りましょう!
私たちの古典的なヘビは、成長ホルモンの不均衡を開発しました。さらに悪いことに、彼の尾は固定されています!で指定された方向入力が与えられFigure 1た場合、彼が成長する場所を決定するプログラムを作成します。 図1.方向入力。 プログラム仕様 入力文字を文字ごとに読み取りますSTDIN。 文字を読んだ後、ヘビをに出力しSTDOUTます。ヘビを印刷するたびに、間に空白行を含めてください。 ヘビはで構成され<>v^、頭。蛇の頭のようなあなたが選んだ任意の丸い文字であってもよくo、0、O、または☺。 の任意の組み合わせがwasd入力に有効です。 プログラムは、入力が特定の長さ内にあると想定しないでください。 ヘビは自分自身の上に積み重なって上書きできます<>v^。ヘビの成長メカニズムの例を参照してください。 末尾の空白は問題ありませんが、ヘビは正しく見える必要があります。 得点 これはcode-golfです。スコアは、プログラムの文字数です。最低スコアが勝ちます! ヘビの例: 入力: ddddssaassdddddww 出力: >>>>v v v<< ☺ v ^ >>>>>^ 入力: dddsssaaawww 出力: ☺>>v ^ v ^ v ^<<< 入力: dddsssdddddasddddwww 出力: >>>v v ☺ v ^ >>>>v< ^ >>>>^ 入力: dddwwdddssssaaaaaaaaawww 出力: >>>v ☺ ^ …
23 code-golf 

5
正規表現ゴルフ:イタリアの地域と米国の地域
xkcdコミックに触発されたメタ正規表現ゴルフの問題は既にあります しかし、この正規表現ゴルフも楽しそうです!アメリカの州とイタリアの地域を区別したいと思います。どうして?私は両国の市民であり、常にこれに問題があります*。 イタリアの地域は Abruzzo, Valle d'Aosta, Puglia, Basilicata, Calabria, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Sardegna, Sicilia, Trentino-Alto Adige/Südtirol, Toscana, Umbria, Veneto そしてアメリカの州は Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, …

27
シェルピンスキーカーペット
誰が良いフラクタルを愛していないのですか?シェルピンスキーのカーペットは、フラクタルの典型的な例です。 このタスクを完了するには、タイプのカーペットを生成し、結果の画像をレベルカーペットを表す(stdoutフォーマットについては以下の例を参照)に印刷する必要があります。手順は、このウィキペディアの記事に記載されています。 この値は、stdinまたは同等の値から取得されます。 たとえば、4を入力すると、レベル4のカーペットが生成されます。 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ …

10
異常な値の抵抗器
前書き 電子回路プロジェクトを構築するとき、回路図では通常とは異なる値(510オームなど)の抵抗器が必要になる場合があります。部品箱を確認すると、510Ωの抵抗器がないことがわかります。ただし、この値の上下には多くの共通値があります。抵抗を並列および直列に組み合わせることにより、510Ωの抵抗をかなりうまく近似できるはずです。 仕事 抵抗値(ストックする抵抗)とターゲット値(概算を目指す)のリストを受け入れる関数またはプログラムを作成する必要があります。プログラムは以下を考慮する必要があります。 個別の抵抗器 直列の2つの抵抗 並列の2つの抵抗 プログラムは、ストックリストから1と2の抵抗器のすべての可能な組み合わせ(同じ抵抗値の2つのコピーを含む)を計算し、それらの直列抵抗と並列抵抗を計算し、ターゲット値にどれだけ近似するかに従って構成をソートする必要があります。 出力形式は、ラインごとに1つの構成で、+直列と|並列を表し、ネット抵抗の前にスペースまたは=記号を付ける必要があります。 フォーミュラ 1つの抵抗の抵抗は R1 直列の2つの抵抗の正味抵抗は R1 + R2 並列の2つの抵抗の正味抵抗は 1 / (1/R1 + 1/R2) 近似抵抗値と目標値の間の距離は、線形距離ではなく、擬似対数距離として計算できます dist = abs(Rapprox / Rtarget - 1)。たとえば、200は100よりも350に近いです。 より良い距離測定は真の対数距離 dist = abs(log(Rapprox/Rtarget))ですが、これは元の質問では指定されていないため、どちらの測定も自由に使用できます。 得点 スコアは、通常のゴルフ規則に従って、コードの文字で測定されます。最低スコアが勝ちます。 例 在庫には次の抵抗があり、オーム[100, 150, 220, 330, 470, 680, 1000, 1500, 2200, 3300, 4700]をターゲットにしたいと考えてい510ます。プログラムは、おおよそ次のように143の構成を出力する必要があります(形式は変更できますが、意味は簡単に判断できます)。 680 | …

5
Brainfuckでのゴルフのヒント
ブレインファックでゴルフをするための一般的なヒントは何ですか?私は、少なくとも一般的にゴルフの問題をコーディングするのに適用できるアイデアを探しています。これは、少なくともある程度、brainfuckに固有のものです(たとえば、「コメントを削除する」は答えではありません)。回答ごとに1つのヒントを投稿してください。

6
平面を分割する円
仕事 平面に円のセットが与えられ、中心が線y = 0になります。円のペアが複数の共通点を持たないことが保証されています。 あなたのタスクは、円が平面を分割する領域の数を決定することです。領域は、円のいずれとも交差しない包含最大連続点のセットです。 円の説明が与えられたときにこの答えを計算するプログラムを作成する必要があります。 以下に例を示します。 左側には、平面に描かれた円があります。ただし、写真の右半分では、円によって生成される領域は明確に色付けされています(領域ごとに1色)。この例には6つの領域があります。 入力 入力の最初の行には、数字N、、続く円の説明の数が含まれています。この行はオプションです。ソリューションが機能しない場合は問題ありません。 次のN行にはそれぞれ2つの整数x iおよびr i > 0が含まれ、中心(x i、0)および半径r iの円を表します。 円のペアが複数の共通点を持たないことが保証されています。さらに、x iとr iが10^9絶対値を超えないことが保証されます(したがって、32ビット整数に快適に適合します)。 入力は次のとおりです。 STDINから読み取る I現在のディレクトリにある名前のファイルから読み取る または、入力は次のようになります。 グローバル変数の文字列(改行を含む)として利用可能 スタック上 出力 これは、生成されるリージョンの数である単一の整数でなければなりません。これは、STDOUTまたはO現在のディレクトリで指定されたファイルに書き込まれる必要があります。 ルール バイト単位の最短コードが勝つ コードにランタイム+スペース複雑度多項式がない場合、+ 200バイトのペナルティ n 最悪の場合の予想ランタイム+スペースの複雑さに対する-100バイトのボーナス O(n log n) 最悪の場合の予想ランタイム+スペースの複雑さに対する-50バイトのボーナス O(n) 確定的なランタイム+スペースの複雑さに対する-100バイトのボーナス O(n) ランタイムの評価中: O(1)操作と入力データのシーケンスに関係なく、ハッシュテーブルに挿入、削除、およびルックアップのランタイムが必要であると想定します。これは、実装がランダム化を使用するかどうかに応じて、真である場合とそうでない場合があります。 プログラミング言語の組み込みソートには確定的なO(n log n)時間がかかると仮定します。ここnで、入力シーケンスのサイズです。 入力数の算術演算にはO(1)時間がかかると仮定します。 実用的な理由から、入力番号は定数でバインドされていると想定しないでください。つまり、基数ソートやカウントソートなどのアルゴリズムは線形時間ではありません。一般的に、非常に大きな一定の要因は避けるべきです。 例 入力: …

4
停止するOracleで3つの未解決の問題を解決する
次の関数が与えられます:h1(f、* args)およびh2(f、* args) どちらも既に定義されているメソッドです(ここで、アスタリスクは可変数の引数を示しています) fは関数、* argsはその関数に渡されるパラメーターのリスト h1はブール値を返します:* argsで呼び出されたときに関数fが停止する場合はtrue、そうでない場合はfalse無限の時間とメモリを処理する方法を知っています)。 f(* args)がh1またはh2を呼び出す場合、h1は例外をスローします h2はh1とまったく同じように動作しますが、fがh1を呼び出す場合、h2は例外をスローしません。 できるだけ少ない文字で、入力を受け取らずに出力するプログラムを作成します。 The Collatz Conjecture is {True/False} Goldbach's Conjecture is {True/False} The Twin Primes Conjecture is {True/False} これらの推測のそれぞれの妥当性に基づいています。 以下は、各推測を説明するウィキペディアのリンクです。 http://en.wikipedia.org/wiki/Collat​​z_conjecture http://en.wikipedia.org/wiki/Goldbach%27s_conjecture http://en.wikipedia.org/wiki/Twin_prime 使用する言語を選択した任意の大きな整数ライブラリは、任意の大きな整数を正常に表すと仮定できます。言い換えれば、表現できる言語/ライブラリは、十分に機能的なマシンで3**(3**10)も表現できると仮定します3**(3**(3**10))。 プログラムを実行することは不可能であるため、コードと一緒にどのように動作するかの説明を提供してください
23 code-golf  math 

6
レゴギア比
巨大なレゴロボットを構築していますが、ギアのセットを使用して特定のギア比を生成する必要があります。一般的なレゴギアサイズ(8、16、24、または40歯)のギアがたくさんあります。ギア比を入力する場所で使用できるプログラムを作成すると、プログラムは、要求された比を得るために使用するギアの組み合わせを教えてくれます。 入力比率は、コロンで区切られた2つの整数を使用して、標準入力(または言語の同等)で指定されます。比率とa:bは、出力軸がa/b入力軸と同じくらい速く回転することを意味します。 標準出力に出力の形態におけるギヤ比のスペースで区切られたリストを含む単一の行、でなければならないx:y場合x、入力軸上のギヤのサイズであり、y出力軸上の歯車の大きさです。指定された比率のギアの最小数を使用する必要があります。それぞれxとyのいずれかでなければなりません8,16,24,40。 例: 1:5 -> 8:40 10:1 -> 40:8 16:8 9:4 -> 24:16 24:16 7:1 -> IMPOSSIBLE 7:7 -> 6:15 -> 16:40 希望のギア比が不可能な場合は、「IMPOSSIBLE」を印刷します。ギアが必要ない場合は、空の文字列を印刷します。 これはコードゴルフで、最短回答が勝ちます。
23 code-golf  math 

5
Goのゲームを獲得する
Goゲームの得点は、それほど簡単ではないタスクです。過去には、発生する可能性のあるすべての奇妙なコーナーケースをカバーするルールを設計する方法について、いくつかの議論がありました。幸いなことに、このタスクでは、生死や関の検出などの複雑な作業を行う必要はありません。このタスクでは、KomiなしでTromp-Taylorルールに従ってゲームを採点するプログラムを実装する必要があります。 スコアリング手順は非常に簡単です。 Pから色Cの点まで(垂直または水平に)隣接する点のパスがある場合、Cの色ではない点PはCに到達すると言われます。 プレイヤーのスコアは、彼女の色の点の数です、プラス彼女の色だけに達する空のポイントの数。 たとえば、次のボードを検討してください。X、Oおよび-黒、白、および無着色の交差点を示します。 - - - X - O - - - - - - X - O - - - - - - X - O - - - - - - X O - - O - X X X O - O O - - …

7
中置式を後置記法に変換する
この非公開の質問のタイトルを見たとき、私はそれが面白いコードゴルフチャレンジのように見えると思いました。そのため、次のように紹介します。 チャレンジ: 算術式を考慮すると、プログラム、発現またはサブルーチン書き込みインフィックス表記法、等1 + 2、に同一の発現出力ポストフィックス表記、すなわち1 2 +。 (注:1月前半に同様の課題が投稿されました。 ただし、この個別の課題を正当化するために2つのタスクの詳細が十分に異なっていると感じます。また、下のすべてを入力した後、他のスレッドにのみ気づいたので、むしろただ捨てるだけではありません。) 入力: 入力は、以下からなる有効中置演算式から成る番号(非負整数は一つ以上の桁のシーケンスとして表される)、バランスのとれた括弧グループ化された部分式を示すために、4つの中置バイナリ演算子 +、-、*および/。これらはどれも、無視する必要のある任意の数のスペース文字で区切ることができます(そして式全体を囲むことができます)。1 正式な文法が好きな人のために、有効な入力を定義する簡単なBNFのような文法を以下に示します。簡潔にするため、文法にはオプションのスペースは含まれていません。スペースは、2つのトークン(数字の中の数字以外)の間にある場合があります。 expression := number | subexpression | expression operator expression subexpression := "(" expression ")" operator := "+" | "-" | "*" | "/" number := digit | digit number digit := "0" | "1" | "2" | …
23 code-golf  math 

30
電話番号の文字
問題: たとえば1-800-program、のような特殊な電話番号を入力できる新しい電話を作成すると、1-800-7764726(前の例のように)使用可能な電話番号に自動的に変換されます。 プログラムは、数字、文字、ダッシュを含む長さがある場合は文字列を受け取り、すべての文字を対応する数字に変換します。 参照用のキーパッドは次のとおりです。 ルール: プログラムは文字列を受け取ります それを処理し、別の文字列を返し/印刷します すべての言語が受け入れられます それがあるので、コード・ゴルフ、最短コードの勝利
23 code-golf  number 

8
ピエトモンドリアン作曲の再現
こんにちは、 あなたの目標は、最小限のソースコードバイトで、Piet Mondrianの「Composition」ペインティング(たとえば、コンポジション#10)を再作成することです。 レクリエーションでは、実際の色を使用するか、Windowsのデフォルト16カラーパレットから適切な色に置き換えることができます。 レクリエーションは、PNG、BMP、またはNetPBMで、ファイルまたはSTDOUTに出力するか、直接画面に出力できます。 レクリエーションは、512x512以上の解像度である必要があります。 あなたのレクリエーションはインターネットにアクセスしてはいけません。プログラムでデータファイルが必要な場合、そのサイズがソースのサイズに追加されます。 スコアは、ソースファイルのサイズ(バイト単位)になります。 どの絵を再現しているのかをエントリーに明記し、オリジナルへのリンクとレクリエーションの写真を提供してください。 がんばろう。

21
繰り返し小数を小数に変換します
この質問は、小数の終端だけに適用する必要はありません-小数の繰り返しは、アルゴリズムを介して分数に変換することもできます。 あなたの仕事は、入力として繰り返される小数をとるプログラムを作成し、その小数展開を生成する対応する分子と分母(最低条件で)を出力することです。1より大きい分数は、などの不適切な分数として表す必要があります9/5。入力が正であると仮定できます。 繰り返される小数はこの形式で与えられます: 5.3.87 次のように、2番目のドットの後のすべてが繰り返されます。 5.3878787878787... プログラムは、分子(分母)を表す2つの整数をスラッシュ(またはプレーンテキストを出力しない場合は言語の同等の形式)で区切って出力します。 889/165 小数点の終了には、2番目のドットの後には何もありません。また、繰り返しのない小数部分のない小数点には、2つのドットの間に何もありません。 テストケース これらのテストケースは、必要なすべてのコーナーケースをカバーしています。 0..3 = 1/3 0.0.3 = 1/30 0.00.3 = 1/300 0.6875. = 11/16 1.8. = 9/5 2.. = 2/1 5..09 = 56/11 0.1.6 = 1/6 2..142857 = 15/7 0.01041.6 = 1/96 0.2.283950617 = 37/162 0.000000.1 = 1/9000000 0..9 = 1/1 …

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