问题标签 [deterministic]
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.
c++ - 如何控制 C 数学是否使用 SSE2?
我在 fp:strict 模式下使用 MSVC 进入了 C 库的超越数学函数的汇编。它们似乎都遵循相同的模式,这就是sin
.
首先有一个来自名为“disp_pentium4.inc”的文件的调度例程。它检查变量___use_sse2_mathfcns
是否已设置;如果是,则调用__sin_pentium4
,否则调用__sin_default
。
__sin_pentium4
(在“sin_pentium4.asm”中)首先将参数从 x87 fpu 传输到 xmm0 寄存器,使用 SSE2 指令执行计算,然后将结果加载回 fpu。
__sin_default
(在“sin.asm”中)将变量保存在 x87 堆栈上并简单地调用fsin
.
因此,在这两种情况下,操作数都被压入 x87 堆栈并返回,使其对调用者透明,但如果___use_sse2_mathfcns
已定义,则操作实际上是在 SSE2 而不是 x87 中执行的。
这种行为对我来说非常有趣,因为 x87 超越函数因根据实现而具有略微不同的行为而臭名昭著,而给定的 SSE2 代码应该始终给出可重现的结果。
有没有办法在编译或运行时确定将使用 SSE2 代码路径?我不擅长编写程序集,因此如果这涉及编写任何程序集,将不胜感激代码示例。
c++ - 使用线程实现游戏引擎确定性
我想在我的游戏引擎中实现确定性,以便能够保存和重放输入序列并使网络更容易。
我的引擎目前使用可变时间步长:每一帧我都会计算更新/绘制最后一帧所需的时间,并将其传递给我的实体的更新方法。这使得 1000FPS 游戏看起来和 30FPS 游戏一样快,但引入了不确定的行为。
一个解决方案可能是将游戏修复为 60FPS,但它会使输入延迟更多,并且不会获得更高帧速率的好处。
所以我尝试使用一个线程(它不断调用 update(1) 然后休眠 16 毫秒)并在游戏循环中尽可能快地绘制。它有点工作,但它经常崩溃,我的游戏变得无法播放。
有没有办法在我的游戏循环中实现线程以实现确定性,而无需重写所有依赖于引擎的游戏?
simulate - 模拟任何确定性下推自动机 (DPDA) 的算法
如何编写可以对任何确定性下推自动机 (DPDA) 建模的程序 用户应输入状态数、转换函数、输入符号 程序应为请求的 pda 建模并测试用户输入的随机字符串的接受或拒绝
这是我到目前为止在 C++ 中所做的 - 我已经收集了状态、输入符号和输入符号的数量 - 我在转换函数上,但似乎无法更进一步,因为我无法概念化 DPDA 建模
stack - 是否有一种编程语言仅具有确定性下推自动机的功能,而没有更多功能?
一些编程问题不需要图灵机的全部能力来解决。他们可以用更少的力量来解决。我正在寻找一种功能较弱的编程语言。
是否存在仅限于支持这些功能的高级编程语言:
具有将值压入堆栈和将值从堆栈中弹出的操作的堆栈。
一个有限状态机 (FSM) 用于输入值、从一个状态移动到另一个状态、与堆栈交互并输出结果。
我意识到我可以使用 Java 或 C 或 Python(等)并通过编写仅使用堆栈和 FSM 的程序来限制语言。但是,我正在寻找一种仅具有这些功能的编程语言,仅此而已。
换句话说,我不想使用图灵完备的编程语言来解决只需要确定性下推自动机功能的问题。我想使用一种仅具有确定性下推自动机功能的编程语言。
deterministic - 使用不同的cpu会导致同一个程序的输出不同吗?
如果同一个程序不使用任何随机数或 I/O,是否应该始终输出相同的结果,或者它是否有可能在不同的 cpu 上输出不同的东西(但相同的架构,不需要重新编译)?我特别考虑使用浮点数和双精度数的计算,这严重依赖于精度,如数值近似值中使用的那样。
finite-automata - DFA最小化算法理解
我试图在http://www.cs.umd.edu/class/fall2009/cmsc330/lectures/discussion2.pdf 上理解这个算法 DFA 最小化算法,它说:
我不明白的一点是“不同(δ(p,a),δ(q,a))”我想我理解转换函数,其中δ(p,a)=输入a从p达到的任何状态. 但使用以下 DFA:
http://i.stack.imgur.com/arZ8O.png
生成此表:
imgur.com/Vg38ZDN.png
不应该 (c,b) 也被标记为 x 因为 distinct(δ(b,0), δ(c,0)) 不为空 (d) ?
simulation - 从 ODE Hill 动力学到随机质量作用
我在将具有 ODE 的模型转换为随机模型时遇到问题。
原始模型包含两个表达式:
1) k6f2*PKB_S473P^n6/(km6^n6+PKB_S473P^n6))*AS160
2) k9f1*S6K*mTORC1a^n9/(km9^n9+mTORC1a^n9)
用希尔动力学描述的。
我想知道如何将前两个表达式转换为质量作用定律,以便能够用随机模拟器模拟它们。
提前谢谢大家!
oracle - 如何制作确定性函数?
我正在尝试根据一个函数的结果创建一个索引,该函数应用了一个我必须提取数字的列。
但是当我运行这个查询时:
或者这个
或者加入...
不使用索引,每次都会执行全表扫描。我相信索引是确定性的,因为它总是会返回数字或 null 但我不知道表达式是否太复杂而无法使用。我也尝试将代码移动到函数中,但它是相同的。我相信关键在于这个确定性的事情(我做错了吗?)和/或原始列上具有空值的表。如何确保使用索引?这是功能:
我也执行了这个
但这似乎无关紧要。
tsql - t-sql 中的 select * 是确定性的吗?
具体来说,我需要知道查询是否
将始终以相同的顺序返回列。
我没有看到任何迹象表明它是不确定的,但由于我的应用程序的规格,我不能假设这是真的。谁能以一种或另一种方式指出我的文档?我的搜索没有运气。
提前致谢。