问题标签 [math]

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 投票
5 回答
37599 浏览

python - Python:无符号 32 位按位算术

试图回答另一个解决方案处理 IP 地址和网络掩码的帖子时,我被简单的按位算术困住了。

假设输入是“32位”(可能是负数)整数或长整数,并且结果必须在范围内很长 [ 0, 2**32]?

换句话说,我需要一个工作 Python 对应于无符号长整数之间的 C 位运算。

编辑:具体问题是这样的:

0 投票
4 回答
559 浏览

algorithm - 调度具有重叠周期性任务的工作人员

与一名工人一起,一次只能执行一项任务(但可以立即在任务之间切换)

给定一个任务列表,
-- 定义为“n 秒,每 m 秒”(例如,每 3600 秒 5 秒)

我怎样才能找到每个任务的最佳开始时间和计数?

如果每个任务都是“1 秒,每 60 秒”,那么每个任务都会有一个唯一的起始秒,并且计数将是无限的(稳定状态)。
如果是“每 4 秒 1 秒”和“每 3 秒 1 秒”,结果将是:“0, 无限和 3, 3 次”

-- 希望是最简单的形式

如果我已经有一个任务列表,详细说明了“开始秒数和次数”,那么返回的函数会是什么: {start, count} 额外的 {n seconds per m seconds} 任务是什么样的?

--(稍微复杂一点的形式——
如果不是“n 秒每 m 秒”,
任务被定义为“n 秒每 l..o 秒”,
我可以在 l - o 范围内选择一个数字 m(但是在任务完成之前必须承诺那个 m),
这样可以更好地利用工人吗?
我将如何选择最好的 'm' ?

0 投票
2 回答
8331 浏览

java - 方向向量的旋转矩阵

我已经在互联网上玩了一段时间的一些算法,但我似乎无法让它们工作,所以我在这里抛出这个问题;

我正在尝试从一个点渲染速度矢量线。画线并不困难:只需velocity.length在图中插入一条带长度的线。这使线以 y 轴方向的点为中心。我们现在需要在适当的旋转和平移中得到它。

平移向量不难计算:它是速度向量的一半。然而,旋转矩阵对我来说非常难以捉摸。给定一个方向向量<x, y, z>,我需要什么矩阵?

编辑1:看;如果你不明白这个问题,你可能无法给我答案。

这是我目前拥有的:

根据这篇文章。是的,我已经尝试过标准旋转矩阵(vec_x.x、vec_y.x 等)但没有奏效。我一直在旋转列和行以查看是否有任何效果。

编辑2:

对我评论的粗鲁措辞表示歉意。

So it looks like there were a combination of two errors; one of which House MD pointed out (really bad naming of variables: vec_z was actually vec_y, and so on), and the other was that I needed to invert the matrix before passing it off to the rendering engine (transposing was close!). So the modified code is:

0 投票
3 回答
6893 浏览

java - 一个很好的网络数学Java库

我正在寻找一个面向网络数学并且已经过测试的 Java 库。没有什么特别花哨的东西,只是保存 ips 和子网,并执行诸如打印子网掩码或计算 IP 是否在给定子网内之类的事情。

我应该自己推出,还是已经有一个强大的库来解决这个问题?

0 投票
9 回答
2909 浏览

math - 用于游戏开发的三角数学

我正在尝试制作一个三角形(等腰三角形)以在屏幕上移动,同时在用户按下方向键(如向右或向左)时稍微旋转它。

我希望三角形的鼻子(顶点)始终引导三角形。(就像那个古老的小行星游戏一样)。

我的问题是这背后的数学。在每个 X 时间间隔,我希望三角形在“某个方向”移动,我需要帮助找到这个方向(x 和 y 递增/递减)。

我可以找到三角形的中心点(质心),并且我有最高的 x 和 y 点,所以我有一个线向量可以使用,但不知道“如何”使用它。

我认为这与旧的 Sin 和 Cos 方法以及三角形旋转的量(角度)有关,但我对那些东西有点生疏。

任何帮助是极大的赞赏。

0 投票
5 回答
302 浏览

.net - 您在 .NET 应用程序中使用哪种数学?

您在 .NET 应用程序中使用哪种数学,不包括System.Math中的所有内容

我认为 System.Math 严重不足。例如,在几个官方的.NET框架中,我可以数出三种不同的矩阵实现。向量也是如此。复数的一种实现;任意有理数的几种不同实现,等等。

那么,您希望在假设的System.Mathematics命名空间中看到什么?

0 投票
2 回答
1208 浏览

perl - 在 Perl 中向二进制字符串添加 1 的最简单方法是什么?

我有一个包含 4 字节网络顺序 IPv4 地址的变量(这是使用 pack 和整数表示创建的)。我有另一个变量,也是一个 4 字节的网络顺序子网。我正在尝试将它们添加在一起并添加一个以获得子网中的第一个 IP。

要获取 ASCII 表示,我可以inet_ntoa($ip&$netmask)获取基地址,但这样做是错误的inet_ntoa((($ip&$netmask)+1);我收到如下消息:

所以发生了什么,据我所知,最好的是它正在查看 4 个字节,发现 4 个字节不代表数字字符串,然后拒绝加 1。

另一种说法:我想要它做的是在最低有效字节上加 1,我知道这是第 4 个字节?也就是说,我想获取字符串\n\r&\0并以字符串结尾\n\r&\1。最简单的方法是什么?

有没有办法做到这一点而不必解包和重新打包变量?

0 投票
5 回答
18296 浏览

math - 查找数字范围交点

找出两个数字范围是否相交的最佳方法是什么?

我的号码范围是3023-7430,现在我想测试以下哪个号码范围与它相交:<3000、3000-6000、6000-8000、8000-10000、>10000。答案应该是3000-60006000-8000

在任何编程语言中,有什么好的、高效的数学方法来做到这一点?

0 投票
3 回答
1901 浏览

algorithm - 最优矩形阴影算法

我正在寻找一种算法来填充具有最短总线长度的矩形,以便给定区域的对象可以通过阴影。

例如,给定一个 5x3 厘米的矩形,我使用 1 厘米宽的平行线进行孵化,我可以通过孵化的最大物体是边长为 1 厘米的正方形。我使用了总共​​ 22 厘米(即 4x3+2x5)的阴影线。因此,为了通过 1 平方厘米的面积,我使用了 22 厘米的孵化线。

该算法应该找到一种模式,使当前 22cm 的整体阴影线最小化,同时不允许超过 1sqcm 的区域通过(对象不必是正方形甚至矩形的形式,重要的是整体区域)。

编辑:在 nlucaroni 的带领下,我发现了蜂窝猜想,该猜想指出,将平面划分为相等面积的区域的周长至少与正六边形网格的周长相同,这部分回答了我的问题。

0 投票
1 回答
4004 浏览

math - 绘制二维隐式标量场的等值线

我有一个在 2D 中定义的隐式标量场,对于 2D 中的每个点,我都可以让它计算一个精确的标量值,但它的计算有点复杂。
我想画一条该表面的等值线,比如“0”值的线。函数本身是连续的,但“0”等值线可以有多个连续实例,不能保证所有实例都连接。
计算每个像素的值不是一种选择,因为这会花费太多时间 - 大约几秒钟,并且需要尽可能实时。

我目前使用的是空间的递归划分,可以被认为是一种四叉树。我对空间进行了一个初始的、非常粗略的采样,如果我找到一个包含从正值到负值的过渡的正方形,我将它递归地划分为 4 个较小的正方形并再次检查,在像素级别停止。通过在其 4 个角采样一个正方形来检测正负转换。这工作得相当好,除非它没有。绘制的等值线有时会被剪切,因为对于发生在边缘的小区域且不跨越正方形角的过渡,过渡检测失败。

在此设置中是否有更好的方法来绘制等线图?