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

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

30
文字列に数字を掛けます!
少し前に、文字列の乗算に関する課題がありました。数値だけでなく文字列も乗算できる方法を示しました。ただし、数字に文字列を適切に掛けることはできません。そうする試みが1つありましたが、これは明らかに間違っています。修正する必要があります! あなたのタスク: 文字列と整数の2つの入力を乗算する関数またはプログラムを作成します。文字列に整数を(適切に)乗算するには、文字列を文字に分割し、各文字を整数に等しい回数繰り返してから、文字を元に戻します。整数が負の場合、最初のステップでその絶対値を使用し、文字列を逆にします。入力が0の場合、何も出力しません(0を掛けたものは何も等しくありません)。 入力: 印刷可能なASCII文字と改行のみで構成される文字列、および整数(負の可能性あり)。 出力: 文字列に整数を掛けたもの。 例: Hello World!, 3 --> HHHeeellllllooo WWWooorrrlllddd!!! foo, 12 --> ffffffffffffoooooooooooooooooooooooo String, -3 --> gggnnniiirrrtttSSS This is a fun challenge, 0 --> Hello World!, 2 --> HHeelllloo WWoorrlldd!! 得点: これはcode-golfであり、最低バイト数が勝ちです!

6
ラムダでの割り当てのためのPythonの回避策
これはPythonでのゴルフのヒントの質問です。 Pythonゴルフでは、提出がラムダとして定義された関数であることが一般的です。例えば、 f=lambda x:0**x or x*f(x-1) x の階乗を計算します。 ラムダ形式には2つの大きな利点があります。 f=lambda x:...またはのボイラープレートはlambda x:...、def f(x):...return...またはx=input()...print... 再帰呼び出しを使用すると、ほとんどバイトのオーバーヘッドなしでループできます。 ただし、ラムダには、単一の式のみを許可し、ステートメントを許可しないという大きな欠点があります。特に、これはのような割り当てがないことを意味しc=chr(x+65)ます。値を2回(またはそれ以上)参照する必要がある長い式がある場合、これは問題になります。 のような割り当てE=enumerateは、関数の外部またはオプションの引数として可能ですが、関数の入力に依存しない場合のみです。定義時に評価されるときにf=lambda n,k=min(n,0):...入力nが定義されていないため、fail などのオプションの引数k。 その結果、代替が長い非ラムダであるために、ラムダで長い式を繰り返して吸い込むことがあります。 lambda s:s.strip()+s.strip()[::-1] def f(s):t=s.strip();print t+t[::-1] 損益分岐点は約11文字(詳細)で、これを超えるとdefまたはに切り替わりますprogram。これを繰り返し式の長さ5の通常の損益分岐点と比較します。 range(a)+range(b) r=range;r(a)+r(b) print s[1:],s[1:]*2 r=s[1:];print r,r*2 他の言語には、Octaveなどの回避策があります。Pythonには既知のトリックがありますが、それらは長く、不格好で、使用が制限されています。ラムダでの割り当てをシミュレートするための短く汎用的な方法は、Pythonゴルフに革命をもたらします。 Pythonゴルファーがこの制限を克服または回避する方法は何ですか?ラムダで長い表現が2回繰り返されるのを見るとき、彼らはどんな潜在的なアイデアを念頭に置くべきですか このヒントの質問の私の目標は、この問題を深く掘り下げることです。 ゴルフの回避策をカタログ化して分析し、ラムダ内の偽の割り当て より良い方法のための新しいリードを探る 各回答では、回避策または潜在的なリードを説明する必要があります。
34 code-golf  tips  python 

8
ASCIIアートテキストを読む
Golf meからインスパイアされたASCIIアルファベットで、このチャレンジは(ほぼ)直接の逆です。 仕事: ASCIIアートテキストの文字列を取得し、テキストの内容を通常のASCIIテキストとして出力します。 入力: ASCIIアートテキストの文字列。 入力には、ASCII文字#、スペース、および4つまたは5つの改行のインスタンスのみが含まれます(末尾の改行はオプションです)。すべての行の長さは同じです。(つまり、最後のASCIIアート文字の末尾にスペースが埋め込まれます。)#必要に応じて、入力ではなく他の印刷可能なASCII文字を使用できます。 入力には、ASCIIアート文字A-ZとASCIIアートスペース(空白の5x5ブロック)が含まれます。句読点はありません。ASCIIアートテキストは1行のみです(実際の5行)。末尾または先頭のASCIIアートスペースはなく、隣接するASCIIアートスペースもありません。 文字サイズは5x5文字です。各文字の間には1x5のスペースがあります。単語間のスペースは、5x5の空白ブロックです(もう1つの文字であるため、両側に1x5のスペースがあります)。ASCIIアート文字の間にのみ、末尾または先頭に1x5のスペースはありません。 出力: ASCII文字A-Z+スペースとしてテキストを含む文字列。あなたのソリューションにとって何らかの形で簡単であれば、出力も小文字にすることができます。大文字と小文字を混在させることもできます。 ASCIIアート文字: ### #### ### #### ##### ##### ### # # ##### ##### # # # # # # # # # # # # # # # # # # # # # # # ## ## ##### #### …

10
前任者が完成したアスキーキューブ
前任者が完成した最初のアスキーキューブ(PAC 1)は、辺の長さが1の単純なキューブで、次のようになります。 /////\ ///// \ \\\\\ / \\\\\/ PAC 2は、その前身(とそれを組み合わせるような幾何学的形状である PAC 1する)側の長さ2の立方体を完了します: front back /////////\ /////////\ ///////// \ ///////// \ /////\\\\\ \ ///////// \ ///// \\\\\ \ ///////// \ \\\\\ ///// / \\\\\\\\\ / \\\\\///// / \\\\\\\\\ / \\\\\\\\\ / \\\\\\\\\ / \\\\\\\\\/ \\\\\\\\\/ ので、バック -viewは一種退屈であり、我々は唯一に興味のあるフロント -view。 同じことがPAC 3にも当てはまります。いくつかの視覚的思考により、PAC 2を向きを変えてPAC …

30
文字列をチャンクで逆順にする
あなたの仕事は、数字と文字列を与えられた文字列をそのサイズのチャンクに分割し、それらを逆にするプログラムを書くことです。 ルール プログラムは、正の整数とn、s印刷可能なASCIIのみ(空白を含まない)で構成される長さ少なくとも1つの文字列を受け取ります。文字列nの長さがn残りの部分で割り切れない場合、文字列はlengthのチャンクに分割される必要があります。次に、チャンクの順序を逆にして、再びまとめます。 テストケース n s Output 2 abcdefgh ghefcdab 3 foobarbaz bazbarfoo 3 abcdefgh ghdefabc 2 a a 1 abcdefgh hgfedcba 2 aaaaaa aaaaaa 2 baaaab abaaba 50 abcdefgh abcdefgh 6 abcdefghi ghiabcdef これはcode-golfなので、できるだけ少ないバイトを目指してください。
34 code-golf  string 

6
パドバンスパイラルを生成する
前書き フィボナッチ数列と同様に、パドバン数列(OEIS A000931)は、数列の前の項を追加することによって生成される数の数列です。初期値は次のように定義されます。 P(0) = P(1) = P(2) = 1 0番目、1番目、および2番目の用語はすべて1です。繰り返しの関係は次のとおりです。 P(n) = P(n - 2) + P(n - 3) したがって、次のシーケンスが生成されます。 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200, 265, 351, ... これらの数値を正三角形の辺の長さとして使用すると、フィボナッチスパイラルのように、それらをすべて一緒に配置すると素敵なスパイラルが得られます。 ウィキペディアの厚意による画像 仕事 あなたの仕事は、グラフィカルな出力と、どの用語に対応する入力によってこのスパイラルを再作成するプログラムを書くことです。 ルール …

14
n項の数を生成
2次数は、その素因数(多重度なし)がすべて平方根以下である正の整数です。4唯一の素因数は2であり、その平方根に等しいため、は二次数です。ただし、15は5平方根(~ 3.9)よりも大きい素因数であるため、二次数ではありません。すべての素数はそれ自体が素因数であるため、素数は二次数ではありません。最初のいくつかのセカンダリ番号は次のとおりです。 1, 4, 8, 9, 12, 16, 18, 24, 25, 27, 30, 32, 36, 40, 45, 48, 49, 50, 54, 56 三次数も同様に定義されますが、すべての素因数がその立方根以下でなければなりません。最初のいくつかの3次番号は次のとおりです。 1, 8, 16, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 125, 128, 135, 144, 150, 160, 162 一般に、n進数は、その素因数がすべてそのn番目のルート以下であるものです。したがって、正の整数ある進数IFFその素因数のそれぞれ満たす。したがって、一次数はすべて正の整数(すべての素因数はそれ以下)であり、四次数はすべての素因数が4番目のルート以下である、などです。バツバツxPのP N ≤ Xnppppn≤ Xpn≤バツp^n ≤ x …


12
レモンライム文字列
空でない単一行の文字列を取り込むプログラムまたは関数を作成します。スペースを除いて印刷可能なASCIIのみが含まれていると想定できます。 文字列のプレフィックスから作られたレモンやライムに似たASCIIアート菱形の形状を印刷または返します。 入力文字列の長さがn文字であるとします。そして、このような形状で構成されて2N - 1つの縫い合わさASCIIアートの列、各なる2N - 1行。1から数えて、k番目の列はf(k)= min(k、2n-k)文字幅で、入力の最初のf(k)文字のf(k)コピーを含み、縦方向に中央揃えで、単一の空白を持ちます。コピーを分離する行。 たとえば、入力がのLemon場合、出力は次のようになります。 Lemon Lemo Lemo Lem Lemon Lem Le Lemo Lemo Le L Lem Lemon Lem L Le Lemo Lemo Le Lem Lemon Lem Lemo Lemo Lemon 入力がlime出力の場合: lime lim lim li lime li l lim lim l li lime li lim lim …

19
空のGoボードに石を置きます
関連項目:Goボードで移動する。 仕事 Goは、2人のプレイヤー(黒と白)が19×19のボード上のグリッド線の交点に石を置くボードゲームです。黒が最初に移動します—たとえば、D4で: この課題では、D4入力としてGoボード座標を取得し、指定されたポイントで最初の動きが再生されたボードのASCII表現を出力する必要があります。 列Iがないことに注意してください。これは、歴史的に、JとLとの混乱を減らすためです。 この出力は19行で構成され、各行には19文字が含まれています。石のあるポイントがマークされていOます。ボード上の空のポイントは次のように示されている.9つのを除き、スターポイント(でD4、D10、D16、K4、K10、K16、Q4、Q10、とQ16マークされています)、 *。 たとえばF5、入力として指定された場合、回答の出力は次のようになります。 ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... .....O............. ...*.....*.....*... ................... ................... ................... そしてQ16、入力として与えられる、あなたの出力は以下でなければなりません: ................... ................... ................... ...*.....*.....O... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... ルール 引数として座標を取得する関数、またはコマンドラインまたはから座標を読み取るプログラムを作成できますSTDIN。 小文字または大文字で入力を受け入れることもできますが、答えは両方を処理する必要はありません。 …

14
ASCIIムーンをASCIIバットで飛び回らせる
バックグラウンド これはハロウィーン関連の挑戦です。 私の最後の挑戦からお気づきかもしれませんが、私はアスキーアートアニメーションと呼ぶものがとても好きです。それは単にパターンを描くだけでなく、進行するパターンを描くことです。このアイデアは、数年前にハロウィーンのランダムなアスキーバットを画面上で飛ばすことで(かなり退屈な)プレゼンテーションを盛り上げるように頼まれた後に思いつきました。言うまでもなく、私は当然のことながら義務を負っていました(私はそれを支払われていました)が、ランダムなコウモリよりも生命に多くがあると考えさせられました。これに触発されて、私はこの挑戦を提案したいと思います。 チャレンジ 月の周りにコウモリを飛ばします。 コウモリは次のとおりです。 ^o^ ここに月があります: mmm mmmmmmm mmmmmmmmm mmmmmmm mmm コウモリの飛行のすべての段階を表示する必要があります(出力を参照)。 入力 なし 出力 ^o^ mmm mmmmmmm mmmmmmmmm mmmmmmm mmm mmm^o^ mmmmmmm mmmmmmmmm mmmmmmm mmm mmm mmmmmmm^o^ mmmmmmmmm mmmmmmm mmm mmm mmmmmmm mmmmmmmmm^o^ mmmmmmm mmm mmm mmmmmmm mmmmmmmmm mmmmmmm^o^ mmm mmm mmmmmmm mmmmmmmmm mmmmmmm mmm^o^ mmm mmmmmmm …

29
Crazy 8s Code Golf
intervalの間のすべての整数を印刷(a, b)し、シーケンスの8の倍数をランダム(均一に分布し、他の文字に依存しない)、非数値、非空白、印刷可能なASCII文字に置き換えるプログラムを作成します。 すべての場合で0 <a <bと仮定します。 数字に1桁以上ある場合は、置換する文字数が一致していることを確認してください! 例: (1, 16) -> 1 2 3 4 5 6 7 $ 9 10 11 12 13 14 15 n@ (115, 123) -> 115, 116, 117, 118, 119, :F<, 121, 122, 123 (1, 3) -> 1 2 3 非例: (1, 16) -> 1 2 …

28
解放してください!
コードゴルファーとして、私たちは(確かに)リリースすることに慣れていません。そのためには、いくつかのツールが必要になります。 もちろん、新しいリリースのマーケティングを支援するには、素敵で光沢のあるリリースバージョンが必要です。バージョン3.0.0を聞いても興奮しないのは誰ですか? 仕事 あなたの仕事はプログラム/ルーチン/ ...を書いてバージョン番号を増やすことです。 バージョン番号を増やし、「重要度の低い」もの(つまり、パッチバージョン)をリセットする必要があります。 2つの引数を取得します。文字列としての現在のバージョン(「1.0.3」など)と、どちらを更新するかを知るためのインデックス(0または1のインデックス)。 例、0インデックス付き: next-version("1.0.3", 0) # 2.0.0 next-version("1.2.3.4.5", 2) # 1.2.4.0.0 next-version("10.0", 0) # 11.0 next-version("3", 0) # 4 next-version("1", 7) # ERROR next-version("01", 0) # ERROR バージョンは文字列で、各部分は数字で、ドットで区切られています。先頭、末尾、または連続するドット(および数字/ドット以外)は存在できません。バージョン文字列のサイズに制限はありません。 ^[1-9]\d*(\.[1-9]\d*)*$ エラーの場合(最後の2つの例)は未定義の動作です。入力を間違えた場合に起こることは、この課題とは無関係です。 いつものように、標準的な抜け穴は禁止されています。文字列を印刷または返すことができます。

30
モジュロ和の合計
整数が与えられた場合n > 9、その整数の数字の間に可能な挿入ごとに、追加+を挿入して評価します。次に、それらの結果を法として元の数を取ります。これらの操作の合計を出力します。 以下の例n = 47852: 47852 % (4785+2) = 4769 47852 % (478+52) = 152 47852 % (47+852) = 205 47852 % (4+7852) = 716 ----- 5842 入力 任意の便利な形式の単一の正の整数、n > 9。 出力 上記の構築手法に従った単一の整数出力。 ルール あなたの言語のデフォルトのタイプより大きい入力を心配する必要はありません。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 47852 -> 5842 13 -> 1 111 -> 6 12345 …

7
小さな探検家
あなたは探検家であり、未知の世界をマッピングします。あなたの船は風に乗って運ばれます。どこに行くのか、誰が知っていますか? 毎日、あなたのスパイグラスには、北、南、東、西の地物が見えます。あなたは常に基本的な方向に対応する4つのそのような特徴を見ます。スパイグラスは、次のようなASCIIシンボルを報告します。 ~~.*、~~~~、~.^^、~#~# シンボルは順番に並んでいます(北、南、東、西)。 これらは次の記号です。~=海、.=海岸、^=山、*=木、#=無効(観測なし、これは世界の端を見るたびに発生するか、風景が霧で覆い隠されます)。あなたのスパイグラスは、あらゆる方向に正確に1つのユニットを見ます。 毎晩、あなたは星を見上げて、あなたがどこまで旅したかを確かめます。星を見ると、次のようなアスキー記号が表示されます。 n、s、e、w 北、南、東、西にそれぞれ対応します。毎晩、北、南、東、または西に常に1ユニットだけ移動します。エクスプローラーがシンボルの無限のストリームを受け取るように、あなたは: ~~.*n~~~~s~~.*s~.** あなたの仕事は、世界の2D地図を出力することです(地図の?未知の部分は北、上は東、右は東です): ?~~~?????? ?~~~?????? ?~~~.^^.?? ?~~.***.~~ ~~.*^^*.~~ ~~~..~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ 簡単にするために、マップの左下隅から開始すると仮定します。すべてのマップが8x8であると仮定します。 簡単な3x3の例を次に示します。マップは次のようになっていると仮定します。 ~.~ ~^~ ~.~ 次の入力で: ~#.#n~~^#s 次の出力が得られます。 ~?? ~^? ~.? その他の入力と出力の例: 入力 ~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w.#~~ 出力 ~~~~~~~~ ~....~~~ ~.????~~ ~~????~~ ~~????.~ ~~????~~ ~~?.^.~~ ~~~~~~~~ 入力: ~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s 出力: ?~~~~~?? ?....~?? ?.**.~?? ?~..~~?? ?~~~~~?? ?~~..~?? …

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