问题标签 [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 回答
117 浏览

python - 运行分配模拟在第一次运行后重复中断

背景
我有一群学生,他们想要的项目和各自项目的主管。我正在运行一系列模拟以查看学生最终完成了哪些项目,这将使我能够获得反馈所需的一些有用的统计数据。所以,这本质上是一个Monte-Carlo模拟,我将学生列表随机化,然后遍历它,分配项目直到我到达列表的末尾。然后再次重复该过程。

请注意,在单个会话中,每次成功分配项目后,都会发生以下情况:
+ 项目被设置为allocated并且不能分配给其他学生
+ 主管有固定quota的可以监督的学生。减 1
+ 一旦quota达到 0,该主管的所有项目都变为blocked,这与项目的效果相同allocated

代码

的作用resetData()是“重置”数据的某些位。例如,当一个项目被成功分配时,project.allocated该项目将被翻转为True. 虽然这对于单次运行很有用,但对于下一次运行,我需要被释放。

上面我正在遍历这三本字典——学生、项目和主管各一本——存储信息的地方。

下一位是分配算法的“蒙特卡洛”模拟。

randomiseStudents(1)所做的只是随机排列学生的顺序 。

Allocated是这样定义的类:

Output and problem

现在,如果我运行它,我会得到这样的输出(截断):

基本上,它在第一次运行时运行良好,但在随后的运行中直到第n次运行,在本例中为 50,只返回一个学生-项目分配对。

因此,我遇到的主要问题是找出导致这种异常行为的原因,特别是因为第一次运行顺利。

提前致谢,

阿兹

0 投票
5 回答
10171 浏览

montecarlo - 为什么使用蒙特卡罗方法?

什么时候应该使用蒙特卡罗方法?

例如,为什么 Joel 决定使用 Monte-Carlo 方法进行基于证据的调度,而不是有条不紊地处理过去一年的所有用户数据?

0 投票
1 回答
3101 浏览

excel - 如何在 Open Office 中执行蒙特卡罗模拟?

我正在尝试为我正在处理的问题生成一些范围。这些游侠将基于一堆数字的比率之和。例如,常数是 5 6 和 7。

我得到的范围是 5/x + 6/y + 7/z = S

我希望 x、y 和 z 从我拥有的数字列表中出来 - 比如 .5、.6、.7、.8、.9 和 1

因此,如果我运行 100 次迭代,我希望电子表格从该数字列表中随机填充 X 中的一个值,另一个随机选择 y,另一个随机选择 z。

就像我说的,我希望总和 S 被计算 100 次,这样我就能得到 S 的一系列值。

我一直在试图弄清楚如何在不使用宏的情况下做到这一点。

0 投票
1 回答
1752 浏览

algorithm - 随机算法的属性(蒙特卡洛,拉斯维加斯)

我现在自己学习拉斯维加斯和蒙特卡洛算法,有两个问题可能很简单,但我无法回答,如果有人可以帮助我......提前致谢

  1. 考虑问题 P 的蒙特卡洛算法 A,该问题 P 的预期运行时间在任何大小为 n 的实例上最多为 T(n),并以概率 y(n) 产生正确解。进一步假设给定 P 的解,我们可以在时间 t(n) 验证它的正确性。展示如何获得一个拉斯维加斯算法,该算法始终对 P 给出正确答案,并且最多在 (T(n)+t(n))/y(n) 的预期时间内运行。

  2. 令 0<ε2<ε1<1。考虑一个蒙特卡洛算法,它以至少 1-ε1 的概率为问题提供正确的解决方案,而不管输入如何。无论输入如何,该算法的多少次独立执行足以将获得正确解的概率提高至少 1-ε2?

0 投票
1 回答
334 浏览

arrays - 获取子例程以返回引用数组的指针,然后在 main 中取消引用它(在 C 中)

Hiya 我正在尝试为基本的 1D Monte-Carlo 集成编写代码。为此,我需要一个伪随机数列表,然后我可以将其输入到一个函数中(存储在另一个子程序中)。我已经给随机数列表一个指针,但是当我尝试在 main 中取消引用它时,我得到 "error: incompatible types when assignment to type 'double[11]' from type 'double'" 。谁能告诉我哪里出错了?我的代码可以在这里找到:

非常感谢。杰克混合泳

0 投票
3 回答
113 浏览

c - 获取一个子程序以在 C 中返回三个单独的随机数数组

我目前有一个子程序的代码来返回一个指向数组的指针。该数组是一维蒙特卡罗积分的随机数列表。我现在正在尝试做一个多维等价物,它需要 3 个随机数数组,而不是为每个数组创建一个单独的子程序,我试图制作一个返回 3 x N + 1 数组的子程序。有人可以帮我编写代码。一位朋友提到我需要一个双指针,但到目前为止,大多数网络资源都没有帮助。这是我的单数组代码:

非常感谢!杰克混合泳

0 投票
3 回答
411 浏览

objective-c - NSDecimalNumber 用于密集的科学应用?

假设我正在编写一个包含 ivars 的“DayData”类

最后四个 ivars 是该股票当天的开盘价、最高价、最低价、收盘价。

假设我在数十年(即数千天)的历史数据中使用这个类作为密集蒙特卡罗模拟背后的基本构建块类。这意味着我必须在短时间内访问这些 ivars 数千甚至数百万次,以使模拟尽可能快。

问题:我应该坚持加倍,还是应该仍然使用 NSDecimalNumber?NSDecimalNumber 到底有多快?这里有没有人为密集的科学应用测试过 NSDecimalNumber?

0 投票
5 回答
227 浏览

c - 有没有办法使用链表来简化我的蒙特卡洛代码

嗨,我的代码目前有三个函数,每个函数都会产生大量随机数。我想知道是否有一种方法可以让一个函数返回一个链表或多维数组以使其更整洁:

(从http://pastebin.com/Y5aE6XKS复制)

0 投票
1 回答
4230 浏览

multithreading - 用于蒙特卡洛积分的线程安全随机数生成

我正在尝试编写一些可以非常快速地计算随机数并且可以应用于多个线程的东西。我目前的代码是:

这可行,但通过观察资源管理器,我知道它没有使用所有线程。rand() 是否适用于多线程代码?如果没有,有没有好的选择?非常感谢。杰克

0 投票
1 回答
4059 浏览

matlab - 如何在 MATLAB 中对随机游走仿真进行矢量化

我正在用 MATLAB 重写蒙特卡洛仿真模型,重点是可读性。该模型涉及许多粒子,表示为 (x,y,z),在具有一定终止概率的一小组状态上随机游走。与输出相关的信息是终止于给定状态的粒子数。

模拟需要足够多的粒子,因此为每个粒子单独运行它的成本太高了。向量化似乎是从 MATLAB 中获得性能的方法,但是有没有什么惯用的方法可以在 MATLAB 中创建这个仿真的向量化版本?

我正在努力实现这一点——我什至尝试创建一个 (nStates x nParticles) 矩阵来表示每个粒子状态组合,但是这种方法在可读性方面很快就失控了,因为粒子从状态反弹彼此独立地陈述。我应该硬着头皮改用更适合这个的语言吗?