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

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

8
リストをピックフラット化する
ネストされたリストを「ピッキング」するプロセスを検討してください。ピッキングは次のように定義されます。 引数がリストの場合、リストから要素をランダムに(均一に)取り出し、そこから選択します。 引数がリストではない場合、単にそれを返します。 Pythonでの実装例: import random def pick(obj): if isinstance(obj, list): return pick(random.choice(obj)) else: return obj 簡単にするために、ネストされたリストには整数またはさらにネストされたリストのみが含まれると仮定します。 任意のリストが与えられた場合、で区別できないフラット化されたバージョンを作成することができますpick。つまり、リストから選択すると、同じ確率で同じ結果が得られます。 たとえば、リストを「ピックフラット化」 [1, 2, [3, 4, 5]] リストを生成します [1, 1, 1, 2, 2, 2, 3, 4, 5] 。単純な平坦化が無効である理由は、サブリストの要素が選択される確率が低いためです。たとえば、リストで[1, [2, 3]]は1が2/4 = 1/2の確率で選択され、3と4は両方とも1/4チャンスそれぞれ。 また、シングルトンリストからの選択はその要素からの選択と同等であり、空のリストからの選択には意味がないことに注意してください。 チャレンジ 非負整数のネストされたリストを指定すると、非負整数のフラット化されたリストを返します。このリストから、同じ確率で同じ結果が得られます。 これはcode-golfなので、最短の有効な回答(バイト単位で測定)が勝ちます。 仕様書 入力は[2, 3, 4]、[2, 2, 2, 2, …

7
ランダムな非減少シーケンスをサンプリングする
入力:コードに便利な任意の形式で指定された2つの整数nおよびk 出力 1〜nの範囲にあるk個の整数のランダムで減少しないシーケンス。サンプルは、1〜nの範囲の整数を持つk個の整数のすべての非減少シーケンスから均一に選択する必要があります。 出力は、便利な任意の妥当な形式にすることができます。 お気に入りのライブラリ/言語が提供する擬似ランダムジェネレータを使用できます。 整数n、k> 0と仮定できます。 例 n、k = 2と言います。非減少シーケンスは 1,1 1,2 2,2 各シーケンスには、出力される確率の1/3が必要です。 制限 コードは、k = 20およびn = 100の場合、数秒以内に実行する必要があります。 動作しないもの 1からnの範囲の各整数をランダムにサンプリングし、リストを並べ替えるだけでは、均一な分布は得られません。

4
(やや)dan病な誕生日のパラドックス
バックグラウンド 誕生日のパラドックスは、(ほとんどの人々の)数学的な直感を覆す確率論で人気のある問題です。問題のステートメントは次のとおりです。 与えられたNの人々 、それらの少なくとも2つが同じ誕生日(年を無視)を持っている確率は何ですか。 この問題は通常、うるう日を完全に無視することで簡素化されます。この場合、N = 23の答えは(一般的な例として)P(23)≈0.5072972です。リンクされたウィキペディアの記事は、この確率に到達する方法を説明しています。あるいは、このNumberphileビデオは本当に良い仕事をします。 ただし、この課題に対しては、正しく実行したいので、うるう年を無視しないでください。2月29日を追加する必要があるため、これはやや複雑ですが、この特定の誕生日は他のすべての誕生日よりも少ない可能性があります。 また、完全なうるう年のルールを使用します。 年が400で割り切れる場合は、うるう年です。 それ以外の場合、1年が100で割り切れる場合、うるう年ではありません。 それ以外の場合、1年が4で割り切れる場合はうるう年です。 そうでなければ、it年ではありません。 混乱した?つまり、1700年、1800年、1900年、2100年、2200年、2300年はうるう年ではなく、1600年、2000年、2400年は(4で割り切れる他の年と同様)です。このカレンダーは400年ごとに繰り返され、これらの400年にわたる誕生日の均一な分布を想定します。 N = 23の修正結果は、現在P(23)≈0.5068761です。 チャレンジ 整数1 ≤ N < 100を指定するNと、うるう年の規則を考慮して、少なくとも2人の人が同じ誕生日を持っている確率を決定します。結果は、小数点以下6桁までの精度の浮動小数点数または固定小数点数でなければなりません。末尾のゼロを切り捨てることは許容されます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 ソリューションは、わずか数秒で99の入力すべてに対して出力を生成できる必要があります。これは主に、大量のサンプルを使用するモンテカルロ法を除外するためです。したがって、非常に遅い難解な言語で主に高速で正確なアルゴリズムを使用している場合は、この規則に余裕を持たせます。 テストケース 結果の全表は次のとおりです。 1 => 0.000000 2 => 0.002737 3 => 0.008195 4 => 0.016337 5 => 0.027104 6 => 0.040416 7 => 0.056171 8 => …

20
文字列のヒストグラムエントロピー推定を計算します
特定の文字列のシャノンエントロピーを推定するプログラムまたは関数を作成します。 文字列にn個の文字、d個の 個別の文字、x iがi番目の個別の文字、P(x i)が文字列に出現する確率である場合、その文字列のシャノンエントロピー推定は次のようになります。 このチャレンジでの推定では、文字列内で文字が出現する確率は、出現回数を文字の総数で割ったものであると想定しています。 回答は、ピリオドの後に少なくとも3桁まで正確でなければなりません。 テストケース: "This is a test.", 45.094 "00001111", 8.000 "cwmfjordbankglyphsvextquiz", 122.211 " ", 0.0

16
特定のイベントのすべての組み合わせの確率
確率が0.0〜1.0のイベントのシーケンスを指定して、各組み合わせが発生する確率を生成および導出します。選択した言語が提供するものであれば、どのような構成でも一連の数字が提供されると想定できます。 以下に例を示します。シーケンスの組み合わせの長さがメモリに収まると仮定できます。 { 0.55, 0.67, 0.13 } プログラムは、各組み合わせと、そのシーケンスが発生する関連確率を出力します。1は入力シーケンスのそのインデックス内のイベントが発生したことを示し、0はそのイベントが発生しなかったことを示します。望ましい出力は以下のとおりです(作業の印刷は気にしません。これはアルゴリズムの情報提供のみを目的としています)。 [0,0,0] = (1 - 0.55) * (1-0.67) * (1-0.13) = 0.129195 [0,0,1] = (1 - 0.55) * (1-0.67) * (0.13) = 0.019305 [0,1,0] = (1 - 0.55) * (0.67) * (1-0.13) = 0.262305 [0,1,1] = (1 - 0.55) * (0.67) * (0.13) …

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

5
壊れたランダム関数を修正
友人のコンピューターにアドオンカードがあり、1から5までの完全に乱数を生成します。残念ながら、彼らは何とかコーラをこぼし、1から4までのすべての数値に対して2だけを生成します。幸いなことに、ランダム性は保持されますが、2は80%の確率で、5は20%の確率で、 1、3、または4が生成されます。このランダムなソース(それを呼び出すBrokenRand()か、類似のもの)を使用して、元のソースと同じ完全なランダム性で等しい20%の確率でそれぞれ1から5までの数を生成する動作乱数ジェネレーターを記述します。 最短のプログラムが勝ちます。BrokenRand人口統計学的に選択されたカスタマーサービスフォーカスコンサルタントによる公平な最低通話数に対して、年齢と性別に分類されたボーナスポイント-私。

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

20
数字を分解してください!
あなたの仕事は、以下の形式を使用して数値を分解することです。 これはベース変換に似ていdigitsますが、ベースにリストする代わりに、リストをvalues入力に追加するようにリストします。 指定されたベースがの場合、nリスト内の各数値はの形式である必要があります。k*(n**m)ここで0<=k<nおよびmはリスト全体で一意です。 スペック 合理的な入力/出力フォーマット。プログラム/関数は2つの入力を受け取り、リストを出力します。 出力リストの順序は任意です。 0 除外または含めることができます。 リード0は許可されます。 組み込みが許可されます。 テストケース number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 得点 これはcode-golfです。バイト単位の最短ソリューションが優先されます。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

6
その確率分布は誰ですか?
前書き この課題では、確率分布から独立して描かれた非負の浮動小数点数のリストが与えられます。あなたの仕事は、数字からその分布を推測することです。チャレンジを実行可能にするために、選択できるディストリビューションは5つだけです。 U、区間[0,1] の均一分布。 T、モードc = 1/2の区間[0,1] の三角分布。 B、パラメーターα=β= 1/2の区間[0,1] のベータ分布。 E、レートλ= 2の区間[0、∞)の指数分布。 G、間隔[0、∞)のガンマ分布。パラメーターk = 3およびθ= 1/6。 上記の分布はすべて平均がちょうど1/2であることに注意してください。 タスク 入力は、長さが75〜100の非負の浮動小数点数の配列です。出力はUTBEG、上記の分布のどれに基づいて数字が引き出されたかに基づいて、文字の1つになります。 ルールとスコアリング 完全なプログラムまたは機能のいずれかを指定できます。標準の抜け穴は許可されていません。 ではこのリポジトリ、5つのテキストファイル、各ディストリビューションの1、長いそれぞれ正確に100行があります。各行には、分布から独立して描画され、小数点以下7桁に切り捨てられた75〜100個のフロートのコンマ区切りリストが含まれています。言語のネイティブ配列形式に一致するように区切り文字を変更できます。回答として認定するには、プログラムで各ファイルから少なくとも50個のリストを正しく分類する必要があります。有効な回答のスコアは、バイトカウント+誤分類リストの総数です。最も低いスコアが勝ちます。

3
コインフリップシーケンスの選択を分析するプログラムを作成する
私の古い本のパズルでは、2人のプレーヤーがコインを繰り返し弾いたときに最初に現れると信じているコインフリップのシーケンスを選択するゲームが定義されています。(実際にはサイコロと奇数のサイコロが振られましたが、この小さな詳細は問題の等価性の観点では重要ではありません。) なお、プレイヤー1を選択した場合TTT、プレイヤー2を選択したがHTT、そのプレイヤー2が唯一の方法であるため、試合に勝つの7/8のチャンスがあるTTT前に来ることができますが、HTT最初の3つのフリップは、すべてのテールがある場合です。 あなたの仕事は、2つの選択されたシーケンスのうちの1つが最初に来る確率を推定するプログラムまたは関数を作成することです。プログラムは2行の入力(または引数として2つの文字列)を取り、それぞれが長さ10以下のシーケンスを表します。 HTT TTT そして、最初のプレイヤーが勝つ確率を小数または小数形式で出力します: 7/8 0.875 どの言語でもこれを行う最短のコードが優先されます。

14
[N]とM反復の再帰的に連結された累積和
2つの正の整数NをM取得し[N]、M反復での連結累積和を作成します。最後の反復の結果を出力します。 連結累積合計の定義: 数字Nから始めてシーケンスを定義するX = [N] 追加Xの累積和X 手順を2 M回繰り返します。 ベクトルの累積合計X = [x1, x2, x3, x4]は次のとおり[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]です。 例N = 1とM = 4: P =累積和関数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

23
2つの6面ダイスの100ロールの合計
2つの6面ダイスがあるとします。ペアを100回ロールして、各ペアの合計を計算します。各合計が発生した回数を印刷します。合計がロールされなかった場合、その特定の合計がロールされなかったことを識別するゼロまたは何らかの方法を含める必要があります。 出力例:[3、3、9、11、15、15、15、11、15、7、8、3] 合計がロールされた回数は、合計インデックス-2で表されます。 この例では、合計2回が3回([2-2])、合計3回が3回([3-2])、合計が4回9回([4-2])などでした。オン。個々のサイコロの出目が合計に達することは問題ではありません(5と2は6と1と同じ合計としてカウントされます) データの読み取り方法を説明する限り、「Uい」出力は問題ありません(末尾のゼロの負荷、余分な出力、データの奇妙な表現方法など)。

2
ポリヤウルンフリップアンドロール
問題文 Pólyaは再び骨withで遊んでおり、いくつかの確率を計算するのを手伝ってほしいと望んでいます。 この骨experimentの実験では、ポリヤには最初に赤と青のビーズが1つ入った骨urがあります。 反復ごとに、彼はビーズに手を伸ばしてビーズを取り出し、色を調べてビーズを骨urに戻します。 彼はフェアコインを裏返します。コインが頭に着地した場合、彼は同じ色のビーズの公平な6面のダイスロール量を骨nに挿入し、尾に着いた場合、彼は同じ色のビーズの半分の数を骨nから取り除きます(整数除算の使用-選択した色のビーズの数が奇数の(c-1)/2場合、cはその色のビーズの数を削除します) 整数n≥0および小数r> 0の場合、n回の反復後のビーズの色の比率が最短バイト数でr以上になる確率を小数第2位まで与えます。 反復のサンプルセット: (x、y)に、x個の赤いビーズとy個の青いビーズが含まれるように骨nを定義させます。 Iteration Urn Ratio 0 (1,1) 1 1 (5,1) 5 //Red bead retrieved, coin flip heads, die roll 4 2 (5,1) 5 //Blue bead retrieved, coin flip tails 3 (3,1) 3 //Red bead retrieved, coin flip tails 4 (3,4) 1.333... //Blue bead …

1
XKCDブラケット確率
今日のXKCDはスポーツトーナメントスタイルのブラケットであり、競技者はよく知られた名前であり、混乱を招く可能性のある名前のグループに入れられます。 与えられたラウンドの各競技者がそのラウンドに勝つ可能性が等しいことに基づいて、与えられた競技者がトーナメント全体に勝つ確率を与えます。 入力 出場者の名前。 XKCDはすべて大文字を使用するのが好きですが、大文字と小文字を区別せずに使用することも、入力大文字と小文字を区別しないこともできます。 すべての入力名が有効であると想定できます。 Jeff GordanはおそらくスペルミスですJeff Gordon。これらのいずれかまたは両方を受け入れることを選択できます。 いくつかの名前は句読点、例えば含めるH. G. WellsとをJoseph Gordon-Levitt。句読点の有無にかかわらず(またはその両方)、名前を受け入れることを選択できます。句読点なし上記のようになりますH G Wellsし、Joseph Gordon Levitt 同様に、どちらかBeyoncé、Beyonceまたは両方を受け入れることを選択できます Mister/Fred Astaire/Rogersラインが少し奇妙です。この1については、次のすべてを受け入れる必要がありますFred Rogers、Mister RogersとFred Astaire 出力 与えられた競技者がトーナメント全体に勝つ確率(合理的な形式)(例1/64) 例 ルイアームストロングは、6ラウンドでそれぞれ2人の競技者と対戦する可能性があるため、1/64の勝率があります。 アランリックマンは潜在的に7ラウンドでプレイする可能性があります。1回目は3人の競技者で、残りは2人の競技者であるため、1/192の確率で勝ちます。 画像からすべての名前を入力する手間を省くために、explainXKCDはすでにそれらを表にしています。また、それらをこのペーストビンにダンプしました。 ExplainXKCDでの勝ちの確率は間違っていることに注意してください-おそらく最終ラウンドを忘れているため、本来の2倍の大きさです。@Geobitsを指摘してくれてありがとう。

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