标签: simulation

Haskell中的程序设计:如何在没有可变性的情况下进行模拟

我有一个关于设计我正在Haskell中工作的程序的最佳方法的问题.我正在写一个物理模拟器,这是我在标准命令式语言中做过的事情,通常主要的方法看起来像:

while True:
  simulationState = stepForward(simulationState)
  render(simulationState)
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Haskell中做类似的事情.我有一个函数step :: SimState -> SimState和一个display :: SimState -> IO ()使用HOpenGL来绘制模拟状态的函数,但我不知道如何在各种"循环"中执行此操作,因为我可以提出的所有解决方案都涉及某种类型可变性 当谈到Haskell时,我有点像菜鸟,所以我完全有可能错过了一个非常明显的设计决定.此外,如果有一个更好的方法来构建我的整个程序,我会很高兴听到它.

提前致谢!

simulation haskell

23
推荐指数
3
解决办法
4482
查看次数

如何用c程序绘制数据?

我是一名机械工程师,对C编程知之甚少.我写了一些代码来进行模拟,我想要模拟仿真结果.目前我Dev-C用来编写我的代码.使用fopenfprintf命令我生成一个.dat包含结果的文件.然后我打开GNUPLOT程序并导入我的.dat文件以绘制结果.这需要时间,我必须等到模拟结束.有没有一种简单的方法可以连接我的绘图仪Dev-C,所以我的绘图仪在模拟过程中开始绘制数据?任何图书馆等?

c simulation plot graph gnuplot

21
推荐指数
3
解决办法
5万
查看次数

VHDL - 我应该如何在测试平台中创建时钟?

我应该如何在测试平台中创建时钟?我已经找到了一个答案,但是有关堆栈溢出的其他人已经建议有其他或更好的方法来实现这一点:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY test_tb IS 
END test_tb;

ARCHITECTURE behavior OF test_tb IS

    COMPONENT test
        PORT(clk : IN std_logic;)
    END COMPONENT;

   signal clk : std_logic := '0';
   constant clk_period : time := 1 ns;

BEGIN

   uut: test PORT MAP (clk => clk);       

   -- Clock process definitions( clock with 50% duty cycle is generated here.
   clk_process :process
   begin
        clk <= '0';
        wait for clk_period/2;  --for 0.5 ns signal is '0'.
        clk <= '1';
        wait for clk_period/2;  --for next 0.5 …
Run Code Online (Sandbox Code Playgroud)

simulation clock vhdl hardware-programming

21
推荐指数
3
解决办法
11万
查看次数

如何模拟OutOfMemory异常

我需要重构我的项目,以使其免受OutOfMemory异常的影响.

我的项目中使用了大量的集合,通过更改一个参数,我可以使我的程序更准确或使用更少的内存......

好的,那就是背景.我想做的是在循环中运行例程:

  1. 使用默认参数运行子例程.
  2. 捕获OutOfMemory异常,更改参数并尝试再次运行它.
  3. 执行第二点,直到参数允许运行子例程而不抛出异常(通常,只需要进行一次更改).

现在,我想测试一下.我知道,我可以OutOfMemory自己抛出异常,但我想模拟一些真实的情况.

所以主要的问题是:
有没有办法为我的程序设置某种内存限制,在达到OutOfMemory异常后会自动抛出?
例如,我想设置一个限制,假设我的整个程序有400MB的内存来模拟系统中有这么多可用内存的情况.
可以吗?

c# simulation memory-management out-of-memory

19
推荐指数
4
解决办法
6546
查看次数

如何模拟SerialPort交互以进行测试?

我即将开始开发一个小型应用程序(C#),通过串行端口与PLC和测试单元进行通信 - 这是我第一次进入该领域.

本质上,我将向PLC发送信号以启动操作,然后我将等待来自测试单元(将与PLC独立通信)的操作结果返回ASCII字符串.

根据该字符串的内容,我可能想收听来自PLC的信号......

这对我来说都是新手,所以目前我只是在研究System.IO.Ports.SerialPort; 题外话:那里有第三部分产品,而不是简化与串口的互动,还是内置的课程和你一样好?我想的是易用性而不是更好的功能.

但是,在硬件可用于开发和测试之前几周,我想知道如何模拟与串口之间的通信,以便我可以开始开发我的应用程序?

[我还不知道PLC和PC是如何通信的 - 我知道它将是二进制而不是文本,但此刻,这就是我所知道的.]

c# simulation serial-port

19
推荐指数
2
解决办法
3万
查看次数

Bullet vs Newton Game Dynamics vs ODE物理引擎

我正在尝试为简单的软件应用程序选择一个物理引擎.它将模拟相当少量的对象,因此性能不是一个大问题.我主要关心所涉议案的准确性.我还希望引擎在windows/linux/mac之间是跨平台的,并且可以与c ++代码一起使用.我在看Bullet,Newton Game Dynamics和ODE因为它们是开源的.但是,如果Havok/PhysX更精确,我也会考虑这些.

我似乎发现所有关于引擎的意见,这些选项之间是否有任何彻底的比较?或者有没有人有尝试各种引擎的经验.由于我想要做的事情相对简单,它们之间可能没有太大差异,但我想听听人们对这些选项的看法?谢谢!

c++ simulation comparison physics physics-engine

19
推荐指数
3
解决办法
2万
查看次数

函数式编程如何应用于模拟?

除了标题中的一般问题,

  • 功能程序员和函数语言如何处理模拟领域,这些领域似乎最自然地由面向对象语言处理?
  • 是否有以(大多数)功能样式编写的复杂模拟的开源示例?
  • 为了从功能范式接近模拟,OO程序员需要改变什么样的观点?

我在问这个问题,同时学习Clojure的创作者Rich Hickey如何特别试图驯服OO编程和可变状态的"偶然复杂性",例如Clojure的身份和状态分离很有意义(Hickey的ants.clj正在研究中)列表).另一个相关的领域是使用游戏的函数式编程,这些游戏通常是模拟整个地方有很多有状态的"事物"; 有一些关于FP和游戏的文章/论文,欢迎更多.

也许经验丰富的函数式程序员可以提供额外的背景和建议,如何将一个人的思维重新定位到功能风格,特别是模拟.提前致谢!

simulation functional-programming clojure

18
推荐指数
2
解决办法
3901
查看次数

如何模拟鼠标移动

如何模拟鼠标事件导致指针向左移动500像素,然后单击使用C++.我该怎么办?

c++ windows simulation

18
推荐指数
2
解决办法
3万
查看次数

Hadoop是否适合运行我的模拟?

已经在Java中编写了一个随机模拟,它从磁盘上的几个CSV文件加载数据(总计大约100MB)并将结果写入另一个输出文件(不是很多数据,只是一个布尔值和几个数字).还有一个参数文件,对于不同的参数,预计模拟输出的分布会发生变化.要确定正确/最佳输入参数,我需要在多个输入参数配置中运行多个模拟,并查看每个组中输出的分布.每个模拟需要0.1-10分钟,具体取决于参数和随机性.

我一直在阅读有关Hadoop的内容,并想知道它是否可以帮助我运行大量的模拟; 我可能在不久的将来可以访问大约8台联网桌面计算机.如果我理解正确,map函数可以运行我的模拟并吐出结果,reducer可能是标识.

我担心的是HDFS,它似乎意味着巨大的文件,而不是一些小的CSV文件(没有一个足够大,甚至可以构成64MB的最小建议块大小).此外,每个模拟只需要每个CSV文件的相同副本.

Hadoop对我来说是错误的工具吗?

java simulation hadoop

16
推荐指数
1
解决办法
3228
查看次数

生成N个随机整数,其总和为R中的M.

我想生成N总和的随机正整数M.我希望在一个相当正态的分布周围选择随机正整数,其均值是M/N,标准差很小(是否可以将其设置为约束?).

最后,您如何概括产生N个随机正数(不仅仅是整数)的答案?

我发现了其他相关问题,但无法确定如何将答案应用于此背景:https: //stats.stackexchange.com/questions/59096/generate-three-random-numbers-that-sum-to-1-在-R

生成R中总和为1的3个随机数

R - 具有预定义总数的整数的随机近似正态分布

random simulation r

16
推荐指数
1
解决办法
6662
查看次数