楼主: qaz111qaz
1219 2

一个很奇怪的问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

67%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
200 点
帖子
22
精华
0
在线时间
14 小时
注册时间
2011-6-18
最后登录
2012-5-19

楼主
qaz111qaz 发表于 2011-9-15 08:05:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
一个很奇怪的问题

分别用 VC 和 VBA 产生由 1,2 组成的伪随机数序列,序列长度为 30,来看序列中连续出现 1 的最大个数。
比如,有一个序列长度为 30, 由 1,2 组成的伪随机数序列:
1 2 2 1 2 1 1 2 1 1 1 1 1 1 1 1 2 1 1 2 1 2 1 1 1 2 2 1 2 1
则序列中连续出现 1 的最大个数是 8 。


=========================================================================
(a) 用 VC 产生一个序列长度为 30, 由 1,2 组成的伪随机数序列的程序为:

int  c[30];
  srand((unsigned)time(NULL));
  for(int i=0;i<=29;i++)
{
  c=rand()%(2-1+1)+1;
}


=========================================================================
(b) 用 VBA 在 excel 上产生一个序列长度为 30, 由 1,2 组成的伪随机数序列的程序为:

Randomize
For j = 1 To 30 Step 1
Cells(1,j) = Int(2 * Rnd() + 1)
Next j

=========================================================================
结果发现很奇怪的问题:
(1)用 VC 产生序列长度为 30, 由1,2组成的伪随机数序列, 序列中连续出现 1 的最大个数是 15,不会超过 15。(已验证了 10 亿个这样的序列,均如此)
(2)而  VBA 产生序列长度为 30, 由1,2组成的伪随机数序列,序列中连续出现 1 的最大个数很容易就超过 20 (任意每产生 2 千个这样的序列都能达到,已累计验证了 40 亿个这样的序列,均如此),有的甚至可以达到 30。(即 30 个全部是 1)


哪位高手能指点问题究竟出在哪里 ?







二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:伪随机数 sign null time rand 程序

沙发
475896642 发表于 2011-9-15 08:18:51
好久没来了,帮顶
可是怀念 竟比失去 还要更难受

藤椅
suzhouquan 发表于 2011-9-15 08:39:45
会不会是随机种子的问题??

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-11 07:28