楼主: tingmu
5072 4

[问答] 这个估计怎么做?鼠标一直是沙漏的状态,也没显示错误 [推广有奖]

  • 3关注
  • 0粉丝

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
178 点
帖子
19
精华
0
在线时间
12 小时
注册时间
2011-9-18
最后登录
2016-8-2

楼主
tingmu 发表于 2012-8-4 20:38:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请大家帮我看看下面的代码有什么问题么?为什么运行不出来,鼠标一直是沙漏的状态,也没显示错误
(题目是这样的:为了估计x的均值,x1,x2,x3,x4已被模拟出对应概率值x1=c(1,2,4),pr1=c(1/4,1/2,1/4)
,再根据这些数据,要是x的均值的估计量的标准差小于0.1,大概还要运行多少次,因为原题的x太长,所以这里我简化了)


kehou6=function(x,pr)
{ i=length(x)
  y=0
  y[1:length(x)]=x
  repeat
    { i=i+1
      y[i]=sample(x,1,pr,replace=T)
     
      if(sd(y)<0.1)  break
    }
   i-length(x)
}
  
x1=c(1,2,4)
pr1=c(1/4,1/2,1/4)
kehou6(x1,pr1)
二维码

扫码加我 拉你入群

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

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

关键词:怎么做 function replace length Sample function replace 标准差

沙发
qoiqpwqr 发表于 2012-8-4 20:51:52
数组y里面的数只可能是1,2,4,它的sd不可能小于0.1的,所以你的repeat循环会一直运行下去
已有 1 人评分经验 收起 理由
ltx5151 + 20 热心帮助其他会员

总评分: 经验 + 20   查看全部评分

藤椅
tingmu 发表于 2012-8-4 21:09:58
qoiqpwqr 发表于 2012-8-4 20:51
数组y里面的数只可能是1,2,4,它的sd不可能小于0.1的,所以你的repeat循环会一直运行下去
原来是这样,但是我就是按照题目中给的x来弄得原题中的x是这样的
10,11,10.5,11.5,14,18,13,6,15,10,11.5,10.5,12,8,16,5
他们的概率我就是按照频数/16来计算的,可还是一直循环下去。

这个又是怎么回事呢》难道我编的程序方法是错误的?

板凳
meishanjia1900 发表于 2012-8-5 01:17:04
首先做个实验,稍微改造一下你的程序,其目的是看看每一次循环所对应的y的标准差sd(y)的值为多少:

x = c(10,11,10.5,11.5,14,18,13,6,15,10,11.5,10.5,12,8,16,5)
pr = rep(1 / 16, 16)
i = length(x)
y = 0
y[1:length(x)] = x
repeat
{ i = i + 1
  y[i] = sample(x,1,pr,replace=T)
  print(sd(y))
  if (i > 199) break
}

循环了很多次,但输出绝大部分都在3以上!

你希望它小于0.1,这简直就是天方夜谭!

你是不是把题目理解错了?

你所给的程序中有一句我很在意—— if (sd(y) < 0.1)  break

注意,此时你是在对全体的y求sd,那么得出的数字铁定大于0.1!

我猜想,题目可能是让你对y新产生的后n位滚动式求sd(),直到sd值小于0.1为止!

这还有可能!比如n = 2时,只要连着出现两次同一个数,repeat就会停止。


已有 1 人评分经验 论坛币 收起 理由
ltx5151 + 20 + 5 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 5   查看全部评分

报纸
tingmu 发表于 2012-8-5 21:14:53
meishanjia1900 发表于 2012-8-5 01:17
首先做个实验,稍微改造一下你的程序,其目的是看看每一次循环所对应的y的标准差sd(y)的值为多少:

x =  ...
嗯,谢谢,还需要好好消化一下
因为我刚开始接触这些,很多知识理解的不深。完整的原题是这样的:

为了估计E[X],X1,X2,……X16已经被模拟出,其数据如下10,11,10.5,11.5,14,18,13,6,15,10,11.5,10.5,12,8,16,5
再根据这些数据,如果我们要使E[X]的估计量的标准差小于0.1,大概还需要运行多少次

不知道是我理解错了还是题目错了呢?如果题目没错,那该如何写才能实现呢?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 03:41