| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1202 人关注过本帖
标题:概率这东西 能控制吗
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:100 回复次数:16 
概率这东西 能控制吗
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
    srand((unsigned)time(NULL));
    for(int j=0;j<100;j++)   //进行100轮
    {
        int sum=0;
        for(int i=0;i<10000;i++)   //单体游戏10000次 
        {
            if(rand()%38<18) sum++;
        }
        printf("本次概率 %.2lf%%    标准数 %.2lf%%   与标准差额  %.2lf%%\n",1.0*sum/10000.0*100.0,18.0/38.0*100, 1.0*sum/10000.0*100.0-18.0/38.0*100);
    }
    return 0;
}
/*
部分测试案例如下:
本次概率 46.23%    标准数 47.37%   与标准差额  -1.14%
本次概率 47.99%    标准数 47.37%   与标准差额  0.62%
本次概率 47.62%    标准数 47.37%   与标准差额  0.25%
本次概率 47.99%    标准数 47.37%   与标准差额  0.62%
本次概率 47.24%    标准数 47.37%   与标准差额  -0.13%
本次概率 47.47%    标准数 47.37%   与标准差额  0.10%
本次概率 46.96%    标准数 47.37%   与标准差额  -0.41%
本次概率 46.69%    标准数 47.37%   与标准差额  -0.68%
本次概率 46.62%    标准数 47.37%   与标准差额  -0.75%
本次概率 47.88%    标准数 47.37%   与标准差额  0.51%
本次概率 47.71%    标准数 47.37%   与标准差额  0.34%
本次概率 47.46%    标准数 47.37%   与标准差额  0.09%
本次概率 46.51%    标准数 47.37%   与标准差额  -0.86%
本次概率 46.34%    标准数 47.37%   与标准差额  -1.03%
本次概率 47.39%    标准数 47.37%   与标准差额  0.02%
本次概率 47.67%    标准数 47.37%   与标准差额  0.30%
本次概率 47.42%    标准数 47.37%   与标准差额  0.05%
本次概率 47.89%    标准数 47.37%   与标准差额  0.52%
本次概率 46.85%    标准数 47.37%   与标准差额  -0.52%
本次概率 47.98%    标准数 47.37%   与标准差额  0.61%
本次概率 48.06%    标准数 47.37%   与标准差额  0.69%
本次概率 47.59%    标准数 47.37%   与标准差额  0.22%
本次概率 47.52%    标准数 47.37%   与标准差额  0.15%
本次概率 47.57%    标准数 47.37%   与标准差额  0.20%
本次概率 47.18%    标准数 47.37%   与标准差额  -0.19%
本次概率 46.69%    标准数 47.37%   与标准差额  -0.68%
本次概率 46.88%    标准数 47.37%   与标准差额  -0.49%
本次概率 47.33%    标准数 47.37%   与标准差额  -0.04%
本次概率 47.22%    标准数 47.37%   与标准差额  -0.15%
本次概率 47.76%    标准数 47.37%   与标准差额  0.39%
本次概率 47.45%    标准数 47.37%   与标准差额  0.08%
本次概率 47.01%    标准数 47.37%   与标准差额  -0.36%
*/
2015-06-02 10:04
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:17 
控制概率是不是就是缩小范围

人有多懒,编程就有多难。
2015-06-02 10:39
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:17 
看你的数据好像差不多

一片落叶掉进了回忆的流年。
2015-06-02 11:05
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:17 
概率是对随机事件发生的可能性的度量,是事件本身固有的可通过大量的实验来检验
那么这里的标准数 47.37%应该就是事件38里取小于18的概率
而本次概率应该认为是本次该事件发生的比例。
那么概率可以控制吗?

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 11:16
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
看一下这段代码:
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
    srand((unsigned)time(NULL));
    int bs[6]={0,0,0,0,0,0};
    for(int j=0;j<10;j++)  
    {
    lp1:
        bs[0]=rand()%7;
        if(bs[0]==0) goto lp1;
    lp2:
        bs[1]=rand()%7;
        if(bs[1]==0) goto lp2;
    lp3:
        bs[2]=rand()%7;
        if(bs[2]==0) goto lp3;
    lp4:
        bs[3]=rand()%7;
        if(bs[3]==0) goto lp4;
    lp5:
        bs[4]=rand()%7;
        if(bs[4]==0) goto lp5;
    lp6:
        bs[5]=rand()%7;
        if(bs[5]==0) goto lp6;
        printf("%2d%2d%2d%2d%2d%2d\n",bs[0],bs[1],bs[2],bs[3],bs[4],bs[5]);
    }
    return 0;
}
/*
测试案例如下:

 6 3 5 2 1 2

 3 4 6 1 4 5

 5 1 3 1 3 3

 2 2 2 4 5 4

 4 3 6 1 3 3

 6 6 6 6 3 5

 2 5 2 6 1 2

 3 5 6 4 3 4

 3 2 2 2 3 3

 2 6 4 4 3 4
*/


这是测试10次的结果,我想在100次测试中 产生6 6 6 6 6 6 的次数至少要达到1次 不能高于2次  如何实现???

DO IT YOURSELF !
2015-06-02 14:04
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
以下是引用wp231957在2015-6-2 14:04:48的发言:

我想在100次测试中 产生6 6 6 6 6 6 的次数至少要达到1次 不能高于2次  如何实现???


以100次为单位检测数据,如果出现过二次后续再出现就人为更改为其它随机值。
如果99次了还没出现一次,也可以人为更改产生6 6 6 6 6 6 。

人有多懒,编程就有多难。
2015-06-02 15:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用TAAAAB在2015-6-2 15:11:29的发言:



以100次为单位检测数据,如果出现过二次后续再出现就人为更改为其它随机值。
如果99次了还没出现一次,也可以人为更改产生6 6 6 6 6 6 。


想过  不过这样就产生了该随机数不是随机产生的  而是固定在第100次时 才会出现

DO IT YOURSELF !
2015-06-02 15:17
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(){
    int flag,count=0,COUNT=0;
    srand((unsigned)time(NULL));
    int bs[6]={0,0,0,0,0,0};
    do{
        count=0;
        for(int j=0;j<100;j++){
            flag=0;
            for(int i=0;i<6;i++){
                bs[i]=rand()%6+1;
                flag+=bs[i];
            }
            if(flag==36&&count==1){
                 j--;continue;   
            }
            if(flag==36&&count==0){
                printf("$$$$$$");
                count++;
            }
            
            for(int i=0;i<6;i++){
                printf("%2d",bs[i]);
            }
            printf("\n");
        }
        printf("\n%d\n",++COUNT);
    }while(count!=1);
    return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 15:25
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 7楼 wp231957
既然是随机,那会不会就算一千次一万都都不会产生

如果真是这样,那就舍弃随机产生的6 6 6 6 6 6(就算真的随机生成了也不要)
人为有在100次内随机产生1到2次6 6 6 6 6 6

人有多懒,编程就有多难。
2015-06-02 15:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用林月儿在2015-6-2 15:25:29的发言:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(){
    int flag,count=0,COUNT=0;
    srand((unsigned)time(NULL));
    int bs[6]={0,0,0,0,0,0};
    do{
        count=0;
        for(int j=0;j<100;j++){
            flag=0;
            for(int i=0;i<6;i++){
                bs=rand()%6+1;
                flag+=bs;
            }
            if(flag==36&&count==1){
                 j--;continue;   
            }
            if(flag==36&&count==0){
                printf("$$$$$$");
                count++;
            }
            
            for(int i=0;i<6;i++){
                printf("%2d",bs);
            }
            printf("\n");
        }
        printf("\n%d\n",++COUNT);
    }while(count!=1);
    return 0;
}



你这个都循环好些百次  我测试了一个700+

DO IT YOURSELF !
2015-06-02 15:47
快速回复:概率这东西 能控制吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017970 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved