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

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

8
アスキーアートゾンビの侵入シミュレーション
ゾンビの侵入をシミュレートするには、マップのグリッドから始めて、マップ#を表します。 ## ## ### # ## ## # ### # #### # 土地を表します。 水を表します。 ゾンビは地図上のある地点から始まります... ## ## ### # ## %# # ### # #### ...そして広がります。%ゾンビに感染した土地を示します。 ただし、ゾンビは泳げません。彼らは王がチェスで移動するのと同じ方法で土地を横切ることができます-任意の斜めまたは直交方向に1つの正方形: !!! !%! !!! シミュレーションの終了時に、一部の土地がゾンビに感染します。 %% ## %%% # %% %% % %%% # %%%% あなたの仕事は、ゾンビの侵入をシミュレートすることです。グリッドの初期状態を表す文字列と、初期ゾンビの座標を表す2つの数値を入力として受け取るプログラム(または関数)を記述します。プログラムは、侵略の最終状態を出力(または返す)する必要があります。 仕様書 プログラムは、オプションの末尾の改行を出力する場合があります。 入力は正しい形式(スペースが埋め込まれた形式)であり、オプションで末尾の改行があると想定できます。 最初のゾンビは陸上で始まり、すぐには死なないと思います。 これはcode-golfであるため、最短回答(バイト単位)が優先されます。 コードが任意のチューリングマシンの停止問題も解決できる場合は、-100%のボーナス。 プログラムは、最大50文字のボード幅を処理する必要があります。

14
ソートされた要素のリストのすべての組み合わせを生成します
入力としてリストと数字を受け取り、数字の長さで可能なすべての組み合わせを生成するコードを作成します。たとえば、リスト{0,1}と番号2の場合: 00 01 10 11 プログラムでは、 {0,0,0,0,0,1,1,5,5}のように、リスト内で2回以上文字を期待する必要はありません。 リストの順序で、組み合わせを並べ替えて印刷してください。 リスト{0,1}と数字5(私のコードの一部によって生成され、勝つには長すぎます): 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 しかし、リスト{1,0}と番号2の場合: 11 10 01 00 ご覧のとおり、逆順リストは逆順を意味します。 構造を見てみましょう、それは木のようなものです。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

8
ASCIIテストチューブを最適化する
ASCIIテストチューブの束が与えられます。タスクは、使用するテストチューブの数を減らすことです。 各試験管は次のようになります。 | | | | | | |~~| | | | | | | | | |__| 明らかに、~~水位です。また、試験管を空にすることもできます~~。この場合、内部に文字はありません。1つのチューブには、最大8つの水位ユニットを含めることができます。 内部の水位が異なる有限数の試験管が与えられます。できるだけ少ない量の試験管に水を注ぎ、結果を出力する必要があります。 | | | | | | | | |~~| | | | | | | | | | | | | | | | | |~~| | | | | …

6
ゴルファーの冒険-第1章:花瓶
ゴルファーの冒険 これが最初の挑戦です!以前のチャレンジからのデータを必要とするより多くのチャレンジが後であります:) 第1章:花瓶 ちょっと想像してみてください。あなたは強力な神であり、あなたの力は無限ですが、一つのことを必要としています:魂。ここでは、各魂はバイトで表されます。使用する各バイトは魂を犠牲にします。したがって、目標は明らかに、最小量の魂を犠牲にしながら、最大量の人々を救うことです。 あなたの最初の挑戦は小さな村を救うことです。悪魔は彼の挑戦を解決したら村全体を破壊しないことをいとわないでしょう。 チャレンジ : ちょうど10個の物(空気を含む)を含むことができる垂直花瓶があります。その花瓶に物を入れると、重力がその物を底に落とします。花瓶がすでにいっぱいになっている場合(および「空気で満たされている」とみなすと常に花瓶がいっぱいになります)、花瓶の上部にある要素が入力に置き換えられます。 許可されているもののセットは次のとおりです。 空気 0 / 岩石 1 / - 葉 2 / ~ 爆弾 3 / x 「A Bomb」の上に岩や葉がある場合、それは爆発して、その上のものを破壊します。 入力は、毎回花瓶に入れるもののリストです。 例: 11231:2つの岩、次に葉、次に爆弾、最後に最後の岩を配置します。 花瓶が静的な場合、次のルールでカウントを開始できます。 Rockはアキュムレーターに1ユニットを追加します リーフはアキュムレーターに2を掛けます 爆弾はアキュムレータを1ずつ減少させます 空気は何もしない (花瓶の上部からカウントを開始する必要があります) 入力として「11231」を使用して得られるシミュレーションは次のとおりです。 |-| |-| |~| |x| |-| | | | | | | | | | …
13 code-golf 

1
特定の期間、ジョーカーを使用して日付の最小リストを取得する
でフォーマットされた日付を考えYYYY-MM-DDます。*日付文字列の最後にジョーカーを使用できます。たとえば2016-07-2*、から2016-07-20までのすべての日付を記述し2016-07-29ます。 次に、開始日と終了日で表される期間を考えます。 アルゴリズムは、期間を表す日付の最小のリストを見つける必要があります。 例を使用しましょう。次の期間: 開始日: 2014-11-29 終了日: 2016-10-13 アルゴリズムは、次の日付リストを含む配列を返す必要があります。 2014-11-29 2014-11-30 2014-12-* 2015-* 2016-0* 2016-10-0* 2016-10-10 2016-10-11 2016-10-12 2016-10-13
13 code-golf  date 

1
ユーカーでベストカードをプレイ
入力: まず 、各プレイヤーが次のようにフォーマットされたカードを表す3枚のカードの配列 [JD][TH][9S] 表現する Jack of Diamonds, 10 of Hearts, and Nine of Spades. ユーカーでは常にチームメイトの向かいに座っているため、2番目の要素はチームメイトのプレーを表しています。ここで、TH。 次に 、次のようにフォーマットされたトランプスーツを表す単一の文字、文字列など S, D, C, H 代表する Spades, Diamonds, Clubs, Hearts 第三に、次のようにフォーマットされたあなたの手を表す4枚のカードの配列 [KD][JC][QH][AS] 代表する King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades 目的: 3つの入力が与えられたら、次の基準を満たすように、プレイされたカードに追加するための最良のカードを出力します。 可能であれば手がかかり、出力されない場合は最も価値の低いカード できれば手がかかりますが、やむを得ない場合を除き、チームメイトに勝ちません。 手札を取ることができる場合、最も価値の低いカードを使用して行います。(ハンドに勝てるエースとクイーンがいる場合、クイーンをプレイします)。 プレイはすべて、下部のルールで要求されているとおりに行わなければなりません。 のような出力形式 [JD] …

11
この配列を行列に変換します
ネストされていない配列を入力として受け取ります。次の方法を使用して、マトリックスに変換します。 私の配列が [1, 2, 3, 4, 5] 最初に、その配列を5回繰り返します:(長さ) [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]] 次に、対角線に沿って読みます: [[1], [2, 1], [3, 2, 1], [4, 3, 2, 1], [5, 4, 3, 2, 1], [5, …

2
ひねりを加えた素数
注:これは、この質問に大きく影響を受けています。 仕事: あなたの仕事はn、プログラムの各文字がn所定の位置で繰り返されるときに、thプライムを生成することです。 あなたのプログラムが次のようだとしましょう: Derp そこにあるすべての文字が1回繰り返されるため、が出力されるはず2です。 次のように、すべての文字が所定の場所に複製される場合: DDeerrpp これにより、2番目の素数が生成され3ます。 仕様: プログラムは入力を受け入れず、それぞれの素数を出力する必要があります。 プログラムは、十分な時間とメモリがあれば、すべての素数で機能する必要があります。 先頭と末尾の改行は問題ありません。 出力は、言語のデフォルトのベースである必要があります-デフォルトがない場合は、どのベースでも構いません。 これはcode-golfなので、バイト単位の最短コードが優先されます。

8
シーソーの片側に重量を加えてバランスを調整します
綱渡り シーソー(おそらく「this-that」を意味するフランス語の「ci-ça」から)は、同様に遍在するスライドとスイングとともに、遊具の神聖な三位一体の3分の1を形成します。シーソーは、各側のモーメントの合計が等しい場合にのみ、完全なバランスになります。したがって、シーソーは、モーメントの合計が小さい側に特定の量の重量を追加することでバランスを取ることができます。これを達成することがこの挑戦の目標です。 チャレンジ あなたの課題は、入力としてシーソーの描写を取り、それを再び出力し、バランスをとるためにシーソーの一端に重みを追加することです。 入力 プログラムは、合理的な形式で、次のようなASCIIシーソーを取る必要があります。 100 100 ------------------- ^ 最初の行には2つの数値が含まれ、それぞれがシーソー上の重みを表します。それぞれの側にちょうど1つの重りがあり、それぞれが厚板の側の端に作用します。重みは整数であることが保証されており、常に対応する厚板の端に合わせられます。これらの数値が支点(^)と重なることはありません。 2行目は、シーソーの「プランク」を表します。各ダッシュ(-)は、長さの^ない支点()のすぐ上のダッシュを除いて、各ダッシュと同じ長さを表します。 3行目は、シーソーの支点を表します。この支点は、この行のスペースではない唯一の文字、サーカムフレックス( '^')によってマークされます。支点は、有効な入力の板の長さに沿った任意の場所に配置できます。ただし、十分なスペースが残っていれば、重みを表す数値が入力または出力の支点と重ならないようにできます。 入力には3行が含まれ、シーソーを構成する文字の前後に空白がないことが保証されます(もちろん、必要な3行目を除きます)。 出力 出力の場合、同じシーソーの描写を標準出力に印刷する必要がありますが、シーソーのバランスをとるために、重量の1つ(1つのみ)をより大きい重量に置き換えます。入力は、整数のみを使用してこれを可能にすることが保証されています。したがって、重みは小数点やその他の同様の表記なしで表示する必要があります。あなたの言語がstdoutを使用していない場合は、出力についてコミュニティ/メタコンセンサスで行ってください。末尾の改行は問題ありませんが、描画形式に対する他の変更はおそらく大丈夫ではありません。 例示 テスト入力と対応する出力 入力1 12 22 -------------------- ^ 出力1 12 26 -------------------- ^ 入力2 42 42 ----------- ^ 出力2 42 42 ----------- ^ 入力3 3 16 ---------------- ^ 出力3 14 16 ---------------- ^ 入力4 …

4
チートでカンニングを手伝ってください
チートは、あなたの手を取り除こうとしているカードゲームです。ターンは次のようになります。 そのターンにプレイするカードのランクを決定します。ほとんどのバリエーションでは、これは前のターンより1ランク高いです。 1-4枚のカードを裏向きにプレイします。これらは有効なランクと一致する必要はありません。そうでない場合、チートと見なされます。この時点で、どのプレイヤーもあなたに挑戦できます。 誰もあなたに挑戦しない場合、プレイは次のプレイヤーに続きます。 誰かがあなたに挑戦し、あなたがカンニングをしなかった場合、彼らはプレイしたカードのすべてを取らなければなりません。 誰かがあなたに挑戦し、あなたがチートをした場合、あなたはプレイされたカードのすべてを取らなければなりません。 戦略は、主にブラフとカードカウントの組み合わせです。しかし、私は数学が苦手なので、Cheatをごまかしてボットを持ってきます。 入力 入力は、任意の順序または形式になります。 プレイヤーの手。彼らがカードを持っている必要があることを知っている場合(たとえば、それらを拾うのを見たことがあります)、それらは昇順でリストされます。不明なものは、後にとしてリストされ?ます。たとえば、6枚のカードがあり、2枚が1枚で、1枚が4枚であることがわかっている場合、有効なハンドの表現は114???です。?は常に既知のカードの後に​​リストされます。 141???そして11???4両方の無効な入力であり、あなたのコードでは、それらを処理する必要はありません。 私が間違いなく知っているカードは彼らの手の一部ではありません(私はそれらを持っています、他の誰かがそれらを拾うのを見ました、など)。リストはランクの昇順になります。リストは空かもしれません。 プレーヤーがプレイすると主張したカード。彼らが3 7をプレイすると主張した場合、ここで可能な入力はになります777。カードは常に同じランクになります。 プレイされるカードの数は常に1〜4で、ランクは常に0〜9です。ランクは、手ではなく手に4回以上表示されることはありません。 これは有効な入力の例です: 33577?? 01555688 55 これは無効な入力の例です: 35377?? # Out of order 7779 # Five 7's in total 23 # Two separate ranks played 出力 私たちが間違いなくすべきなら、真の価値挑戦。チャレンジしたくない場合はfalse値。 彼らがだまされていることがわかっている場合、私たちは常に挑戦します。持っていなかったカードをプレイした場合、彼らはだまされたことがわかります。 12 3 # They don't have any 3's or ?'s …

5
ラプラス方程式を解く
数値数学入門 これが「Hello、World!」です のPDE(偏微分方程式)。ラプラス方程式または拡散方程式は、物理学によく登場します。たとえば、熱方程式、変形、流体力学などです。実生活は3Dですが、「こんにちは、世界!」と言いたいのです。「99本のビール...」を歌わないでください。このタスクは1Dで行われます。これは、両端の壁に何らかの力が加えられたゴム製のローブと解釈できます。 上の[0,1]ドメイン機能を見つけるu与えられたソース関数のf境界値u_Lとu_R、そのようなことを: -u'' = f u(0) = u_L u(1) = u_R u'' の二次導関数を示します u これは純粋に理論的に解くことができますが、あなたの仕事は点の離散化された領域xで数値的に解くことですN: x = {i/(N-1) | i=0..N-1}または1ベース:{(i-1)/(N-1) | i=1..N} h = 1/(N-1) 間隔です 入力 f 関数または式または文字列として u_L、u_R浮動小数点値として N 整数> = 2として 出力 配列、リストの区切り文字列のいくつかの並べ替えu、その結果u_i == u(x_i) 例 例1 入力:f = -2、u_L = u_R = 0、N = …
13 code-golf  math  number 

8
アリ順列の生成
前書き 以前の挑戦でアリ順列のクラスを定義しました。覚え書きとして、0からr-1までの数字の順列pは、最初のエントリを除くすべてのエントリp [i ]に対して、p [i] == p [ ik]±1。楽しい事実として、私はまたのためにあると述べR≥1 、まさにそこにある2 R-1の長さのイライラ順列rが。これは、長さrのアンチ順列と長さr-1のバイナリベクトルとの間に1対1の対応があることを意味します。。この課題では、あなたの仕事はそのような通信を実装することです。 タスク あなたの仕事は、長さのバイナリーベクターにかかるプログラムや関数の書き込みにある1≤N≤99を、長さのイライラ順列出力するN + 1。順列は0ベースまたは1ベースのいずれか(ただし、これは一貫している必要があります)であり、入力と出力は任意の妥当な形式にすることができます。さらに、異なる入力は常に異なる出力を与える必要があります。それ以外の場合は、必要な任意の順列を自由に返すことができます。 最も低いバイトカウントが優先されます。 例 長さ4の(0ベース)anty順列は次のとおりです。 0 1 2 3 1 0 2 3 1 2 0 3 1 2 3 0 2 1 0 3 2 1 3 0 2 3 1 0 3 2 1 0 …

4
ハロウィンの飾り付けを手伝ってください
ハロウィーンがやって来て、まだ家を飾っていないので、この仕事をするためにあなたの助けが必要です 入力入力 は4桁の数字のリストで、各数字は装飾の一部を表します。 EMBU |||| |||+-upper decoration ||+-bottom decoration |+-mouth/nose +-eyes 目: 0 - ° 1 - ¯ 2 - - 3 - ^ 4 -' 口/鼻 0 - v 1 - w 2 - o 3 - _ 4 -- 下飾り 0-なし 1-スケルトン 2-カボチャ アッパーデコレーション 0-なし 1-空飛ぶバット 2-休憩バット 3-クモ …

6
4つの距離
この挑戦はこのビデオに基づいています。この挑戦を試みる前にそれを見ることをお勧めします。 最初に関数を定義します。この関数(OEIS)は、整数nを入力として受け取り、nの英語表現(スペースまたはハイフンなし)で文字数を出力します。たとえば、「3」は5文字なので、3は5にマップされます。 このプロセスを繰り返す任意の数で始まるビデオで示されているように、最終的には4になり、それは永久にマップされます。 以下は、16より小さい数の軌道を示す大まかな有向グラフです。 12 11 \| 15 2 6 1 10 14 13 \ \|/ / / / 7 3-/ 8--/ \| / 9 0 5--/ \ \| \-4 あなたの課題は、4に達する前に数値がとるステップの数(またはこの関数を数値に適用する必要がある回数)を決定することです(つまり、グラフの有向グラフのレベル)。 英語の数字の形成 このチャレンジのために英語の単語をどのように形成するかについての簡単な説明を次に示します。 1から19までの数字は次のとおりです。 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19 19を超える数の場合、プロセスは次のとおりです。 数が数百位の場合、数百位の数字の名前で始まり、「百」。 例えば 100 -> "onehundred" 剰余が20未満の場合、剰余の英語表記を追加します。 例えば 714 -> "sevenhundredfourteen" それ以外の場合、10桁がゼロでない場合は、適切な表現を追加します。 2-> twenty 3-> …

4
ヘキサゴルフ:バリダゴン
チャレンジ ASCIIアートの形を考えると、その形が正六角形かどうかを調べる必要があります。 六角形 通常の六角形は、2つのルールを使用して定義されます。 それは6つの側面を持っています 各辺の文字数は等しい たとえば、次の形状は規則的ですが、6つの辺がないため、正六角形ではありません。 B a a h s a i d y o u r g a o t 同様に、以下の形状は、6つの辺を有するが、異なる長さの辺を有し、そうではない正規六角形。 * * * * * * * * * * * * * * ただし、次の形状には6つの辺があり、すべての辺に同じ数の文字があるため、正六角形です。 T h e h e x a g o n s …

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