| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1202 人关注过本帖
标题:概率这东西 能控制吗
取消只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:100 回复次数:6 
概率这东西 能控制吗
程序代码:
#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
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
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
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
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用TAAAAB在2015-6-2 15:29:22的发言:

既然是随机,那会不会就算一千次一万都都不会产生

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



对 我认为可能运行10000次 也未必能出一次6个6   所以想控制

DO IT YOURSELF !
2015-06-02 15:48
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};
    int j;
    for(int k=0;k<20;k++)
    {
        for(j=0;;j++)  
        {
            for(int i=0;i<6;i++) bs[i]=rand()%6+1;
            if(bs[0]==6 && bs[1]==6 && bs[2]==6 && bs[3]==6 && bs[4]==6 && bs[5]==6 ) break;
        }
        printf("累死我了,计算到%10d次 才遇到一次机遇\n",j);
    }
    return 0;
}
/*
累死我了,计算到     45861次 才遇到一次机遇
累死我了,计算到     72988次 才遇到一次机遇
累死我了,计算到     33970次 才遇到一次机遇
累死我了,计算到    107702次 才遇到一次机遇
累死我了,计算到     26771次 才遇到一次机遇
累死我了,计算到      3443次 才遇到一次机遇
累死我了,计算到     59348次 才遇到一次机遇
累死我了,计算到    121347次 才遇到一次机遇
累死我了,计算到     13441次 才遇到一次机遇
累死我了,计算到      4628次 才遇到一次机遇
累死我了,计算到     28043次 才遇到一次机遇
累死我了,计算到     32067次 才遇到一次机遇
累死我了,计算到     14955次 才遇到一次机遇
累死我了,计算到     26271次 才遇到一次机遇
累死我了,计算到      4747次 才遇到一次机遇
累死我了,计算到      8813次 才遇到一次机遇
累死我了,计算到      6939次 才遇到一次机遇
累死我了,计算到     13409次 才遇到一次机遇
累死我了,计算到     47694次 才遇到一次机遇
累死我了,计算到     27065次 才遇到一次机遇
*/

DO IT YOURSELF !
2015-06-02 15:58
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用lianyicq在2015-6-2 16:43:33的发言:


如果问题是:要求n次中有且仅有一次全6。那就在1到n中产生一随机数i。让i次为全6,其它随机产生,但不能是全6。



这个思路挺好

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



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

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