[過去ログ]
高校数学の質問スレ Part441 (1002レス)
高校数学の質問スレ Part441 http://rio2016.5ch.net/test/read.cgi/math/1745555217/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
213: 132人目の素数さん [sage] 2025/04/28(月) 13:47:21.44 ID:FqERNgkc >>199 これでいいんじゃね? (* 600人が通う学校がある。 30人の学生を観察したところ13人が女子学生であった。 この学校に女子学生が半数以上いる確率を計算してください。 *) pmf[m_, N_, n_, r_] := Binomial[m, r] * Binomial[N - m, n - r] / Binomial[N, n]; total = Sum[pmf[k, 600, 30, 13], {k, 0, 600}]; prob = Sum[pmf[k, 600, 30, 13], {k, 300, 600}]/total N[prob] http://rio2016.5ch.net/test/read.cgi/math/1745555217/213
215: 132人目の素数さん [sage] 2025/04/28(月) 14:01:36.81 ID:FqERNgkc >>213 Rだと分数表示させるのが面倒。経験上、gmpは今ひとつ信頼性にかける。 library(gmp) # Hypergeometric PMF (returns a fraction) pmf = function(m, N, n, r) { num = mul.bigz(chooseZ(m, r), chooseZ(N - m, n - r)) den = chooseZ(N, n) as.bigq(num, den) } N_total = 600 # Total number of students n_sample = 30 # Number of sampled students r_observed = 13 # Number of girls observed in the sample # Precompute the denominator once denominator = chooseZ(N_total, n_sample) # Vector of all possible m (0 to 600) m_vec = 0:N_total # Use sapply pmf_vec = sapply(m_vec, function(m) { num = mul.bigz(chooseZ(m, r_observed), chooseZ(N_total - m, n_sample - r_observed)) as.bigq(num, denominator) }) # Total probability (normalization constant) total = Reduce('+', pmf_vec) # Sum over m >= 300 numerator = Reduce('+', pmf_vec[301:601]) # 301:601 because R is 1-based indexing # Conditional probability prob = numerator / total # Display result print(prob) # Fraction output print(asNumeric(prob)) # Numeric (decimal) output if needed http://rio2016.5ch.net/test/read.cgi/math/1745555217/215
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.035s