24小时热门版块排行榜    

查看: 1628  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

shugq_2009

新虫 (小有名气)


[交流] 【求助】用rand命令怎么产生各占一半的两个随机点

我现在想用rand命令产生各占一半的1和2两个随机数,我不知道用什么命令实现各占一半,望赐教,谢谢。下面是我产生1和2两个随机数的程序
srand((int)time(0));
for(int i=0;i<10;i++)
{
        printf("%d\n",1+rand()%2);
}
        return(0);
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


CODE:
#include
#include
#include
int getrand(int* a, int n)
{
    int b[50];
    int c = 0;
    int idx = 0;
    memset(b, 0, 50*sizeof(int));
    srand(time(0));
    for(int i = 0; i < 50; i++)
    {
        b[i]=(int)(rand() % 2) + 1;
    }

    for(int i = 0; i < 50 - n; i++)
    {
        c = 0;
        for(int j = i; j < i + n; j++)
        {
            if(b[j] == 1)
                c++;
        }
        if(c == 5)
        {
            idx = i;
            break;
        }
    }

    memcpy(a, b+idx, n*sizeof(int));
    return idx;
}

对代码进行1千万次调用,耗时30秒,idx的期望大约在4~8这个范围。
8楼2010-12-14 12:57:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

holmescn

金虫 (正式写手)


★ ★
余泽成(金币+2):辛苦辛苦! 2010-12-12 20:59:52
恩,烧死100个脑细胞后,想到一个方法,不过效率不高。
因为rand近似是均匀分布的, 所以你如果需要10个1、2的均匀分布且各占一半的话,不如产生20个,然后从左到右数十个数,计算一下是不是各5个,如果不是,就换下一组。如果满足就返回。如果都不满足,就重新再生成一次。
2楼2010-12-09 18:50:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)


★ ★
余泽成(金币+2):谢谢应助! 2010-12-12 21:01:42
我觉得直接LZ那样就行了,从概率上说1+rand()%2的可能只有1,2,其概率都是0.5.
各占一半是从概率上说的,并不是说100个数里面两个数一定得各50个。个人理解,呵呵。
int rand_two(void)
{
       return 1+rand()%2;
}
引用回帖:
Originally posted by holmescn at 2010-12-09 18:50:09:
恩,烧死100个脑细胞后,想到一个方法,不过效率不高。
因为rand近似是均匀分布的, 所以你如果需要10个1、2的均匀分布且各占一半的话,不如产生20个,然后从左到右数十个数,计算一下是不是各5个,如果不是,就 ...

3楼2010-12-11 23:24:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)



余泽成(金币+1):鼓励讨论! 2010-12-12 21:02:00
引用回帖:
Originally posted by tjyl at 2010-12-11 23:24:33:
我觉得直接LZ那样就行了,从概率上说1+rand()%2的可能只有1,2,其概率都是0.5.
各占一半是从概率上说的,并不是说100个数里面两个数一定得各50个。个人理解,呵呵。
int rand_two(void)
{
       return 1+r ...

我觉得是你没理解LZ的意思(要不就是我没理解对)
LZ想要一组数, 1 和2在里面均匀分布,且个数正好是各占一半。

虽然LZ的算法在理论上成立,但不能满足各占一半这个要求。
所以我认为我的算法,虽然效率不高,但能够满足这两点要求。
4楼2010-12-12 12:30:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 Aj1rhIDL5ixY 2026-09-14 4/200 2026-09-17 04:52 by k06BKNblrGRH
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 40ms4Wlo4umh 2026-09-14 4/200 2026-09-17 04:26 by k06BKNblrGRH
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +5 40ms4Wlo4umh 2026-09-14 5/250 2026-09-17 04:14 by k06BKNblrGRH
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 23jxep3nCNZb 2026-09-14 4/200 2026-09-17 04:04 by k06BKNblrGRH
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 6F5UbRU2I5hL 2026-09-14 5/250 2026-09-17 03:14 by Tql5LQhh5rLK
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 s3fFTmArrBt6 2026-09-13 4/200 2026-09-17 02:26 by Tql5LQhh5rLK
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 3n8v2C8RimXI 2026-09-13 5/250 2026-09-17 01:26 by Tql5LQhh5rLK
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +7 QUjhNVAcOSff 2026-09-13 8/400 2026-09-17 01:16 by Tql5LQhh5rLK
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 mibUvS8DDCwf 2026-09-15 3/150 2026-09-16 23:28 by Tql5LQhh5rLK
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 s3fFTmArrBt6 2026-09-14 5/250 2026-09-16 19:15 by rRvxEj3zorCy
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +8 QUjhNVAcOSff 2026-09-13 11/550 2026-09-16 18:37 by rRvxEj3zorCy
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +5 23jxep3nCNZb 2026-09-14 5/250 2026-09-16 18:00 by i3KBRD19ERkG
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-16 17:12 by i3KBRD19ERkG
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 s3fFTmArrBt6 2026-09-14 4/200 2026-09-16 16:51 by i3KBRD19ERkG
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 40ms4Wlo4umh 2026-09-14 4/200 2026-09-16 06:36 by LH5NkK5Ud4bh
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-16 05:27 by LH5NkK5Ud4bh
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 0pYnUiPDfdnk 2026-09-14 3/150 2026-09-15 19:35 by CgyNCDVNhGVg
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 s3fFTmArrBt6 2026-09-14 5/250 2026-09-15 16:59 by CgyNCDVNhGVg
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 23jxep3nCNZb 2026-09-14 3/150 2026-09-15 09:38 by VMDqgnlKimtZ
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 LwdutQ8HoqWP 2026-09-13 4/200 2026-09-14 16:13 by Aj1rhIDL5ixY
信息提示
请填处理意见