我的总算把目前三种主要方法的高维通用程序编完了。其中Stochstic Mesh方法涉及到了多维几何布朗运动的条件密度函数,很简单基础的东西,记在这里。不过我不知道是不是这样翻译成中文,反正搜不到,总之就是Geometric Brownian Movements(GBM)。这个随机过程满足以下微分方程:

其中
是一个n维列向量,
是一个n×d维矩阵,
是一个d维列向量的Wiener过程,且其分量相互独立。这就是Black Scholes模型的多维形式。用Ito公式处理
可以知道(记住这是个向量):
,其中C是一个n维列向量,它的第i个分量是这样的:
,这里的
就是
第i行第j列的元了。
设
,我们有:

所以:

所以在已知
的前提下,
是遵循以下密度函数的:
![f(X,Y)=\bigg((2\pi)^{\frac{n}{2}} \sqrt{\det(\Delta\cdot \Gamma\Gamma^t)}\bigg)^{-1} \exp \bigg[-\frac{1}{2}(Y-X-C \Delta)^{t}(\Delta\cdot \Gamma\Gamma^t)^{-1}(Y-X-C \Delta)\bigg]](http://www.deuxmille.org/wp-content/plugins/latex/cache/tex_cacd6b0491b3862c97826ca04b2994c1.gif)
通过简单的积分时的变量替换即可知道
的前提下,
是遵循以下密度函数的:
![f(X,Y)=\bigg((2\pi)^{\frac{n}{2}} \sqrt{\det(\Delta\cdot \Gamma\Gamma^t)} \prod_{i=1}^{n}Y_i\bigg)^{-1} \exp \bigg[-\frac{1}{2}(\log Y-\log X-C \Delta)^{t}(\Delta\cdot \Gamma\Gamma^t)^{-1}(\log Y-\log X-C \Delta)\bigg]](http://www.deuxmille.org/wp-content/plugins/latex/cache/tex_ebd32c6983c468dfe6c53e7755511d58.gif)
以上推理可能并不严密,不过结果是正确的,知道这两个东西,什么就都知道了。
顺便说一句如果n=d,且
非奇异,则complete且arbitrage-free..........
整个金融行业大致分为buyside和sellside两大类。sellside做的主要是把各种asset变成各种金融产品,提供给市场。 sellside主要指的是通常意义上的投行。投行内部结构也很复杂,按照产品分大致分为fixedincome和equity两大类。按照业务分大致分为IBD,sales&trading,equityresearch,assetmanagement(这部分和buyside性质是类似的)等。IBD是最传统的投资银行业务,靠近的是corporate一边;sales&trading主要进行产品销售和交易,有时候投行会扮演 marketmaker的角色以保持市场的流通性。
buyside主要进行的是投资管理的业务,所以也称为IM(investmentmanagement)或者AM(assetmanagement),主要由各种机构投资者组成,包括mutualfund,hedgefund,pensionfund等等。
就careerpath来说,很难说谁好谁不好,关键看每个人的特长和个性。IBD适合工作热情高涨,吃苦耐劳的人。sales适合善于人际交往的人。trading适合能承受巨大压力,并且对市场感觉敏锐的人。
equityreasearch适合做事踏实的人。一般来说IBDcareerpath比较按部就班,需要熬年头,能熬上去的不仅需要良好的业务能力也需要强健的体魄。tradercareerpath风险很大,可能在2年之内就毁了前程,也可能在很短的时间内平步青云。我知道一个顶尖的trader从 associate升到director只用了2年。sellsideequityresearch行业前景有一定问题,因为regulation越来越倾向让research保持独立性以保护投资者。
Buyside总体来说lifestyle比sellside好,收入也超过sellside。不过,进buyside也远远难于进sellside。
注:当今金融产业之庞大和复杂远远超过常人想象,在整个金融产业链上还有着很多细分的行业,这里就不一一列举。
补充一下,帖子的职业分工主要是指成熟市场的情况。国内情况有所不同。
金融领域的开放让国内很多年轻的朋友一下子豁然开朗。不过随之而来的是扭曲的价值观:进投行的是牛人,进四大的是凡人,进企业的是土人之类。在此还想表明以下我一向的观点:工作本身没有等级之分,我决不赞成投行就比四大“高级”之说。任何一个人能在本行干的出色的才是牛人。选择职业道路应该看自己喜欢干什么,自己能够干什么,然后尽量在二者之间取得平衡。如果一心只想往“高级”的工作钻的话,可能回头看来还是一事无成。
hedgefund中文翻译成“对冲基金”,这个翻译是准确的。不过有意思的是,现在主流的hedgefund往往做的不是hedge,相反很多 hedgefund对一些市场趋势进行大胆的speculation(中文是投机,贬义词,英语的原意是中性的,是hedge的反义词,表示承担风险而获取超常的收益)。如果把hedgefund和国内的情形联系起来看,更准确的翻译应该是“私募基金”。这个意义上而言国内存在hedgefund已经已经有些年头了,只不过因为法律界定而没有露出水面。现在管理层正在进行私募基金合法化的进程,应该很快就能成为正大光明的一支金融力量。(国内现在往往把 PE翻译成“私募基金”是不准确的,下文还有相关论述)
在成熟市场上hedgefund通常是相对于mutualfund而言。其差别是:mutualfund是公开招募,并且公开交易的开放型基金。国内市场上交易的开放型基金大多数属于mutualfund。而hedgefund则大多是私下招募,并且封闭的基金。
在全球金融市场,hedgefund已经成为一支举足轻重的角色。从东南亚金融危机到最近两年的商品期货的超级牛市都可以见到hedgefund的身影。由于hedgefund收益率普遍高于mutualfund,最近几年全球范围的hedgefund都取得了快速的成长。再加上全球性资本过剩,现在几个 billion的fund都算很小的。
稍微提一下对冲的概念。对冲是一种控制金融风险的手段。举个例子来说,如果你买了100股股票,然后又担心股票下跌,你就可以再买一个认沽100股的期权(putoption)进行对冲。最后无论股票怎么跌,最差的结果就是你以putoption的执行价(strike)卖掉手中的股票。
和对冲相关但比较容易混淆的概念是套利(arbitrage)。套利是指把所有相关风险完全对冲掉以后可以获取的无风险收益。比如说中国银行的美元牌价是 8,门口黄牛的牌价是7.8,你可以用7.8人民币从黄牛那里换1美元,随后马上拿一美元换给BOC变成8元人民币,毫无风险的赚了0.2元。
就职业而言buyside和sellsidelink最多的是tradingdesk。双方的人马几乎是对应的。基本上都设有:trading,structure和research几块。一般来说sellside研究力量更为强大,buyside很多基本信息都依靠 sellside取得。sellsidestructure侧重的是如何将金融产品合理定价,而buyside侧重于如何搞出模型更好的预测市场的变化。(本质是一样的)双方的trader做的事情倒是殊途同归。
当投行根据buyside要求设计出金融产品后,双方达成交易。然后投行一般会尽快地通过相关交易对冲产品风险,而buyside这时候一般是“一切尽在掌握”,因为买到手中的产品完全是根据自己的判断而订制的。这时候,双方是合作伙伴关系,大家赚自己的利润。另外有些时候,投行也会 takeposition,这种时候双方都是marketplayer,关系也就变成你死我活的博弈了。
把业务上的link讲完后,职业上的link也就水到渠成了。双方trader作的事情十分接近,互相之间的跳槽也就十分普遍。research而言,投行的比较focus也比较辛苦,所以一般更加愿意往buyside跳,不过buyside本来也不需要很多的research,跳槽并不容易。 structure是双方都需要的,虽然侧重不同,但都是通的,互相之间都有跳。
上面说的都是投行的市场一头。回过头说IBD(传统投行业务),更多的是和企业打交道,而不是和市场打交道。反之,buyside都是和市场大交道。所以IBD一般不容易转buyside。
由于国内这些年出现了很多成功风投的案例,大家已经不太陌生,这里简单的介绍一下PE。
国内很多地方把PE(privateequity)翻译成“私募基金”,这显然是不熟悉金融市场的人“顾名思义”所致。诚如上文所述,私募基金接近于 hedgefund的概念(相对于mutualfund)。而PE是一个相对于publicequity的概念。我个人将其翻译成“非上市融资”,现在国内比较被认可的翻法是“私人股权融资”。
现在vc/pe是一个很时髦的词,无论在美国还是在国内。在美国火爆的原因是最近几年PE的收益率都明显好过publicmarket,导致PE的规模快速膨胀。在国内火爆的原因就比较复杂了。
其实现在vc/pe差异已经不是十分明显,很多时候人们把VC看成是pe的一种。如果进行划分的话,二者主要区别在于对targetcompany投资阶段的不同。vc主要投资于公司发展早期,从种子阶段到上市前不等。而pe主要投资于有稳定现金流,businessmodel比较成熟的公司。PE最经典的做法是LBO(leveragebuyout),核心是将现金充沛而又失去发展动力的上市公司goprivate,通过大财务杠杆使公司有紧迫感,从而为股东提供更大的收益。
喜欢看电影的朋友一定知道《风月俏佳人》,其中理查基尔干的就是PE。片中罗伯茨问他你到底是干嘛的,回答颇为经典:“总而言之我干的就是把一家公司买下来,然后再拆成一块一块卖”。(注:这只是PE做法的一种,并不是全部)
vc/pe是金融市场中最直接和企业打交道的分支。vc做的是整天看businessplan(bp),从中找出有前途的bp以及执行团队,随后进行价值评估以及投资。根据公司不同,有些vc会强烈的参与公司经营管理,有些则没有。pe更多的是寻找有前途的被收购公司,并且进行金融改造。
vc/pe最终的的目的都是找一个更好的价钱把公司股份卖掉推出,从而进入新的循环。具体操作方法VC/PE在其他很多地方都是不同的,有兴趣的朋友可以进一步讨论。
现在可以把金融产业链简单的串一串。在一个企业IPO之前,公司都是private的,这一阶段可以参与融资的就是VC/PE。当企业需要上市,这时投行就参与进来,对公司价值进行精确评估,然后公开招募。这时候,企业自己或者vc/pe提供的股份是原材料,投行将其加工成金融行业认可的“股票”。公开上市前后,buyside就会进行认购。接下来就是二级市场上的各方博弈了。
金融的原始定义是为买足企业发展需要进行的各种融资,因此金融必定有企业和市场两级。企业这级是金融行业的生存之本,市场这级可以看作金融行业发展壮大的动力。投行作用是金融产业链的hub,一端联系着企业,另一端联系着市场。企业这端是实实在在的,可以说资本主义出现后的几百年都没有太大的变化。而市场这一端则越来越庞大并且趋向虚无。很多衍生金融产品最早的出现是为了满足风险公职的需求,但很快变成一些豪赌的利器。会计师事务所的地位是保证企业(无论 privateorpublic)企业原始数据的真实性,从而使其他机构可以对企业价值进行进一步的评估。如果没有会计师的存在,整个金融行业就会陷入一片混乱。因而会计师有“经济警察”之称。
整体而言,金融业连接企业一端的工作核心更侧重于对于企业价值的评估,金融连接市场一段的工作的核心侧重于市场风险的控制以及对市场方向的判断。因为对技能要求的不同,两端互相转都比较困难。相反,只要在金融产业链的同一端,转行至少都是有逻辑上的可行性的。
源地址:http://blog.renren.com/GetEntry.do?id=309127567&owner=236062316
相信很多人对CMU的MSCF项目垂涎已久,下面把这个项目相关的课程介绍贴出来与大家分享!
Full-Time Course Sequence
Earning the MSCF degree requires the satisfactory completion of twenty-five MSCF courses (150 units). (The MSCF program reserves the right to change course times and offerings at any point during the academic year.)
Fall 1: August 25 to October 18, 2009
Probability
Macroeconomics for Computational Finance
MSCF Finance
Presentations for Computational Finance
Financial Computing I
Fall 2: October 22 to December 17, 2009
Statistical Inference
Fixed Income
Multi-Period Asset Pricing
Options
MSCF Deutsche Trading Competition
Spring 3: January 12 to March 6, 2010
Linear Financial Models
Stochastic Calculus for Finance I
Financial Computing II
Financial Products and Markets
Spring 4: March 16 to May 6, 2010
Financial Time Series Analysis
Financial Computing III
Stochastic Calculus for Finance II
Simulation Methods for Option Pricing
Fall 1: August 24 to October 17, 2010
Statistical Arbitrage
Financial Computing IV
Studies in Financial Engineering
Advanced Derivative Modeling
Fall 2: October 21 to December 16, 2010
Numerical Methods
Choose three of four
Quantitative Asset Management
Financial Economics for Computational Finance
Topics in Quantitative Finance
Credit Derivatives 点我阅读更多
今天 是10年6月CFA出分的日子,相信很多考了6C的朋友这一整天压力都相当大,当然也包括我。一直都受好友所托,可一直因为种种事情拖宕,现在正好抽查成 绩的这点时间写篇短文为还没参加但对这个考试有兴趣的朋友简单介绍一下CFA考试和一、二级的复习准备过程,希望能对有志往金融业发展的朋友有点用处,也 就不枉此文了。我才疏学浅,而且还没考完全部3级,所以全文疏漏偏颇之处还请各方高手牛人多多指正批评。声明一点,此文绝非言情、科幻、恐怖、文艺类文 章,读起来会相当无聊,所以个人比较推荐对金融行业和CFA考试有兴趣的朋友看,不然回头挨喷说我写东西这么没劲就太不给力了。
首先是对CFA及其历史的基本介绍。什么是CFA?CFA是“Chartered Financial Analyst”的简称,中文名叫“特许金融分析师”, 它是证券投资与管理界的一种职业资格称号,由美国“特许金融分析师学院”(ICFA)于1962年发起成立,每年在全球范围内举行资格考试。CFA 协会主办的CFA课程和考试被认为全球投资专业里最为严格的考试,在投资知识、专业标准及道德操守方面制定了全球准则。CFA特许状持有人可以向其客户、 雇主和同事表明他已经修读了一套严谨的专业课程,知识涵盖了广泛的投资领域,并且承诺遵守最高的职业道德准则。因此,CFA资格被投资业看成一个“黄金标 准”,投资者也希望找到那些持有CFA特许状的专业人士,因为这一资格被认为是投资业界中具有专业技能和职业操守的承诺。
根据我的了解,CFA在国内的认可度相对而言较好,这当然有多方面因素。其中一个重要原因就是国内金融行业发展非常迅速,金融管制逐步放开,但金融业的 资格认证一直没有跟上产业发展的脚步,迄今为止只有一个证券从业资格考(SAC)比较有名(这个后续日志会详细介绍),所以一开始从香港金融业学习引入的 CFA考试就非常受国内基金、券商重视。如果仔细看国际大投行的研究报告或者其员工介绍,不难发现很多从业者都是CFA持有者,这其实也从一个侧面促进提 升了全行业的专业程度和入门门槛。所以如果你有疑问,担心考这个试没有什么用处,那你大可放心。我不敢夸张,但保守估计CFA资格可以保证你的简历在金融 业(基金、券商、投行)的HR手中多停留40秒到一分钟。而且更为重要的是,CFA考试对于一个人的意义不仅仅在于它是求职的敲门砖,更多的是对整个金融 体系的了解和认识,对于自身金融知识的一次全新整合,也是对于意志品质的磨练。记得一个学长曾经告诉我,考过CFA3级之后,其他考试基本都不用害怕了。 总结来说,CFA是一个费力但讨好的资格考试,付出与回报基本成正比。
上面简要介绍了一下CFA的基本信息和价值所在,下面具体来看CFA究竟长什么样子。CFA考试一共有三级,分为LEVEL 1 2 3。以3级相对最难,1级相对最易。CFA的考试分为每年6月和12月两次考试,其中6月有1、2、3级的考试,而12月只有1级的考试,所以最好提前规 划好时间,看大概需要几年考完。个人推荐12月考1级,来年6月考2级,这样连贯性会比较好,因为1级的知识在2级中还会有较多应用,而且一鼓作气,不易 懒散下来。从我个人体会,CFA就是在几个月的复习过程中不断跟自身懒惰做斗争的痛苦历程,所以要尽量避免战线拉得过长。另外极少有人会考过1级后不继续 拿下2、3级,沉没成本大家都清楚,1级对于求职和之后的发展用处并不是特别大,所以个人强烈推荐咬咬牙坚持考到底。
具体到考试本身而言,CFA考试是全英文考试。从教材到辅导书到试卷都是英文的,所以对英语阅读要求相对较高。此外,CFA1、2级的考试全部都是3选 1单选题,到了3级才会碰到需要写自己想法的论述题。CFA考试内容分为几大块:Alternative Investments、Corporate Finance、Derivatives、Economics、Equity Investments、Ethical & Professional Standards、Financial Reporting & Analysis、Fixed Income Investments、Portfolio Management和Quantitative Methods。基本涵盖现代金融的方方面面,非常繁杂。复习过程会在后面具体谈到。1级的考试是上下午两个session各3个小时,每个 session有120道题。题目之间是独立的,前一题答案对后面题目的解答没有任何影响。2级考试也同样在上下午各3个小时2个session,每个 session各60道题目。2级同1级相比区别最大的地方在于:2级的题目是类似于高考阅读理解的安排,先给你一篇长文,里面可能包括某金融领域的具体 信息,然后根据这篇长文回答后面的6个选择题。这就导致每篇文章前后题目会有较大的相关性,前面不会做后面很有可能做不出来,导致6道题全部挂掉。所以对 于2级复习要格外小心注意全面性,尽可能避免出现某个知识点没看到的情况。
如果各位看官能坚持看到这里,那我想你可能已经对CFA产生了相当兴趣,也许正在考虑报名。具体报名流程我就不赘述了,下面的链接里有图示,非常清楚,谨供参考。
报名:http://bbs.cfaspace.com/dispbbs.asp?boardid=102&Id=68476
或者:http://bbs.jjxj.org/thread-20540-1-1.html
关于报名,我想格外提醒一句:报名的时间跟报名费是挂钩的。也就是说,报名越早,费用越低。CFA报名分3个档次,最贵,很贵,和贵。每年CFA官网会 挂出来FEE SCHEDULE,这个可以关注一下网站上的信息,决定了就尽早报名,能省则省。另外我还想再多啰嗦一句,其实CFA是提供奖学金的,1级报名大家可以尽 量找大学里获得CFA MEMBER资格的老师推荐,每年每个MEMBER PROFESSOR会都有5或10个推荐名额,可以免除80%的报名费。而2、3级则可以关注CFA官网和中国官网的最新信息,申请社会奖学金,今年北 京、上海各有10个名额,大家不妨试试看。
好了,啰啰嗦嗦写了这么多,也该到最关键的复习准备过程了。因为每个人的专业背景不同,知识结构不同,时间安排不同,经济条件不同,所以我这个准备历程 并不具有典型性,只供参考。我的专业背景是金融,知识结构以金融学和数学为主,时间上我是去年12月和今年6月分别考的1、2级,正好赶上大四毕业年,所 以相对不是那么紧张,经济条件上由于我属于完全自费,所以选了最省钱的复习方式。
复习方面,首先要提的是资料。工欲善其事,必先利其器。我1、2级都只看了KAPLAN出版社的那套NOTES,也就是基本上学校里所有打印店的门口都 会挂出来的“新到CFA2010复习资料”。我个人不推荐去打印店买,纸质不好印刷也有瑕疵,比较推荐淘宝网店。除了价格优势外,淘宝网店还会给你提供一 堆光盘和乱七八糟的纸版资料,比如历年的Sample Exam,比如1、2级复习提纲。而且还有五花八门的套餐可以选,比如还没买计算器的朋友可以直接一套收了,价格也就更有优势。
我复习1、2级都是只看NOTES没看教材。但由于教材是必买没得选,所以可以时不时拿来做参考。我非常不推荐以复习教材为主,因为里面内容实在过多 了,很多都是废话,看起来效率太低。NOTES的最大优势在于简明扼要的把知识点、考点列出来,辅以讲解和习题来巩固,比较符合普遍的自学规律。而且 NOTES覆盖了全部考点,不用担心真实考试里碰到NOTES上没有但教材里有讲的考题这种小概率事件。
1、2级的NOTES都有5本,我分别来介绍一下吧。1级的NOTES按本来说大致分为道德、经济学、财务报表、公司金融和衍生品,每本里面还穿插着其 他内容,比如道德那本会讲一些数量的内容,衍生品那本则会讲一些债权市场的内容。但最重点的就是上面说的那些板块。我复习1级的时候是从第1本和第3本, 也就是道德和财务报表入手的,因为这两部分是公认最难的地方。大致花了三周时间看完,之后那3本基本是一周一本。所以第一遍复习一共用了6周时间一个半 月,每天看大概2、3个小时。之后用了一周时间集中复习巩固了一遍,然后用一周模考,主要用的是官方的MOCK EXAM和SAMPLE EXAM,没有采用KAPLAN的PRACTICE BOOK 6&7,因为那上面的过难,对于考试没有太多指导意义。所以整个复习过程大概在2个月上下,平均每天2个小时,最后2周投入的时间会多于平均水 平。就我的个人经历和周围考了1级的朋友介绍来看,1级不是很难,不必太担心考不好,只要按照上面说的时间安排规划好整体的复习,一个点一个点的掌握,最 后问题不会太大的。总结来看,1级的复习重点在于道德和财报,其中以财报更为麻烦,需要格外小心。大致投入时间在180-220个小时。
2级则相对1级复杂一些,复习方法我并没有沿用1级的,因为根据过来人的介绍2级更关注股权投资、资产估值、兼并并购等方面内容的掌握。对应的内容是第 四本,EQUITY INVESTMENT。而且2级的道德跟1级的变化不大,题目除了变成阅读理解的形式外也没有更难,所以不需要特别重点复习。我还是按照1级的时间规划, 也即提前两个半月动手,中间去厦门毕业旅行剔除1周后净剩9周。这次以财报和股权投资那两本为主,还是用3周时间搞定,每天投入时间大约3-4个小时。之 后用2周半把道德、公司财务和衍生品看一遍,用一周半整体复习一遍,再用2周模考和查缺补漏,模考还是用MOCK EXAM和SAMPLE EXAM,依旧没有采用KAPLAN的PRACTICE BOOK 6&7。2级考试相对1级会更有挑战,除了题型变化要求对知识点的掌握更加牢固熟练以外,更重要的是要面对更难更深入甚至从来没见过的内容。所以 整个算下来花在2级上的时间大概有280-300个小时。值得一提的是,因为知识点多且难,所以2级比1级更容易遗忘,因此定期复习非常重要。1级的时候 我基本全靠那一周时间整体复习,但2级我是每周都要复习一遍的,不然真的就白看了。
好了,就先写到这儿吧,推荐几个对准备CFA很有帮助的网站:
http://bbs.cfaspace.com/,里面有很多电子版的资料以及考试经验。
http://bbs.jjxj.org/forum-175-1.html,是一个子版,资料还可以。
http://www.cfaspace.com/CFA_Register/index.asp,可以提供代报名及其他培训,有银子的朋友可以考虑,省心省力。
关于CFA的那点小破事,我也就介绍这么多,估计再多就有人该打我了。总而言之言而总之,CFA是对自身的一种挑战,一种磨练,也是一段经历,一种提 高。如果朋友你有志于从事金融业,手里有点小闲钱,英语过了4级,有自己的空闲时间,那我觉得可以考虑CFA。趁年轻给自己增加一点小资本,面试时给别人 提供一个更倾向于选你的理由,在名片上可以印上XXXX, CFA,让HR不至于眼前一直不亮,CFA还是能够做到的。
源地址:http://blog.renren.com/GetEntry.do?id=480197908&owner=329902765
boost是专业的库,它的random可以生成高质量的随机数。但Monte carlo方法用很伪的随机数即可,要求并不高。暴力的蒙特卡洛算法更看重速度,下面来看看速度对比:
N = 1000000
boost的uniform_int(1,100)需要1864毫秒...自己的unif_int(1,100)需要241毫秒...
boost的正态分布需要990毫秒...
自己的正态分布需要456毫秒...
代码如下:
#include<ctime> #include<cmath> #include<iostream> #include <boost/random.hpp> #define PI 3.1416 using namespace std; using namespace boost; inline double unif_rand(){ //生成(0,1)的实数均匀分布 //rand(); return(rand()+0.5)/(RAND_MAX+1.0); }; inline int unif_int(int a, int b){ //生成a到b-1的整数均匀分布 return int(floor(a+(b-a)*unif_rand())); }; inline double gaussien(){ //标准正态分布的生成 return sqrt(-2.0*log( unif_rand() ) )*cos( 2.0*PI*unif_rand() ); }; void main(){ srand(static_cast<unsigned int>(time(0))); rand();//因为第一次的随机值不好,我们不要 uniform_int<> distribution(1,100); mt19937 engine; mt19937::result_type random_seed= static_cast<mt19937::result_type>(time(0)); engine.seed(random_seed); engine.seed(static_cast<mt19937::result_type>(random_seed)); variate_generator<mt19937, uniform_int<> > random_choice (engine, distribution); normal_distribution<> normal(0,1); variate_generator<mt19937, normal_distribution<> > gaussian(engine,normal); ofstream flux("test.txt"); //flux.precision(5); int N=1000000; flux<<"N = "<<N<<endl; double start, finish, duration; start=clock(); for(int i=0;i<N;i++){ random_choice(); } finish=clock(); duration=(double)(finish-start); flux<<"boost的uniform_int(1,100)需要"<<duration<<"毫秒..."<<endl<<endl; start=clock(); for(int i=0;i<N;i++){ unif_int(1,101); } finish=clock(); duration=(double)(finish-start); flux<<"自己的unif_int(1,100)需要"<<duration<<"毫秒..."<<endl<<endl; start=clock(); for(int i=0;i<N;i++){ gaussian(); } finish=clock(); duration=(double)(finish-start); flux<<"boost的标准正态分布需要"<<duration<<"毫秒..."<<endl<<endl; start=clock(); for(int i=0;i<N;i++){ gaussien(); } finish=clock(); duration=(double)(finish-start); flux<<"自己的标准正态分布需要"<<duration<<"毫秒..."<<endl<<endl; flux.close (); }
从plot的图上来看,区别不大,我还是用自己的随机数好了。
