統計学とか数学、確率に詳しいvipperちょっと助けて

1 : 2021/02/22(月) 19:40:07.630 ID:xW/0BOr50
いまここに、最終的に33.3…%に収束するゲームをする関数がある
しかし当然ながら100回くらいの試行だと±1%程度の誤差が出る
実測としては、100万回超の試行で小数点以下一位までは確定するんだけど
このn回試せば小数点第一位まで確定 というときのnの値を、計算で求めることはできる?

関数例(python)
def junk_em(try_times=0, round_level=1, string=True):
__true_count = 0
__for i in range(try_times):
____select = rd.choice([True, False, False])
____if select is True:
______true_count += 1
__average = round((true_count / try_times * 100), round_level)
__return str(average) + "%" if string is True else average

2 : 2021/02/22(月) 19:41:19.396 ID:xW/0BOr50
それとも実際にぶん回して確かめるしかない?
3 : 2021/02/22(月) 19:42:13.609 ID:sX9M0yXua
どこまで正確にしたい?
例えば33.3333333…%で行こうと本気で思ってるアホじゃないだろ?
33.3%として計算して良いの?
8 : 2021/02/22(月) 19:45:39.483 ID:xW/0BOr50
>>3
>>3
書いてる通り、小数点以下第一位まで確定で
当然100%確定はないので、たとえば99.999%小数点以下第一位が等しい
で。
23 : 2021/02/22(月) 20:05:32.285 ID:xW/0BOr50
条件厳密にしなかった俺が悪かった
とりあえず小数点以下第一位を示す確率が99.999%
とするとして。>>8に書いてっけど

>>21
そう

27 : 2021/02/22(月) 20:11:01.680 ID:yJLJxDJM0
>>23
例えば 20,000 回試行すると、99% の確率で±1%以内の値が出る。
これより細かい値も計算出来るだろうが、計算が面倒臭い。
28 : 2021/02/22(月) 20:12:31.320 ID:xW/0BOr50
>>27
これどういう計算式?
30 : 2021/02/22(月) 20:14:44.442 ID:yJLJxDJM0
>>28
統計で使う式。世論調査とかで使う。
4 : 2021/02/22(月) 19:43:18.687 ID:cr4jXRQv0
えーと・・・乱数とか振れ幅があるから幅が出来るんだが・・・イッチはバカなのかな?
5 : 2021/02/22(月) 19:43:51.955 ID:uiryzgVNd
数学得意だけどお呼びではないようで
6 : 2021/02/22(月) 19:44:46.956 ID:jt5RZWHg0
choice使ってたら理論的には確定しないんじゃないか?
まずは確定を定義づけよう
9 : 2021/02/22(月) 19:45:48.657 ID:RfnmMivs0
一応信頼区間定めれば計算はできる
10 : 2021/02/22(月) 19:45:57.711 ID:2MbpyWUX0
よく読んで無いけど確定はしないよ
n+1回目以降が全部trueになることもあり得るから
11 : 2021/02/22(月) 19:46:39.272 ID:+OT67tEo0
確定とか無理でしょ
有意水準設ければ二項確率の検定をすれば良いのでは
13 : 2021/02/22(月) 19:49:12.855 ID:YpR+FGtN0
計算で確定は無理
実際にぶん回しても確定は無理
14 : 2021/02/22(月) 19:50:58.036 ID:xW/0BOr50
いやいつもプログラム書くとき、まーこんくらい試せばいいでしょ?→あれちょっとブレるな→あと一桁多く試行しよう
みたいにやってたんだけど、予め精度と試行回数の比率を推定できないのかなと思って
15 : 2021/02/22(月) 19:51:41.482 ID:mVsMX9J70
何がしたいのかを具体的に言ってくれ
真の確率を知ってるんだったらそれで良いし真の確率を知らないんだったら何回やっても大外しする確率的にはずれる可能性もゼロじゃないでしょ
クラーメル・ラオの不等式が似たようなことを評価してると思うけど
17 : 2021/02/22(月) 19:54:49.487 ID:xW/0BOr50
>>15
つまり真の確率を知らないと、実際に巨大な試行回数で確かめるしかない?
18 : 2021/02/22(月) 19:57:17.629 ID:xW/0BOr50
>>17
この場合、例えば1億回試行でほぼ収束するものを
より短時間≒(100回試行とか)で予知することはできる?
傾きの近似を得るとか
20 : 2021/02/22(月) 20:01:03.415 ID:mVsMX9J70
>>17
そもそも確率である以上たまたま上ブレ下ブレすることはあるんだから確定って絶対無理だよね
中心極限定理的に真の値に近い確率が大きくなるのは事実だけど
16 : 2021/02/22(月) 19:53:31.325 ID:xW/0BOr50
失礼
import random as rd

def junk_em(try_times=0, round_level=1, string=True):
__true_count = 0
__for i in range(try_times):
____select = rd.choice([True, False, False])
____if select is True:
______true_count += 1
__average = round((true_count / try_times * 100), round_level)
__return str(average) + "%" if string is True else average

19 : 2021/02/22(月) 20:00:48.642 ID:xW/0BOr50
ちなみに局所解のない線形関数を相手にするとして。
21 : 2021/02/22(月) 20:01:30.314 ID:yJLJxDJM0
確率 p で true が返る関数がある。
これをN回試行した時に true が返る回数が確率 r で N * (p-n) 以上 N * (p-n) 以下に
収まるものとする。
この p , r , n を与えた時の N を求めたい。

こういうことか?

22 : 2021/02/22(月) 20:02:39.822 ID:/qtnugQL0
収束って言うくらいだから無限回の試行が大前提でしょ
25 : 2021/02/22(月) 20:09:51.582 ID:xW/0BOr50
いずれにしても
提示した関数は最低でも何百万回は試行しないと33.2~4%を示しうるんよ
しかし1試行に数分かかるような場合「どれくらいで収束するかし分からんし、とりあえず1億回で試してみようかな」とか言ってられないはず
超インテリな数学者はどうやって試行の目安を推定してるのかな的な。カンじゃないでしょう
29 : 2021/02/22(月) 20:14:42.359 ID:xW/0BOr50
例えば99.999精度を実試行で求めるのにかかる時間より数倍も早い時間で近似解求められるなら、それをプログラムに落とし込みたい
31 : 2021/02/22(月) 20:17:47.239 ID:/qtnugQL0
1000回試行の結果と100回試行10回の平均値は同じになるからそう簡単に早くはならないんじゃね
32 : 2021/02/22(月) 20:19:46.133 ID:xW/0BOr50
>>31
えー試行時間長い、真の収束値不明の関数相手に
物理で殴りかかるしかないの?
マジで?
33 : 2021/02/22(月) 20:21:38.145 ID:yJLJxDJM0
>>32
「戦は数だよ、兄貴」
34 : 2021/02/22(月) 20:26:58.305 ID:xW/0BOr50
数学ってもっと万能で、数学者はもっと賢いのじゃないのか

抽象的な例だけど、じゃー1回の計算に1年かかって何らかの数値を返す真の収束値不明な線形関数xがあったとして
ある程度の収束値の検討をつけるためには何十年もかかっちゃうしかないわけ?

35 : 2021/02/22(月) 20:28:32.101 ID:+a9t0Yp40
正規分布に従うって事でいいの?
36 : 2021/02/22(月) 20:29:43.120 ID:/qtnugQL0
1億台くらいの計算機があれば1年で終わるでしょ
37 : 2021/02/22(月) 20:32:07.439 ID:BVcNT1yk0
最終的に1/3に収束するってところだが例えばある周期で繰り返すゲームなら存在するが完全な乱数見たいのなら存在しないだな

コメント

タイトルとURLをコピーしました