Помощь - Поиск - Пользователи - Календарь
Полная версия: Расчет мат. ожидания с учетом закона больших чисел. Опровержение теории об "ошибке игрока" > Теория вероятностей
Образовательный студенческий форум > Высшая математика > Теория вероятностей
cfytr
Пост начинается с достаточно непонятных слов, но затем все будет изложено попроще.
Считается, что вероятность желаемого исхода не зависит от предыдущих исходов случайного события. Но в то же время Зако́н больши́х чи́сел утверждает, что среднее арифметическое достаточно большой конечной выборки из фиксированного распределения близко к математическому ожиданию этого распределения.
Основываясь на этих двух утверждениях я решил проверить справедливость первого, проведя эксперимент с "подбрасыванием монетки". Естественно в век компьютерных технологий бросать монетку никто не собирается.
Итак суть эксперимента:
1) До начала эксперимента у нас имеется 0 условных единиц.
2) Будем бросать идеальную монетку, вероятность выпадания орла=вероятности выпадания решки=0,5.
3) Перед броском, будем загадывать, что выпадет: орел или решка.
4) Если наше "предсказание сбывается", то мы увеличиваем количество условных единиц на 1, если нет, уменьшаем на 1.
Тогда плотность распределения выглядит так:
Изображение
5) После каждого броска будем вести подсчет количества выпавших орлов и количество выпавших решек.
6) Загадывать сторону монетки будем так: если орлов выпало меньше чем решек, то загадываем орла.

Теперь давайте посчитаем мат ожидание каждого броска. M(x)=1*0.5+(-1)*0.5=0
Условия для каждого броска одинаковые, а значит сколько бы раз монетку не бросали, в среднем у нас будет 0 условных единиц. Этого результата я и ждал когда писал код эксперимента. Но каково же было мое удивление, когда среднее арифметическое по результатам эксперимента оказалось >0!!!
Вот результаты 100 экспериментов, каждый начинался с обнуления всех параметров. В каждом эксперименте проводилось 100млн бросков монеток.
Код
баланс   | среднее    |максимальное
условных | арифмети-  |отрицательное
единиц   | ческое     |значение
         | каждого    |баланса
         | броска     |
______________________________
  244030 |    0.00244 |     96
  537102 |    0.00537 |    134
  500348 |    0.00500 |     64
  579780 |    0.00580 |    142
  799488 |    0.00799 |     42
  695784 |    0.00696 |     34
  726128 |    0.00726 |     74
  476026 |    0.00476 |    130
  536974 |    0.00537 |     82
  579778 |    0.00580 |    132
  836118 |    0.00836 |     36
  750650 |    0.00751 |    108
  927792 |    0.00928 |     66
  640830 |    0.00641 |     77
1013202 |    0.01013 |     74
1037648 |    0.01038 |     28
  823932 |    0.00824 |     60
  592004 |    0.00592 |     20
  842228 |    0.00842 |     38
  695802 |    0.00696 |     19
1000912 |    0.01001 |     58
  793426 |    0.00793 |     35
  878856 |    0.00879 |     62
  579744 |    0.00580 |     33
  530894 |    0.00531 |    114
  750602 |    0.00751 |     63
  372300 |    0.00372 |     84
  561408 |    0.00561 |     16
  268530 |    0.00269 |    124
  280630 |    0.00281 |     84
  341716 |    0.00342 |    144
  524718 |    0.00525 |     66
  311198 |    0.00311 |    190
  359986 |    0.00360 |    100
  500436 |    0.00500 |    134
  689588 |    0.00690 |     30
  659106 |    0.00659 |    150
  823868 |    0.00824 |     24
  695784 |    0.00696 |     54
  689596 |    0.00690 |     52
  750716 |    0.00751 |     85
  750658 |    0.00751 |     40
  860624 |    0.00861 |     61
  836124 |    0.00836 |     50
  732426 |    0.00732 |     69
  823986 |    0.00824 |     24
  683626 |    0.00684 |     22
  830082 |    0.00830 |     70
1037620 |    0.01038 |     54
  622466 |    0.00622 |    104
  579786 |    0.00580 |     24
  836104 |    0.00836 |     47
  878912 |    0.00879 |      9
  830010 |    0.00830 |     92
1013150 |    0.01013 |     35
  689688 |    0.00690 |     62
  842202 |    0.00842 |     51
  207484 |    0.00207 |    134
  659068 |    0.00659 |      4
  286798 |    0.00287 |    148
  671218 |    0.00671 |     16
  488174 |    0.00488 |    140
  671174 |    0.00671 |     68
  341736 |    0.00342 |    144
  305064 |    0.00305 |     82
  531000 |    0.00531 |    128
  536984 |    0.00537 |     52
  463824 |    0.00464 |    144
  836130 |    0.00836 |     54
  683582 |    0.00684 |     36
  671188 |    0.00671 |     96
  494318 |    0.00494 |    116
  500346 |    0.00500 |     86
  524856 |    0.00525 |    132
  799464 |    0.00799 |     38
  842178 |    0.00842 |    108
  830130 |    0.00830 |     56
  549288 |    0.00549 |     79
1037624 |    0.01038 |     82
1013240 |    0.01013 |     20
  787290 |    0.00787 |     74
  524860 |    0.00525 |     20
  750676 |    0.00751 |     40
  683588 |    0.00684 |     21
  891054 |    0.00891 |     58
  878872 |    0.00879 |     29
  793436 |    0.00793 |     60
  524806 |    0.00525 |     27
  536994 |    0.00537 |    122
  836056 |    0.00836 |     67
  311256 |    0.00311 |    108
  433226 |    0.00433 |     32
  323472 |    0.00323 |    100
  256212 |    0.00256 |     94
  384442 |    0.00384 |    132
  591846 |    0.00592 |     60
  372222 |    0.00372 |    186
  439334 |    0.00439 |    100
  537054 |    0.00537 |    114
  567518 |    0.00568 |     24
итоги:
среднее  | среднее    |максимальное
  644162 |    0.00644 |    190


А вот код программы на с++
Код

#include<time.h>
#include<iostream>
using namespace std;
int main()
{
    FILE *file=fopen("test.txt","w");
    srand(time(0));
    long double Nflip=100000000;
    long double Ntries=100;
    bool a1,a2,a;
    bool stavka=0;
    long double maxloss=0;
    long double win=0;
    long double nol=0;
    long double odin=0;
    long double maxmaxloss=0;
    long double everagewin=0;
    long double sumwin=0;
    for(long double j=0;j<Ntries;++j)
    {
        stavka=0;
        maxloss=0;
        win=0;
        nol=0;
        odin=0;
        for(long double i=0;i<Nflip;++i)
        {
            if(nol>=odin)
                stavka=0;
            else
                stavka=1;
            do
            {
                a1=rand()%2;
                a2=rand()%2;
            }
            while(a1==a2);
            if(a1==1)
                a=true;
            else
                a=false;
            if(a==true)
                ++nol;
            else
                ++odin;
            if(a==stavka)
                ++win;
            else
                --win;
            if((win<0)&&(abs(win)>maxloss))
            {
                maxloss=abs(win);
            }
        }
        if(maxmaxloss<maxloss)
            maxmaxloss=maxloss;
        sumwin+=win;
        printf("% 8.0Lf | % 10.5Lf | % 6.0Lf\n",win,win/Nflip,maxloss);
        fprintf(file,"% 8.0Lf | % 10.5Lf | % 6.0Lf\n",win,win/Nflip,maxloss);
    }
    everagewin=sumwin/Ntries;
    printf("% 8.0Lf | % 10.5Lf | % 6.0Lf\n",everagewin,everagewin/Nflip,maxmaxloss);
    fprintf(file,"% 8.0Lf | % 10.5Lf | % 6.0Lf\n",everagewin,everagewin/Nflip,maxmaxloss);
    fclose(file);
    char t;
    cin>>t;
}


Ну вот теперь я подошел к самому главному.
1)Как вы считаете чем определяются такие отличия теоретического мат. ожидания от практического средне арифметического?
2)Как можно рассчитать вероятность выпадания орла, если в прошлый раз орел уже выпадал. Ведь как показал эксперимент вероятность выпадания орла при каждом последующем броске различны. ИМХО, они должны в теории отличаться на бесконечно малую величину, но 0,644%/2=0,322% это не такая уж бесконечно малая.
malkolm
Объясните, что за колонки у Вас в таблице. Непонятно, что такое "среднее арифметическое одного броска", "баланс у.е." и т.п.
cfytr
Цитата(malkolm @ 21.11.2010, 21:14) *

Объясните, что за колонки у Вас в таблице. Непонятно, что такое "среднее арифметическое одного броска", "баланс у.е." и т.п.

"баланс у.е." - это количество условных единиц после окончания одного эксперимента, то есть после 100млн бросков монеток. Можно сказать наш выигрыш, после 100млн бросков.
"среднее арифметическое одного броска" - показывает сколько в среднем мы выигрываем за каждый бросок, считал как "баланс у.е." деленное на 100млн. бросков, этот показатель соответствует теоретическому мат ожиданию.
"максимальное отрицательное значение баланса" - показывает сколько у.е. мы максимально проиграли, понимаю что в мат статистике вместо этого показателя должна быть дисперсия или среднеквадратичное значение такой стратегии, но было лень разбираться как их измерять.
malkolm
Выбросьте свой генератор случайных чисел. Вот результат прогонки Вашей программы на двух разных машинах:

Код

   26362 |    0.00026 |   2051
    5124 |    0.00005 |   5315
   -3186 |   -0.00003 |   3413
  -13726 |   -0.00014 |  15831
     464 |    0.00000 |   3158
   18382 |    0.00018 |   1846
   18714 |    0.00019 |     42
   -1298 |   -0.00001 |   3046
    2142 |    0.00002 |   3796
   -5120 |   -0.00005 |   5323
   -2762 |   -0.00003 |   7987
    6542 |    0.00007 |   3699
   -1180 |   -0.00001 |   3789
    -226 |   -0.00000 |  12835
   14314 |    0.00014 |   2641
  -14960 |   -0.00015 |  22516
    2248 |    0.00002 |   6856
    8992 |    0.00009 |   1466
  -13430 |   -0.00013 |  14159
   10436 |    0.00010 |   4148
  -12612 |   -0.00013 |  13514
    3126 |    0.00003 |    213
   12198 |    0.00012 |   1392
   18058 |    0.00018 |   1928
   13782 |    0.00014 |  11689
   19840 |    0.00020 |    344
  -12420 |   -0.00012 |  16226
   19520 |    0.00020 |   1838
    5240 |    0.00005 |   3666
   -1244 |   -0.00001 |   2214
   10494 |    0.00010 |   3589
   -1188 |   -0.00001 |   3415
   -8092 |   -0.00008 |  13201
   13366 |    0.00013 |   1471
   10378 |    0.00010 |   1204
    3402 |    0.00003 |   6511
   -7250 |   -0.00007 |   9080
     174 |    0.00000 |   4646
   10428 |    0.00010 |   4335
     978 |    0.00001 |   6677
   -4794 |   -0.00005 |   8423
    6950 |    0.00007 |    833
  -23550 |   -0.00024 |  24763
   14282 |    0.00014 |   1749
    2042 |    0.00002 |   5381
     270 |    0.00000 |   2935
  -10856 |   -0.00011 |  12329
  -10168 |   -0.00010 |  10608
   12424 |    0.00012 |    922
   17284 |    0.00017 |   2069
   -4222 |   -0.00004 |   8796
   -1014 |   -0.00001 |   6351
    -566 |   -0.00001 |   5002
  -12760 |   -0.00013 |  16305
   12062 |    0.00012 |   1820
   -2142 |   -0.00002 |   4497
      36 |    0.00000 |  15281
   12128 |    0.00012 |   1286
  -15670 |   -0.00016 |  19880
   22388 |    0.00022 |   3792
    6884 |    0.00007 |    562
   -2254 |   -0.00002 |   6591
   -1506 |   -0.00002 |   4716
  -15926 |   -0.00016 |  16869
   -2470 |   -0.00002 |   5399
    6746 |    0.00007 |   1789
   23854 |    0.00024 |   3214
    4180 |    0.00004 |   9989
   13014 |    0.00013 |   5563
  -11604 |   -0.00012 |  15700
   16938 |    0.00017 |   3051
    5764 |    0.00006 |   4468
    9432 |    0.00009 |   2032
    9634 |    0.00010 |   4301
   -1594 |   -0.00002 |   2388
   -3072 |   -0.00003 |   8539
   15078 |    0.00015 |   1957
   13332 |    0.00013 |   1051
    2256 |    0.00002 |  11053
  -10270 |   -0.00010 |  10407
   -2532 |   -0.00003 |   5784
    1008 |    0.00001 |   3013
    8678 |    0.00009 |   6700
   -5988 |   -0.00006 |   7181
    2350 |    0.00002 |   3371
  -22938 |   -0.00023 |  25369
...

Код

   -5910 |   -0.00006 |  14302
   -1684 |   -0.00002 |  10053
   -3674 |   -0.00004 |   6542
  -13896 |   -0.00014 |  15399
   -9444 |   -0.00009 |  16324
    8164 |    0.00008 |   1072
  -20748 |   -0.00021 |  21401
  -17556 |   -0.00018 |  19409
    7450 |    0.00007 |     30
    -464 |   -0.00000 |   5393
   14578 |    0.00015 |   2733
    2914 |    0.00003 |   4407
   -2680 |   -0.00003 |   4697
   -8268 |   -0.00008 |   9757
    1162 |    0.00001 |   5090
   -6342 |   -0.00006 |  10239
    4128 |    0.00004 |   8780
  -13140 |   -0.00013 |  15489
   -9552 |   -0.00010 |   9943
   15942 |    0.00016 |   1371
   -6792 |   -0.00007 |   7190
   10804 |    0.00011 |   7068
   11680 |    0.00012 |   4698
    1526 |    0.00002 |   5989
     550 |    0.00001 |   2152
    2308 |    0.00002 |   3738
   -2636 |   -0.00003 |   3095
    1412 |    0.00001 |   7046
   -3846 |   -0.00004 |  14260
    5190 |    0.00005 |   2519
   14554 |    0.00015 |    856
    7752 |    0.00008 |   2896
  -18550 |   -0.00019 |  22068
   15138 |    0.00015 |   2826
    9282 |    0.00009 |   6566
  -13082 |   -0.00013 |  17382
   -5194 |   -0.00005 |   8144
  -14010 |   -0.00014 |  15383
   11450 |    0.00011 |   2535
  -27556 |   -0.00028 |  31020
    7942 |    0.00008 |   3174
     688 |    0.00001 |   5588
   22398 |    0.00022 |    500
   -6266 |   -0.00006 |  17106
    -576 |   -0.00001 |   6033
  -14948 |   -0.00015 |  17825
  -18566 |   -0.00019 |  19845
   -6112 |   -0.00006 |  16668
     960 |    0.00001 |   8188
    -366 |   -0.00000 |   3571
  -10356 |   -0.00010 |  14136
   -2296 |   -0.00002 |   3288
   -2378 |   -0.00002 |   7229
   13360 |    0.00013 |    943
    5542 |    0.00006 |   4843
    1818 |    0.00002 |   5304
    2652 |    0.00003 |   7887
   -2296 |   -0.00002 |   6360
  -19182 |   -0.00019 |  19582
    1498 |    0.00001 |   7198
   -6528 |   -0.00007 |  11281
  -16750 |   -0.00017 |  16803
   14692 |    0.00015 |    511
  -12828 |   -0.00013 |  15994
   12784 |    0.00013 |   5854
   12218 |    0.00012 |   5458
    4778 |    0.00005 |   3685
   -4842 |   -0.00005 |   8372
   -1714 |   -0.00002 |   2144
   -5308 |   -0.00005 |   8342
    4952 |    0.00005 |   5722
    -352 |   -0.00000 |   7258
    -314 |   -0.00000 |   5251
   13608 |    0.00014 |    184
    5868 |    0.00006 |   4338
   -7776 |   -0.00008 |  15274
    9490 |    0.00009 |   3776
   16020 |    0.00016 |   2520
   -1494 |   -0.00001 |   5116
   -4306 |   -0.00004 |   5562
  -14472 |   -0.00014 |  14569
   14282 |    0.00014 |    803
  -22394 |   -0.00022 |  28290
    1782 |    0.00002 |   6386
    8004 |    0.00008 |   2722
   19660 |    0.00020 |    756
    3200 |    0.00003 |   9798
   -2992 |   -0.00003 |  11421
   -9420 |   -0.00009 |  13473
  -21364 |   -0.00021 |  21550
    1410 |    0.00001 |  10266
   -1608 |   -0.00002 |   7994
  -14162 |   -0.00014 |  16497
   -4812 |   -0.00005 |   9918
   -7612 |   -0.00008 |   7880
    5656 |    0.00006 |   4285
    7190 |    0.00007 |   3179
    9180 |    0.00009 |   1941
   -1064 |   -0.00001 |  11190
...
cfytr
забавно) такой результат я и ждал...
malkolm, каким гсч ты пользовался?
malkolm
Завтра спрошу у сына, какой генератор на его дебиан линюксах дома и на работе smile.gif
malkolm
Обычный /dev/random в UNIX/Linux: http://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.