免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2839 | 回复: 6
打印 上一主题 下一主题

数据模拟问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-07 00:31 |只看该作者 |倒序浏览
亲们,如何模拟一个来自正态总体N(20,100)的含量为50的简单随机样本比较简洁呢。需要用到Monte Carlo吗,如果用该怎么写呢?如果不用怎么写比较方便点。

求大侠们指点啊

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
2 [报告]
发表于 2014-09-07 20:46 |只看该作者
本帖最后由 huang6894 于 2014-09-07 20:50 编辑

回复 1# 我收点倦


    不是很理解你的意思。。。没怎么学过统计~如果只是要产生随机数的话,perl自带的rand函数是不能直接用来代替生成正态分布的,你可以试试Math::Random;
  1. #!/usr/bin/perl -w
  2. use Math::Random::OO::UniformInt;
  3. open OUT,"> out.txt" || die "$!";
  4. my $rnd =  Math::Random::OO::UniformInt->new(20,100);
  5. $rnd->seed( 0.123 );
  6. for( my $i =1 ; $i<=50; $i++){
  7.   print OUT $rnd->next()." ";
  8. }
  9. close OUT;
复制代码
  1. 20 39 72 26 41 49 40 99 45 95 34 89 22 20 70 59 42 84 27 56 71 98 73 84 65 23 91 25 44 99 26 21 22 65 61 72 78 51 50 22 93 37 89 64 98 70 50 96 38 62
复制代码

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
3 [报告]
发表于 2014-09-09 23:19 |只看该作者
Math::Random::OO::UniformInt
Uniform => 不是正态的 ~ {:2_172:}

回复 2# huang6894


   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
4 [报告]
发表于 2014-09-09 23:42 |只看该作者
回复 3# pitonas


    嘻嘻,我只是隐约记得这个包。。。

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
5 [报告]
发表于 2014-09-10 12:49 |只看该作者
几年我做开发,动辄一个项目代码也要超过百万行规模了。
你知道吗?没怎么正态分布过
  1. my @N = ( 20, 100 );
  2. my $count = 50;

  3. sub randn {
  4.     my ( $W, $G2, $c ) = @_;
  5.     my $G  = sqrt $G2;
  6.     my $P2 = 6.28318530;    # 2 * 3.141593;
  7.     map { sqrt( -2 * log rand ) * cos( $P2 * rand ) * $G + $W } 1 .. $c;
  8. }

  9. my @norm = randn @N, $count;
复制代码

论坛徽章:
0
6 [报告]
发表于 2014-09-10 21:15 |只看该作者
回复 2# huang6894

恩,uniform是均匀分布,normal是正态分布。
还是要谢谢大侠提供了这么一个思路。多谢呀
   

论坛徽章:
0
7 [报告]
发表于 2014-09-10 21:16 |只看该作者
回复 5# pitonas
哈哈,所以来模拟一个
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP