タグ付けされた質問 「simulation」

シミュレーションを伴う課題に。

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

8
地震の分析
バックグラウンド の ランダムドミノオートマトンは、セルオートマトンに触発された地震のためのおもちゃのモデル、です。この課題におけるタスクは、このモデルの単純化されたバージョンをシミュレートし、そこからデータを収集することです。 オートマトンはビット配列Aで定義され、k地震が発生する可能性のある断層線を表します。配列は境界で折り返されます。状態とA[i] = 0は、位置iがリラックスしていること、および興奮しA[i] = 1ていること、またはエネルギーが蓄積されていることを意味します。各タイムステップで、配列の1つの位置がランダムに均一に選択されます。その位置が緩和されると、興奮します(潜在的なエネルギーがシステムに追加されます)。その位置がすでに興奮している場合、それは地震を引き起こし、選択された位置とそれに接続されているすべての興奮した位置は再びリラックスします。リラックスする興奮した位置の数は、地震の大きさです。 例 配列を考える 100101110111 ランダムプロセスが左から2番目のビットを選択した場合、配列は次のように更新されます。 110101110111 ^ (でマークされた選択ビットは、以降^)でした0。次に、左から4番目のビット(分離1)を選択すると、マグニチュード1の地震がトリガーされ、ビットが0再び設定されます。 110001110111 ^ 次に、右から2番目のビットを選択すると、マグニチュード5の地震がトリガーされます。 000001110000 ^ 1選択されたものと同じ「クラスター」内のすべてのsは地震の一部であり、配列は境界で折り返されていることに注意してください。 タスク 入力として2つの正の整数kとを取りt、タスクはすべてのsのt初期の長さのk配列から開始して、タイムステップのランダムドミノオートマトンをシミュレートすることです0。出力は整数のリストLでkあり、L[i](1から始まるインデックス付けで)マグニチュードの地震の数が含まれますiシミュレーション中に発生したます。出力から末尾のゼロを削除できます。 入力k = 15およびについてt = 1000、いくつかの代表的な出力は [117, 97, 45, 26, 10, 5, 3, 1, 3, 0, 0, 0, 0, 0, 0] [135, 91, 58, 21, 8, 2, 2, …

7
男がどこへ行くかを予測する
男(0, 0)は、町の北西の角に高さhと幅を持って住んでいwます。毎日彼は自宅から国境(?, w)か国境まで歩いてい(h, ?)ます。次の例では、男性は(3, 3)今日に行きます。 (0, 0) +--+ + + . (0, 4) | + +--+--+ . | + + + + . | (3, 0) . . . . . (3, 4) 男性は各ポイントで少し記録します(+上記の例)。彼がポイントに達するたびに、彼はビットがあれば東に、1そうでなければ南に行きます。彼が去った後、ビットは反転されます。例えば: Day 1: 1--0 1 1 Day 2: 0 1 1 1 Day 3: 1--1--1--1-- Day 4: …

8
モデルニューロンのシミュレーション
アンIzhikevichニューロンは離散時間ステッピングシミュレーションで使用するために設計された生物学的ニューロンのシンプルで非常に効果的なモデルです。このゴルフチャレンジでは、このモデルを実装します。 パラメーター このモデルには、生理学的に正確なモデルの多数のパラメーターと比較して、2つの微分方程式に編成された7つの変数のみが含まれます。 vおよびuは、ニューロンの2つの状態変数です。ここで、vは、経時的な細胞電位を表す「高速」変数でuあり、特定の膜特性を表す「低速」変数です。vこれはシミュレーションの出力であるとして変数は、最も重要なものです。 a、b、c、及びdニューロンの特性を記述する定数を固定されています。目的の動作に応じて、ニューロンの種類によって定数が異なります。特に、cリセット電位は、スパイクした後に細胞が戻る膜電位です。 Iニューロンへの入力電流を表します。ネットワークシミュレーションでは、これは時間とともに変化しますが、ここではI、固定定数として扱います。 モデル このモデルには非常に単純な擬似コードがあります。最初に、の定数値を取得し、abcdそれらを使用して初期化vおよびを行いuます: v = c u = b * c 次に、シミュレーションコードを必要な回数ループします。各反復は1ミリ秒の時間を表します。 for 1..t: if v >= 30: # reset after a spike v = c u = u + d v += 0.04*v^2 + 5*v + 140 - u + I u += a …

2
チェスのダービー
チェスや解体ダービーよりも正反対の可能性があるもの。あなたは、今日まで、一方を楽しむ人はもう一方を楽しむことはないと思うでしょう。 ルール 開始位置は、標準のチェス盤です。 RNBQKBNR PPPPPPPP PPPPPPPP RNBQKBNR 普通のように見えますが、それがすべての最後の部分の競争であることがわかるまでは: ターンごとに、ボード上の各ピースは、ランダムに選択された有効な動きを1つ行います(標準の動きルールを使用)。ただし、ピースが移動する順序は、ターンごとにランダム化されます。 ピースは、たとえそれが同じ色であっても、王であっても、あらゆるピースをキャプチャできます。 ポーンはFORWARDと対角線をキャプチャできます。さらに、通常のように、その前に空きスペースがある場合、ポーンはその最初の動きで2つのスペースを移動できます(そのようにキャプチャすることもできます)。さらに、ポーンはaポーン。 勝者は最後の駒です。ただし、1000ターン後に複数のピースが残っている場合、残りのピースはすべて勝者です。 通行人、小切手、城などはありません 出力 ターンごとにターン番号と、ボードの外観を出力します。ピースが殺された後、ボードから削除されます。最初のターンの後、ボードは次のようになります。 1. K RBQ N BR NP P P PP P P R PP BPN PNP K R Q 1000回の移動後、ボードは次のようになります。 1000. Q K P N R R B N Q そしてゲームは終了します。 または、おそらく556ターン後にボードは次のようになります。 556。 R それでゲームはそこで終わります。 *このチャレンジで行われるすべてのランダム化が均一であることを確認してください(すべての可能性が等しく発生する可能性があります)。

3
レースオブザディジット
個別の1桁の正の整数の開始順序と、トラックの長さを入力出力として指定するか、番号の終了順序を返すプログラムまたは関数を作成する必要があります。 入力[5,1,2,6,7] and 14は次のレースを定義します。 -------------- 76215 -> -------------- レースのルール トラックはラップアラウンドし、桁は複数のラップを移動できます。 ステップの順序は周期的で、開始位置に基づいています。この例では5 1 2 6 7 5 1 2 ...。 同じ位置に複数の数字を含めることはできません。 すべての桁には、digit_valueステップごとにセルの速度があります。数字または数字の連続ブロックを追い越すには、余分なステップが1つかかります。桁に必要な速度がない場合、桁(のブロック)の前で停止します。例: [41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it can't move 3 to overtake …

10
2つのクリーチャー間の戦いをシミュレートする
Brave Code Golferさん、ようこそ!今日、あなたはゴブリンとエルフの間の素晴らしい戦いの真っstand中に立つでしょう! goblin attacks elf! elf dodges! elf attacks goblin! elf hits goblin for 13 damage! goblin has 37 health left. goblin attacks elf! goblin hits elf for 1 damage! elf has 49 health left. elf attacks goblin! elf hits goblin for 19 damage! goblin has 18 health left. …

3
スタックベースの言語をトークン化する
私は、に取り組んできた別のと呼ばれるスタックベースのゴルフの言語Stackgoat。この課題では、Stackgoat(または実際には一般的なスタックベースの言語)のTokenizerを作成します。 例 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 仕様 処理する必要がある3つのタイプは次のとおりです。 ストリングス、何も内"" 数字、数字列 演算子、空白以外の任意の単一文字 空白は、文字列内にあるか、2つの数値を区切っていない限り、本質的に無視されます。 文字列/文字仕様: 文字列はで区切られ、が検出された"場合\、次の文字をエスケープする必要があります。 '文字はa で始まり、その後の'文字は文字列リテラルに変換されます。'a->"a" ' 常にその後に文字があります 終値を自動挿入する必要があります ルール: の形式evalは許可されません 入出力: 入力は、STDIN、関数パラメーター、または同等の言語を通じて取得できます。 出力は、配列または言語に最も近いものでなければなりません。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

1
ゴルフをコーディングして
ゴルフをしたことがない場合、この質問で使用するゴルフ関連用語のリストを以下に示します ショット、ストロークとも呼ばれる:ボールがヒットするたびに、これはショットです。 ホール:ゴルフコースはホールに分割され、ゴールはできるだけ少ないショットで指定された場所から別の場所にボールを打つことです。 ティー:穴を開けるところ。 ピンまたはフラグ:穴を仕上げる場所 Fairway、Rough、Water、Green:ゴルフコースの機能で、実際の生活でボールをどのようにプレーするかに影響します。(それらがプログラムにどのように影響するかを以下に指定します) 私は明日ゴルフに出かけますが、時々、特定のヤードを打つためにどのクラブを使用するのかわからないことがあります。そこで、ショットごとにクラブとそのヤードを書き留めることにしました。 最初の仮定:すべての穴はティーボックスの真北にあります。 これらのヤードはすべて、ボールがどれだけ北に移動するかの可能性を測定します。ボールは、各クラブに指定された境界(両端を含む)の間のランダムな整数距離を移動します。 マスターゴルファーとして、私のショットには水平シフトがありません。これは、すべてのショットが直接旗に向かってまっすぐ進むことを意味します。 Club # Club Yardage 1 Driver 300-330 2 3-Wood 270-299 3 5-Wood 240-269 4 3-Iron 220-239 5 4-Iron 200-219 6 5-Iron 180-199 7 6-Iron 160-179 8 7-Iron 140-159 9 8-Iron 120-139 10 9-Iron 100-119 11 P-Wedge 80-99 12 S-Wedge 50-79 …

5
コードゴルフ:消灯!
すべての可能性を渡す最短のコードが勝つ 多くのグリッドベースのゲームは、点灯するライトのグリッドで開始されます。いずれかのライトを押すと、そのライトとそれに隣接する4つのライトが切り替わります。ライトを切り替えると、最初にオンまたはオフになったかどうかに応じて、オフまたはオンになります。目標は、最後にすべてのライトがオフになるシーケンスでライトをヒットすることです。 「X」は点灯しているライトを表します。「O」は、消灯しているライトを表します。「P」は押された正方形を表します。 XOO XOO XOX XOX XXX XOX XOP -> XXO -> OPO -> XOX OOX OOX POO XXO XOO Intial Grid Press 1 Press 2 Press 3 Ending Grid 入力は、引数または標準入力として渡されたファイルから直接取得できます。入力の最初の行が含まれていますX(1 <= X <= 20)、意味光のグリッドのサイズ、xとにより、X。2行目にはy(0 <= y <=(x * 3)2)、つまり最初に点灯したライトの数が含まれます。次のy行には、グリッド上のライトの座標が「行列」の形式で含まれています。既にオンになっている(以前に切り替えられた)ライトは、再度オフに切り替える必要があります。次の行には、押されたライトの数であるzが含まれます。最終 z 行には、「行列」の形式で、押されたライトの座標が押された順序で含まれています。 間違った入力はありません。すべての数値は、グリッドの指定された境界内にあります。 出力は、すべてのライトが切り替えられた後の最終グリッドになります。それはあるべきn個によって、n個のグリッド。点灯している各エリアには、大文字の「X」を使用する必要があります。消灯している各エリアには、大文字の「O」を使用する必要があります。 グリッド外の影響を受けるライトは無視する必要があります。グリッドのエッジでライトを切り替えると、グリッド自体にあるライトにのみ影響します。 テストケース 入力 4 5 …

4
小さな冒険
テキストアドベンチャーゲームには、かなり定式化されています。一連の部屋/スペースで構成される世界があり、プレイヤーはこれらの部屋を動き回ることができ、部屋にはいくつかのアイテムがあります。アイテムはプレイヤーが拾い上げ、置いて、他の部屋(鍵など)にアクセスするために使用し、他のアイテムと組み合わせて新しいアイテムを作成できます。 チャレンジ あなたの課題は、テキストアドベンチャーランタイムを最小限のバイト(コードゴルフ)で記述することです。物事を単純にするために、あなたがする必要があるのは、与えられた一連のコマンドが与えられたゲームに勝つかどうかに応じて、真実または偽の値を出力することです(対話性、人間に優しい出力などはありません) ゲームのルール 世界は常に、接続された10の部屋がある廊下で構成されています。各部屋には入室するためのキーが必要ですが、キーなしでいつでも退出することができます(だから、ある種のラッチロックだと思います)。 プレイヤーは部屋0から始まり、部屋9に入れば勝ちます(部屋9に到達すると、別の部屋に行くなど、好きなことを行うことができ、勝ちます)。 各部屋には、任意の数のアイテムを含めることができます。 AZという名前のアイテムは最大26個あり、世界中でアイテムが複数回表示されることはありません。 プレイヤーは、現在の部屋からアイテムを拾ってインベントリに入れることができます(インベントリからアイテムを現在のルームにドロップすることもできます)。 プレーヤーの最大インベントリサイズは有限であり、レベルの詳細が提供されます。 ゲームの開始時には、プレイヤーのインベントリは常に空です。 ルーム内のアイテムの最大数に制限はありません(ただし、アイテムの総数であるため、暗黙的な制限は26になります)。 アイテムAJは、0から9の部屋に入るために使用できるキーです(つまり、プレーヤーはアイテムAがある場合は部屋0に、Bがある場合は部屋1に移動できます。部屋を出るためにキーは必要ありません。プレーヤーは部屋0から始まるため、キー「A」はプレーヤーが戻りたい場合にのみ必要です。部屋0。 プレーヤーのインベントリ内のアイテムを組み合わせて、新しいアイテム(プレーヤーのインベントリ内に作成されます)を作成できます。許可された組み合わせには、レベルの詳細が提供されます。 アイテムを結合すると、元のアイテムが消費されます(つまり、アイテムの1つがキーだった場合、そのキーを使用することはできなくなります)。 プレイヤーが不可能なことをしようとする場合(例えば、現在の部屋にないアイテムを拾う/持っていないアイテムをドロップする/持っていないアイテムを組み合わせる/鍵のない部屋に行くのため)、何も起こらず、継続することができます。 プレイヤーは決して意味のないコマンドを出すことはありません(部屋11に行くなど)。 したがって、単純なゲームは次のようになります。 v +---+---+---+---+---+---+---+---+---+---+ | C | | J | | | | | | | | +---+---+---+---+---+---+---+---+---+---+ | CORRIDOR | +---------------------------------------+ Inventory capacity: 99 部屋0にはアイテム「C」が含まれています(これは部屋2の鍵です)。部屋2にはアイテム「J」が含まれています(これは部屋9の鍵です)。プレイヤーは、Cを拾い、部屋2に移動し、Jを拾い、次に部屋9に移動することでゲームに勝つことができます。 より複雑なゲームは次のとおりです。 v +---+---+---+---+---+---+---+---+---+---+ | C | | X …

9
ボードの回転をシミュレートする
前書き コインが上部に挿入され、重力のために下部に(上部のコインに)落ちるマッチングゲームをプレイしています。 したがって、この O <- inserting this coin OO O OOOOO これになります O OO O OOOOO 誰かがボードを時計回りに回転させると想像してください。次のことが起こります。 1.ボードが回転します OOO OO O OO O 2.重力によりコインが落ちる O O OO OO OOO あなたのタスク あなたの仕事は、プログラムや関数を書くことでボードの回転をシミュレートすることです。簡単にするために、1種類のコインのみを扱っています(あまりにもエキサイティングなマッチングゲームではありませんよね...)。回転が完了した後にのみ重力が適用されると仮定できます。ボードは時計回りに回転します。 入力 入力は3種類の文字を含む文字列になります。 O(大文字o)OR 0(ゼロ)-コイン(ソリューションがサポートするものを決定します) (スペース)-空のフィールド \ n(改行)-行の終わり 入力はボードの状態を表します。入力は整形式で、ボードの有効な状態を含んでいると想定できます(コインが浮いていない)。入力は関数パラメーターにすることも、標準入力またはファイルから読み取ることもできます。 出力 出力は、回転後のボードの新しい状態です。出力には、入力と同じ3種類の文字が含まれます。出力は関数から返すことも、標準出力またはファイルに書き込むこともできます。 サンプル 入力1: O OO O OOOOO 出力1: O O …

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

3
疫学者になろう!
チャレンジ 病気が人々のグループの周りに広がる方法の簡単なモデルを作成する必要があります。 ルールと要件 モデルは、各要素が異なる人物である1000 x 1000の2D配列でなければなりません。 ユーザーはargvを使用して3つの変数を入力する必要があります。伝送の確率(誰かが他の人に感染する可能性)、突然変異の可能性、シミュレーションを実行する期間の数です。 最初の期間(t=0)では、4人を無作為に選択し、病気に感染させる必要があります。 病気の振る舞いは、次の規則によって管理されます。 この病気は垂直方向と水平方向にしか移動できず、隣の人に移動します。 感染はすべての人で3期間続きます。免疫不全を考慮することはできません。 人が3回感染した後、彼らは免疫であり、再び感染することはできません。 この病気は突然変異の影響を受けており、以前は免疫がなかった人々をこの新しい突然変異の病気に対して脆弱にします。変異した病気はまったく同じ特徴を持ち、元の病気と同じルールに従います。 突然変異が発生した場合、病気全体は変化せず、伝播時に特定の「パケット」のみが変化します。 人が1つのウイルスに感染すると、現在の感染が終わるまで再び感染することはできません。 人が感染すると、感染期間の開始から終了まで感染します。 免疫のレベルはありません-人は免疫があるかどうかです。 メモリーの過負荷を防ぐために、最大800個の突然変異の制限があります。 指定された期間数の終わりに、結果を出力する必要があります。 結果は、感染している人と感染していない人を示す1000 x 1000のグリッドでなければなりません。これは、テキストファイル、画像ファイル、またはグラフィック出力として出力できます(#FFFFFFは健康な人で、#40FF00は感染者です)。 回答に言語名とそれを実行するコマンドを含めてください。 勝ち コンピューターで実行する最速のコードが勝ちます。その時間は、次のPythonコードで測定されます。 import time, os start = time.time() os.system(command) end = time.time() print(end-start) このスクリプトを実行するときは、次のデフォルトを使用することに注意してください。 Probability of transmission = 1 Chance of mutation = 0.01 Number of periods …

4
子供向けロボットで遊ぶ-どの手紙に届きますか?
TL; DR:文字の配列と配列の開始位置にあるロボットを指定して、動きのある文字列を読み取ることができるアルゴリズムを書きます(F「進む」、R「右に90度回転する」、「90度L回転する」左」)、ロボットの終了位置を計算します。全文の詳細。 自宅には子供向けの非常にシンプルなプログラム可能なデバイスがあります。ボタンで車両を前進させたり、左に90度回転させたり、右に90度回転させたりするためのボタンがあります。これに似たもの: また、次のような文字のフォームマットもあります。 このすべての目的は、子供たちにアルファベットとプログラミングの基礎の両方を一度に教えることです。 チャレンジ フォームマットを次のようにランダムに配置したとします。 +---+---+---+---+---+---+---+ | E | R | L | B | I | X | N | +---+---+---+---+---+---+---+ | O | A | Q | Y | C | T | G | +---+---+---+---+---+---+---+ | F | W | H | P | D …

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