タグ付けされた質問 「probability-theory」

確率変数と確率過程の確率を計算することを含む課題。

10
ルーチンBeanマシンではない
Beanマシンまたはplinko / パチンコゲームに似たメカニズムのこのASCIIバージョンを検討してください。 O ^ \ ^ ^ ^ \ \ ^ / ^ U U U U U 1 2 3 4 5 O落ちるボールです。 にヒットする^と、50〜50の確率で左または右に移動します。 にヒットすると/、常に左に移動します。 にヒットすると\、常に正しくなります。 最終的に、ボールUは下部の番号付きトラフのいずれかに落ちます。問題は、それが各谷で終わる確率は何ですか? この特定のケースでは、確率は0.0、0.1875、0.5625、0.125、および0.125、それぞれトラフ5を介して1。 ここでは3つの谷の代わり5.確率があるとのもう一つの例だ0.5、0.5とは0.0: O / ^ ^ U U U 1 2 3 この課題では、この問題を、任意の方法で設定された任意の数のレイヤーを持つメカニズムに一般化します。 チャレンジ メカニズムのピラミッド構造のASCII表現を取り込むプログラムまたは関数を作成します。(stdin /コマンドライン/関数引数を使用して入力します。) あなたはそれが適切な形にそれを置くスペースで入ってくると仮定するかもしれません、例えば ^ \ ^ ^ …

28
パワーボール番号を選択してください!
パワーボールは、現在のジャックポット(2016年1月11日現在)が過去最大の宝くじ賞金であり、約15億ドル(米ドル)であるため、最近注目を集めているアメリカの宝くじです。)であるます。 パワーボールプレーヤーは、69個の白いボールから5つの異なる番号を選択し、26個の赤いボールから1つの「パワーボール」を選択します。彼らは勝つ彼らの5つの白いボールの選択肢は、任意の順序で描かれたものと一致した場合にジャックポットを、そして彼らは正しい「パワーボール」の数を選択した場合。 したがって、ジャックポットを獲得する可能性は1 (69 choose 5)*(26 choose 1)または((69*68*67*66*65)/(5*4*3*2*1))*26であり、これは292,201,338に1です 最新の抽選で誰もジャックポットを獲得しませんでした2016年1月9日のが、おそらく2016年1月13日午後10時59分(ET)に誰かが次の抽選に勝つでしょう。 チャレンジ 入力を行わず、1から69までの5つの異なる乱数を出力し、次に1から26までの1つのランダムな「パワーボール」番号を出力する、パワーボールの描画をシミュレートするプログラムまたは関数を作成します。初期番号)。 「Powerball」番号は常に出力の最後の番号である必要がありますが、最初の5つの番号の順序は重要ではありません。 6つの数値は、スペースで区切られた、または改行で区切られた10進数で出力される必要があり、オプションの単一の末尾の改行があります。コンマ、角括弧、およびその他の文字は出力に使用できません。 したがって、これらは有効な出力になります(最後の図面の番号を使用): 32 16 19 57 34 13 32 16 19 57 34 13 すべての292201338の可能な結果は、均一な確率で可能になるはずです。組み込みの擬似乱数ジェネレータを使用し、それらがこの標準を満たしていると仮定することができます。 Python 2または3で機能する、参照されていない参照実装です。 import random print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)]))) バイト単位の最短コードが優先されます。 私はパワーボールと提携しておらず、実際にプレイすることを提案していないことに注意してください。しかし、ここのプログラムのいずれかによって生成された数字から何かを獲得した場合、私たちはそれについて聞いてみたいと確信しています。:D

7
これらのサイコロは非推移的ですか?
非推移的なサイコロは、確率理論の直感に反する素敵な小さなおもちゃです。この課題にはいくつかの定義が必要です。 同時にスローされる2つのサイコロAとBを考えます。私たちは、と言うAが ビート Bを確率あればAよりも大きな数を示すBは確率よりも厳密に大きいBより大きい数を示すAを。 次に、ラベルA、B、Cを持つ3つのサイコロのセットを考えます。このようなサイコロのセットは、次の場合に非推移的と呼ばれます。 いずれかのAはビートB、BはビートC及びCはビートAを または、CがBをビートし、BがAをビートし、AがCをビートします。 私のお気に入りの例の1つとして、次の側面を持つグライムダイスについて考えてみましょう。 A: 3 3 3 3 3 6 B: 2 2 2 5 5 5 C: 1 4 4 4 4 4 興味深いことに、各ダイスの平均は3.5で、通常のダイスと同じです。 次のことを示すことができます。 AはビートBを 7/12の確率で。 BはビートCを 7/12の確率で。 Cは、ビートAを 25/36の確率で。 今、これらの特定のサイコロはさらに奇妙です。各ダイスを2回振って結果を合計すると、反転するビートの順序は次のようになります。 BはビートAを 144分の85の確率で。 Cは、ビートBを 144分の85の確率で。 AはビートCを 1296分の671の確率で。 このプロパティGrime-nontransitiveでサイコロのセットを呼び出しましょう。 一方、2つのスローを使用するときにサイコロが元のサイクルを保持している場合、それらを非推移的に強く呼び出します。(2つのスローにサイクルがない場合、単に非推移的と呼びます。) チャレンジ 3六面ダイス、このセットは持っている上記の特性の決定、および以下の文字列の出力1を考えます:none、nontransitive、Grime-nontransitive、strongly nontransitive。 プログラムまたは関数を作成し、STDIN、コマンドライン引数、プロンプトまたは関数引数を介して入力を取得し、結果をSTDOUTに書き込むか、文字列として返すことができます。 …

30
1 / N確率
単純なコードゴルフの課題が十分にないためです。 整数1≤N≤10000が与えられた場合、任意の名前のないプログラムまたは関数を作成し、1 / Nの擬似乱数確率で言語のTrue値を出力します。 命名の要件が削除されたことに注意してください。回答とスコアを適宜編集してください。 一部の言語では、1(または-1)と0とTrueとFalseを使用します。 例: 入力テストの例: 4 -> True 4 -> False 4 -> False 4 -> False 4 -> False 4 -> True 4 -> False 4 -> False つまり、4が与えられます。25%の確率でTrueを返し、75%の確率でFalseを返します。

8
極端なホワイトウォーターカヌー
かなり速いホワイトウォーター川をカヌーでaいでいます。突然、パドルが爆発し、パドルなしで川を急流で急降下する危険な状況に陥ります。幸運なことに、あなたにはまだプログラミングスキルがあるので、急流を乗り切るのを助けるために、カヌーの横にプログラムを彫ることにします。ただし、プログラムを作成するカヌーの側面には表面積があまりないため、プログラムをできるだけ短くする必要があります。 川は8 x 16グリッドとして表すことができます。列にの番号0を付け7、行にの番号0を付け15ます。 y --------15 --------14 --------13 --------12 --------11 --------10 --------9 --------8 --------7 --------6 --------5 --------4 --------3 --------2 --------1 --------0 01234567 x 上:障害物のない完全に穏やかな普通の川。当然、これはあなたがいる川ではありません。 座標(4、0)から開始し、そこから(0,1)岩(oこれらの例ではで表される)に当たるまで、制御不能に川(ベクター)を上昇します。岩にぶつかると、55%の確率で岩を左に移動し(ベクトル(-1,1))、45%の確率で岩を右に移動します(つまりベクトル(1,1))。カヌーが左端または右端の列にある場合、常に中央に向かって移動します。岩がない場合は、まっすぐ上に移動します。 y ----x---15 ----xo--14 -o--x---13 ----x---12 ---ox---11 ---x----10 ---xo---9 ---ox---8 ----xo--7 -----x--6 ----ox--5 -o--x---4 ----x---3 ----xo--2 ----x---1 ----x---0 01234567 上:キャラクターを使用して表された、カヌーが通る可能性のあるルート x 川の地図を指定して、特定の列でカヌーが終了する確率を出力するプログラムを作成します。 プログラムに都合のよい方法(STDIN、コマンドライン引数、raw_input()ファイルからの読み取りなど)で入力を受け入れます。入力の最初の部分は、プログラムが確率を見つける列を表す0〜7の単一の整数です。その後x,yに、石の位置を表す形式のタプルのリストがあります。 例: 入力: 4 …

3
無駄のない、平均的な豆の機械
離散確率分布の概念を人々に紹介する古典的な例は、Beanマシンです。このマシンには、上部の狭い通路から大量のビー玉が落下し、その後、インターレースピンの列にヒットします。各ピンでビー玉がヒットすると、ピンの左右に落ちる場合があります。最後に、ピンはマシンの下部にある垂直ビンに集められます。このマシンの簡単な図は次のようになります。 | O | | ^ | | ^ ^ | | ^ ^ ^ | | ^ ^ ^ ^ | | ^ ^ ^ ^ ^ | |_|_|_|_|_|_| この図では、Oはビー玉が落ちる場所を示しています。それぞれ^は、大理石がピンの左または右のいずれかの正方形に移動する確率が50%であるピンです。次に、ビー玉はデバイスの下部のビンに集まります。十分な数のビー玉の場合、ビン内のビー玉スタックの高さは離散的な二項分布に似ています。 チャレンジ この課題では、上記のような図に基づいて、Beanマシンの結果の確率分布を計算します。図は、側面のフィールドまたは現在のフィールドの下のフィールドに向かって、ビー玉が通過する2次元の「プログラム」として解釈されます。ビー玉が機械の底に達すると、確率分布としてカウントされます。面白くするために、これらの図には、単純なソースとピン以外のフィールドがいくつか含まれています。ダイアグラムの例は次のとおりです。 | O | | ^ | | ^ / | | ^ | ^ | | <^- …

30
一定の乱数のソースを使用して、0〜nの間の乱数を選択します
仕事 正の整数で考えるとn以下の2^30コードは、あなたが選択した任意の方法で入力として必要があり、指定された出力ランダムの間の整数0とn、包括的に。生成する数値は、ランダムに均一に選択する必要があります。つまり、0toの各値はn等しい確率で発生する必要があります(「規則と警告」を参照)。 ルールと警告 あなたのコードは、あなたの言語または標準ライブラリに組み込まれた、一様にランダムであると主張する任意の乱数ジェネレータが実際に一様であると仮定できます。つまり、使用しているランダムソースの品質を心配する必要はありません。しかしながら、 使用しているランダムソースが均一である場合、コードはから0まで均一なランダム整数を正しく出力することを確立する必要がありますn。 組み込みまたはライブラリのランダム関数を呼び出すときの引数は定数でなければなりません。つまり、入力値から完全に独立している必要があります。 コードは、終了が保証されているのではなく、確率1で終了する場合があります。 ノート randInt(0,n) 組み込み関数またはライブラリ関数への引数として入力を受け取るため、無効です。 rand()%nうではない一般的には一様乱数を与えます。betsegによって与えられた例として、場合intmax == 15やn = 10、あなたが取得する多くの可能性が高くなります0-5より6-10。 floor(randomfloat()*(n+1)) また、0と1の間の異なる浮動小数点値の有限数により、一般に均一な乱数を与えません。

3
簡易カーニングを実装する
前書き カーニングとは、テキストの文字間の間隔を調整することを意味します。例として、Top次の3つのグリフで書かれた単語を考えます。 ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... グリフ間のギャップをドットで埋めて完了させることもできますが、ギャップはどうやら広すぎるように見えます。代わりに、グリフを左にスライドさせて、ほとんど触れないようにします。 #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... これはずっと良く見える!のバーがTの左の境界線の上にあることに注意してくださいo。この課題では、このような長方形のグリフに簡単なカーニングプログラムを実装することがタスクです。 カーニングプロセス 二長方形の2次元文字配列考える.と#同じ形状を。単純なカーニングプロセスでは、最初に1列の.sを挟んで配列を並べて配置します。次に、#右と左の配列のいくつか#が直交または斜めに隣接するまで、右の配列のそれぞれを左に1ステップ移動します。カーニングの結果は、隣接するを導入する前のステップ#です。あなたの仕事は、このプロセスを実装することです。 例を見てみましょう: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: ..###....#. …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

22
ミックスダイスロールの頻度分布
この課題のフォローアップ 混合サイコロのセットが与えられた場合、それらすべてをローリングし、各サイコロでローリングした数字を合計する頻度分布を出力します。 たとえば、1d12 + 1d8(1面の12面ダイスと1面の8面ダイスをローリングする)を検討してください。最大と最小のロールがある20と2圧延と同様であり、それぞれ、2d10(2 10両面ダイスを)。しかし、1d12 + 1d8より平坦分布の結果2d10:[1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 7, 6, 5, 4, 3, 2, 1]対[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]。 ルール 周波数は、周波数が対応する合計の昇順でリストする必要があります。 対応する合計で頻度にラベルを付けることは許可されていますが、必須ではありません(合計は必要な順序から推測できるため)。 出力が言語の表現可能な整数の範囲を超える入力を処理する必要はありません。 先頭または末尾のゼロは許可されません。出力には正の周波数のみが表示されます。 任意の妥当な形式(サイコロのリスト([6, …

22
複数のサイコロの頻度分布
2つの正の整数aとを指定するとb、bサイコロのサイコロを振っaて結果を合計する頻度分布を出力します。 頻度分布は、サイコロの各可能なシーケンスが一度発生した場合、各可能な合計の頻度をリストします。したがって、頻度は合計がに等しい整数ですb**a。 ルール 周波数は、周波数が対応する合計の昇順でリストする必要があります。 対応する合計で頻度をラベル付けすることは許可されていますが、必須ではありません(合計は必要な順序から推測できるため)。 出力が言語の表現可能な整数の範囲を超える入力を処理する必要はありません。 先頭または末尾のゼロは許可されません。出力には正の周波数のみが表示されます。 テストケース フォーマット: a b: output 1 6: [1, 1, 1, 1, 1, 1] 2 6: [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1] 3 6: [1, 3, 6, 10, 15, 21, 25, 27, 27, 25, 21, 15, 10, 6, 3, …

30
ドラゴンカーブシーケンス
ドラゴン曲線配列(または通常の紙折り配列)がバイナリシーケンスです。 a(n)は、の最下位1の左ビットの否定によって与えられnます。たとえば、計算するにa(2136)は、まずバイナリに変換します。 100001011000 最下位ビットを見つけます 100001011000 ^ 少し左へ 100001011000 ^ そしてその否定を返します 0 仕事 入力として正の整数を指定すると、output a(n)。(整数またはブール値で出力できます)。バイト単位で測定したコードをできるだけ小さくすることを目指してください。 テストケース 以下は最初の100エントリです。 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 …

24
パレート分布をサンプリングする
パレート分布は、自然の中で多くのことをアップしてくる確率分布です。無限平均など、多くの特別なプロパティがあります。この課題では、この分布からサンプリングした数値を出力します。 パレート分布は、すべて1以上のx確率で1/x、以上であると定義されていますx。 したがって、この分布からサンプリングされた数値は、確率1で1以上、確率1で2以上、確率1/2で3以上、確率1/3で3以上、以上です11.4の確率で正確に1 / 11.4など。 この分布をサンプリングするので、プログラムまたは関数は入力を受け取らず、上記の確率で乱数を出力します。ただし、浮動小数点インプレッションのためにプログラムが上記の確率と完全に一致しない場合は、問題ありません。詳細については、チャレンジの下部をご覧ください。 (これは正確にはアルファ1および下限1のパレート分布と呼ばれます) 以下は、この分布からの10の例です。 1.1540029602790338 52.86156818209856 3.003306506971116 1.4875532217142287 1.3604286212876546 57.5263129600285 1.3139866916055676 20.25125817471419 2.8105749663695208 1.1528212409680156 それらのうちの5つが2未満であり、5が2を超えていることに注意してください。これは平均的な結果であるため、もちろんそれよりも高い場合も低い場合もあります。 答えは、浮動小数点型、実数型、または使用する他のものの限界まで正しい必要がありますが、少なくとも3桁の10進精度で数値を表現でき、最大1,000,000の数値を表現できる必要があります。何か問題がないかわからない場合は、お気軽にお問い合わせください。 これはコードゴルフです。 不正確さに関する詳細: 各範囲のために[a, b]、1 <= a < b試料は、その範囲内に入るであろう理想的な確率ということ、です1/a - 1/b。あなたのプログラムがその範囲で番号を生成確率はでなければなりません0.001の1/a - 1/b。Xがプログラムの出力である場合、が必要です|P(a <= X <= b) - (1/a - 1/b)| < 0.001。 で上記の規則を適用することにより、そのノートa=1とb十分に大きい、それはよりプログラムの必須出力数より大きいている場合であるか、または少なくとも確率0.999と1に等しいです。それ以外の時間は、クラッシュしInfinityたり、出力したり、他のことをしたりします。 フォーム1/1-xorの既存の提出物が1/xどこにxあるか、[0, 1)または(0, 1)orのランダムなフロートが[0, 1]すべてこの要件を満たすことは確かです。

2
死ぬための準備?
バックグラウンド 卓上ロールプレイングゲームでのennuiのソースの1つは、多くのサイコロを含むロールを扱うことです。崩壊呪文を唱えることは瞬間的かもしれませんが、40個のサイコロを振って合計することは確かではありません! これを処理するためのいくつかの提案は、rpg.stackexchange.comで説明されています。ただし、ローラープログラムの使用やサイコロの平均化など、ゲームの楽しさやコントロールの感覚を失わせるものもあります。4個のサイコロを転がして合計に10を掛けるなど、その他の場合は結果がはるかに揺れます(サイコロの平均は反対方向に作用します)。 この質問は、平均結果(平均)またはそのスイング(分散)を変更せずに、サイコロの数を減らす方法に関するものです。 表記法と数学 この質問では、次の表記を使用してサイコロを振ります。 n d k(40d6など)は、k面のダイスのnロールの合計を指します。 n d k * c(4d6 * 10など)は、結果に定数cを乗算することを表します。 ロール(4d6 * 10 + 40d6など)と定数(4d6 + 10など)を追加することもできます。 単一のダイスロールの場合、次のことを示すことができます。 平均:E [1d k ] =(k + 1)/ 2 分散:Var(1d k)=(k-1)(k + 1)/ 12 平均と分散の基本的な特性を使用して、さらに次のことを推測できます。 平均:E [ m d k * a + n d l * …

30
指定された幅で#の中空の正方形を描画します
私はCodingameからこの課題を受け取り、私のものよりも優れたソリューションに興味があります。 標準入力を使用して幅を指定すると、指定された幅と長さで「#」の中空の四角形が描画されます。 例: 5の結果 ##### # # # # # # ##### 私はこれを解決するためにPythonを使用したので、他のPythonコードに特に興味があります。ただし、必要な言語でソリューションを投稿してください。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

9
カードゲームの手のパターン
カードのデッキは、SスーツとRランクのデカルト積です。すべてではありませんが、多くのカードゲームがとを使用S=4していR∊{6,8,13}ます。Hカードの手はデッキから配られます。その分布(別名「ハンドパターン」)は、各スーツから獲得したカードの数を記述する配列で、スーツの順序を無視します(つまり、マルチセットのようなものです)。分布を考えるとD満足len(D)=S、1≤sum(D)=H≤S×R、0≤D[i]≤R、D[i]≥D[i+1]、それが発生する確率を見つけます。 入力:整数Rと配列D。 出力:小数点以下5桁以上の確率。末尾のゼロはスキップされます。科学表記は大丈夫です。 抜け穴は禁止されています。最短勝。 テスト: R D probability 13 4 4 3 2 -> 0.2155117564516334148528314355068773 13 5 3 3 2 -> 0.1551684646451760586940386335649517 13 9 3 1 0 -> 0.0001004716813294328274372174524508 13 13 0 0 0 -> 0.0000000000062990780897964308603403 8 3 2 2 1 -> 0.4007096203759162602321667950144035 8 4 2 1 1 -> 0.1431105787056843786543452839337155 …

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