gpt4 book ai didi

java - 在 Java 中执行周期性边界条件的最快方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:23 32 4
gpt4 key购买 nike

我想运行具有周期性边界条件的粒子模拟 - 为简单起见,我们假设一个长度为 1.0 的区域的一维模拟.我可以使用以下简短片段强制执行这些条件:

if (x > 1.0)
x -= 1.0;
if (x < 0.0)
x += 1.0;

但感觉“笨拙”1 - 特别是在将其推广到更高维度时。我试着做类似的事情

x = x % 1.0;

处理得很好x > 1.0但没有做我想做的 x < 0.0 2。 “模数”版本和“手动”版本的输出的几个示例显示差异:

Value: 1.896440,  mod: 0.896440,  manual: 0.896440
Value: -0.449115, mod: -0.449115, manual: 0.550885
Value: 1.355568, mod: 0.355568, manual: 0.355568
Value: -0.421918, mod: -0.421918, manual: 0.578082

1) 对于我当前的应用程序,“笨拙”的方式可能已经足够好了。但在我成为更好的程序员的追求中,我仍然想了解是否有“更好的”(或者至少更好看...)的方法来做到这一点。

2) 是的,我读过 this post ,所以我知道为什么它没有按照我的要求做,而且它不应该。我的问题不是关于这个,而是关于该怎么做。

最佳答案

您可以使用 % 稍作修改 x = (x + 1.0) % 1.0

关于java - 在 Java 中执行周期性边界条件的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679461/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com