问题标签 [montecarlo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2896 浏览

c - 蒙特卡罗方法中的重要性抽样(在 C 中)

您好,我编写了一个代码,该代码使用“粗略的”蒙特卡罗采样技术成功地逼近了一维、二维和三维积分。我现在想通过使用“重要性抽样”来改进这一点,因为显然这可以减少方差。我已经阅读了一些关于此的网页,但似乎没有一个特别清楚。我将如何实现这样的事情?非常感谢。杰克

0 投票
2 回答
2290 浏览

c++ - 存储部分和的二叉树:名称和现有实现

考虑一个由n 个正实数组成的序列 ( a i ) 及其部分和序列 ( s i )。给定一个数x  ∊ (0,  s n ],我们必须找到i使得s i −1  <  x  ≤ <em>s i。此外,我们希望能够更改其中一个a i,而不必更新所有部分和。两者都可以通过使用带有a i的二叉树在 O(log n ) 时间内完成's 作为叶节点值,非叶节点的值是各个子节点值的总和。如果n已知且固定,则树不必是自平衡的,并且可以有效地存储在线性数组中。此外,如果n是 2 的幂,则只需要 2 <em>n - 1 个数组元素。参见 Blue 等人,Phys。Rev. E  51 (1995), pp. R867–R868 申请。鉴于问题的通用性和解决方案的简单性,我想知道这个数据结构是否有特定的名称以及是否有现有的实现(最好是 C++)。我自己已经实现了它,但是从头开始编写数据结构对我来说似乎总是在重新发明轮子——如果以前没有人做过,我会感到惊讶。

0 投票
1 回答
930 浏览

perl - 如何开始在 Perl 中对财务数据进行蒙特卡罗模拟?

我需要为一些金融交易创建一个蒙特卡洛模拟器。输入将是:

  • 最终盈利的交易的平均百分比
  • 每笔交易的平均利润
  • 每个时间段的交易数量

我查看了Math::Random::MT::Auto Perl 模块,但不确定如何制定模拟器的输入。

鉴于我正在使用的输入,任何人都可以提供一些关于入门的建议吗?

0 投票
3 回答
1249 浏览

c++ - 论文中的概率密度函数,使用 C++ 实现,未按预期工作

所以我正在实现一个启发式算法,我遇到了这个函数。

我有一个 1 到 n 的数组(C 上的 0 到 n-1,w/e)。我想选择一些我将复制到另一个数组的元素。给定一个参数 y,(0 < y <= 1),我想要一个平均数为 (y * n) 的数字分布。这意味着每当我调用这个函数时,它都会给我一个介于 0 和 n 之间的数字,这些数字的平均值是 y*n。

根据作者的说法,“l”是一个随机数:0 < l < n。在我的测试代码中,它当前生成 0 <= l <= n。而且我有正确的代码,但我现在已经搞砸了几个小时,而且我懒得把它编码回来。

所以我编写了函数的第一部分,对于 y <= 0.5,我将 y 设置为 0.2,将 n 设置为 100。这意味着它必须返回一个介于 0 和 99 之间的数字,平均为 20。结果不在0 和 n,但有些浮动。n 越大,这个浮点数就越小。

这是 C 测试代码。“x”是“l”参数。

以下是一些结果(截断 5 位小数):

文章是:

http://www.scribd.com/doc/3097936/cAS-The-Cunning-Ant-System

第 6 页和第 7 页。

或在谷歌上搜索“cAS:狡猾的蚂蚁系统”。

那我做错了什么?我不相信作者是错的,因为有超过 5 篇论文描述了相同的功能。

我所有的互联网给任何帮助我的人。这对我的工作很重要。

谢谢 :)

0 投票
3 回答
583 浏览

perl - 如何有效地模拟伯努利随机变量的总和?

我正在使用 Perl 来建模一个随机变量 ( Y),它是一些 ~15-40k 独立伯努利随机变量 ( ) 的总和,X_i每个变量都有不同的成功概率 ( p_i正式地,Y=Sum{X_i}wherePr(X_i=1)=p_iPr(X_i=0)=1-p_i

我有兴趣快速回答诸如Pr(Y<=k)(在哪里k给出)之类的问题。

目前,我使用随机模拟来回答此类查询。X_i我根据它随机绘制每个p_i,然后将所有X_i值相加得到Y'。我重复这个过程几千次,然后返回一小部分时间Pr(Y'<=k)

显然,这并不完全准确,尽管随着我使用的模拟数量的增加,准确性会大大提高。

你能想出一个合理的方法来得到准确的概率吗?

0 投票
3 回答
1198 浏览

c - 在 C 中限制程序的执行时间(蒙特卡洛技术)

我正在研究一个没有确定算法可以使用 C 语言解决的项目。我正在使用蒙特卡洛技术来解决这个问题。以及我想限制在用户指定的执行时间范围内的随机猜测次数。这意味着我想充分利用用户定义的执行时间限制(作为命令行参数)来进行尽可能多的随机迭代。我可以检查循环条件到目前为止已经过去的执行时间吗?

如果是这样,我该怎么做?或者,如果还有其他方式,也欢迎。谢谢你。

PS 我正在使用 Code Blocks 10.05 进行编码和 GNU 编译器。

0 投票
3 回答
1046 浏览

c++ - c++多线程优化

在我的代码中,我有 2/4 个线程执行蒙特卡罗模拟。他们每个人都进行了许多实验,他们都将结果收集到一个 stl 向量中。我的问题是:假设每个线程依次运行 1000 个实验。是一次将结果存储到共享向量中,还是每隔一段时间存储一次更好?如果他们等到他们有一些一致的数据量,写入向量将需要更长的时间,所以我不确定第二个解决方案是否一定比第一个更好。

PS每个实验都是数值计算,所以没有IO操作。

谢谢

0 投票
4 回答
1183 浏览

finance - 用于金融报价的免费蒙特卡罗模拟器?

我正在试验我在 prolog 中编写的应用程序,我需要使用 monte carlo 模拟器来输出不同随机生成场景的价格。有谁知道在哪里可以免费找到可以做到这一点的东西?(我不是在寻找要使用的库,例如 QuantLib)

谢谢

0 投票
2 回答
2522 浏览

c# - 需要 C# Monte Carlo 模拟包

我对 C# 比较陌生,并且正在使用 Monte Carlo Simulation 做一个项目。基本上我的问题如下。

我有两个不确定的变量输入,A 和 B,它们将通过一个模型并给出输出 C。所以 C = f(A,B)。我知道 A 的概率分布(三角形)和 B 的概率分布(离散)。如何获得 C 的概率分布?

我现在所做的是,我可以根据 A 的三角分布以及 B 的离散分布生成随机数。每对随机生成的 A 和 B 给出一个结果 C。我已经运行了这个模型 1000 次,因此我可以得到 1000 个可能的 C 值。困难是得到 C 的每个值的相应概率。显然它不是 1/ 1000 除非 C 是均匀分布的。我可以使用任何蒙特卡洛模拟包/库吗?

0 投票
2 回答
339 浏览

math - 您的伪随机数生成器 (PRNG) 是否不够随机?

您是否曾经编写过因使用的(伪)随机数的质量而遇到麻烦的模拟或随机算法?

发生了什么事?

您是如何检测/意识到您的 prng 是问题所在?

切换 PRNG 是否足以解决问题,或者您是否必须切换到真正随机性的来源?

我试图弄清楚哪些类型的应用程序需要人们担心它们的随机性来源的质量,以及当这成为一个问题时人们如何意识到这一点。