大家好,今天小编关注到一个比较有意思的话题,就是关于C语言蒙特卡洛的问题,于是小编就整理了2个相关介绍C语言蒙特卡洛的解答,让我们一起看看吧。
随机模拟如何设置随机数?
随机模拟方法,也称为Monte Carlo方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战期间进行的研制***的“曼哈顿***”。该***的主持人之一、数学家冯·诺依曼用驰名世界的***--摩纳哥的Monte Carlo来命名这种方法,为它蒙上了一层神秘色彩。冯·诺依曼是公理化方法和计算机体系的领袖人物,MonteCarlo方法也是他的重要贡献。
事实上,Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用***发生的“频率”来近似***的“概率”。18世纪下半叶,法国学者Buffon(蒲丰)提出用投针试验的方法来确定圆周率的值。这个著名的Buffon试验是Montc Carlo方法的最早尝试。
蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。
这个术语是二战时期美国物理学家Metropolis执行曼哈顿***的过程中提出来的。
蒙特卡洛模拟方法的原理是当问题或对象本身具有概率特征时,可以用计算机模拟的方法产生抽样结果,根据抽样计算统计量或者参数的值;随着模拟次数的增多,可以通过对各次统计量或参数的估计值求平均的方法得到稳定结论。
并行计算在Quant中是如何应用的?
Quant 中经常会用到很多机器学习和优化算法,很多算法比如说常用的蒙特卡洛模拟方法能够很自然地并行实现,如果***用并行计算则必然能够极大地提高计算效率,加快计算时间,更快地作出决策和发出交易指令,更好地抓住稍纵即逝的机会,这对进行高频交易尤其有用。另外如今的金融数据量也越来越大,适当地将数据分布到多个计算节点或者多个处理器上,能够降低对单台计算节点或者单个处理器的性能要求,也能降低对机器内存、网络带宽等其他***的需求。
目前做 Quant 非常常用的是 python 编程语言,如国外最流行的 Quantopian,国内的 JoinQuant,uqer 等都使用的是 Python 语言。用 Python 做并行计算的途径有很多,比如说使用标准库中的 [threading 模块](***s://docs.python.org/2/library/threading.html)进行线程级别的并行,[multiprocessing 模块](***s://docs.python.org/2/library/multiprocessing.html)进行进程级别的并行,[concurrent.futures 模块](***s://docs.python.org/3/library/concurrent.futures.html)实现异步并行,使用 [IPython.parallel 模块](***s://ipython.org/ipython-doc/3/parallel/index.html)进行多种方式的并行,使用 [mpi4py 包](***s://pypi.org/project/mpi4py/)进行 MPI 消息传递并行计算,等等。如果可以使用 C/C++,Fortran 或者使用 cython 为 Python 编写扩展模块,还可以使用 OpenMP 并行。我的个人[简书专题](***s://***.jianshu***/c/5019bb7bada6)和 [CSDN 博客专栏](***s://blog.csdn.net/column/details/26248.html)中有对用 Python 做并行计算的专门介绍并提供了大量的程序实例。有需要或者感兴趣的可以了解下。
到此,以上就是小编对于C语言蒙特卡洛的问题就介绍到这了,希望介绍关于C语言蒙特卡洛的2点解答对大家有用。