r语言之给定的概率密度函数生成随机数
假设概率密度函数为:

思路:
首先产生-1到1之间的均匀分布随机数x,和0到1之间的均匀分布随机数y。
如果y<f(x),则x是符合该概率密度的随机数,否则,重复上述操作。
用r语言生成100个随机数程序如下:
> for(i in 1:100)
+ {x[i]=runif(1,-1,1)
+ y[i]=runif(1,0,1)
+ while(y[i]>(1-abs(x[i])))
+ {x[i]=runif(1,-1,1)
+ y[i]=runif(1,0,1)
+ }
+ }
随机数如下:
> x
[1] -0.514901637 -0.217501164 0.711344072 0.392367283 0.630612312
[6] 0.546505700 0.586900601 -0.743232092 -0.336172141 -0.889316445
[11] -0.483111145 0.262203687 0.060877270 0.375244982 0.026205739
[16] 0.164838966 0.322126824 -0.595749320 0.174984953 0.437411303
[21] 0.411043267 -0.164316747 -0.448740647 0.398710048 0.387240598
[26] -0.377926981 -0.703300728 0.607546115 0.192999553 -0.018041003
[31] -0.020166740 0.499004755 -0.735728289 0.662798617 -0.244104174
[36] 0.360975237 -0.080959949 0.194795900 0.067130172 -0.150683799
[41] 0.196463150 -0.664764840 0.080320831 -0.537401136 0.103412358
[46] 0.113238147 -0.123515784 0.013652259 0.039734034 0.403804602
[51] 0.464418256 -0.378770977 -0.323632269 -0.536819858 -0.637694909
[56] -0.443880166 0.101090029 0.020091781 -0.043975835 -0.083350927
[61] -0.154194120 -0.161078955 0.582624681 -0.128034349 -0.129948552
[66] 0.505254598 0.492040237 0.729876905 -0.317929749 0.025999713
[71] 0.219295514 0.004028297 -0.020060018 0.434986595 -0.496682210
[76] 0.367210269 -0.075623044 -0.019082523 0.369629193 -0.122305395
[81] -0.063062626 -0.041233874 0.451531802 -0.171188537 -0.533768997
[86] 0.418290247 0.952854297 0.033798765 -0.069794761 -0.671866662
[91] 0.455189073 0.133429194 -0.785471270 0.351558574 -0.551275020
[96] 0.094082693 0.216529398 -0.195531629 -0.457623412 0.103529213
画图如下:

r语言之给定的概率密度函数生成随机数的更多相关文章
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
- [转]概率基础和R语言
概率基础和R语言 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语 ...
- R语言编程艺术# 数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
- R语言实战(四)回归
本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...
- R语言编程艺术#01#数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
- R语言函数总结(转)
R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达 ...
- 用R语言实现对不平衡数据的四种处理方法
https://www.weixin765.com/doc/gmlxlfqf.html 在对不平衡的分类数据集进行建模时,机器学**算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带 ...
- R语言编程艺术(4)R对数据、文件、字符串以及图形的处理
本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ...
- R语言编程艺术(3)R语言编程基础
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...
随机推荐
- eclipse及Java常用问题及解决办法汇总
junit-test 我觉得这点比idea好用,可以直接选中要测试的方法名,右击run as即可 http://www.cnblogs.com/brolanda/p/4532779.html 打开您的 ...
- 深入浅出Win32多线程程序设计之基本概念
一.深入浅出Win32多线程程序设计之基本概念[转] 引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓 ...
- C(n+m,m) mod p的一类算法
Lucas定理 A.B是非负整数,p是质数.AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]. 则组合数C(A,B)与C(a[n],b[n])*C(a[n ...
- 有关Gcd,Lcm的一点小结论
先介绍两个: 大数的Gcd Stein+欧几里德 function stein(a,b:int64):int64; begin if a<b then exit(stein(b,a)); the ...
- 黑马程序员_<<StringBuffer,包装类>>
--------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. StringBuffer 1.概述 S ...
- Yii2简单纪要
网上经常拿Yii来类比ROR,从MVC角度,使用体验及代码风格上确实有很多相似的地方.不过看配置文件发现Yii2不止是受rails的影响,同样有不少spring的影子,最明显的就是配置文件中很多IOC ...
- 新浪微博开放平台开发-android客户端(1)【转】
http://www.cnblogs.com/virusswb/archive/2011/08/05/2128941.html 最近不是太忙,花了一些时间学习android的应用开发.经过两个星期的学 ...
- nhibernate 更新 SqlDateTime 溢出问题
最近在用nhibernate,更新实体 时遇到一个SqlDateTime 溢出问题 费力调了N久,开始以为是实体的日期格式属性未赋值,但是调试发现哪怕实体对应的日期类型属性赋值了,也会报同样的错误. ...
- js柯里化的一个应用
听到同学说面试一道题目 add(1)(2)(3)(4); 查询了下资料 这是一个js里面的柯里化 现象 add_curry防范返回的是一个 retVal,并不是执行结果.这里的代码很想递归,但是不是 ...
- using的用法
1.using指令.using + 命名空间名字.命名空间名字可以是系统本有,也可是自己定义的class. 2.using别名.using + 别名 = 包括详细命名空间信息的具体的类型. 达成条件: ...