问题标签 [floor-division]
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++ 除法问题
我需要用 C++ 编写一个程序,在其中插入一个 4 位数字的数字“n”,这是一个简单的数字,在控制台中,控制台向我显示了某个数字与我首先需要的 4 位数字的乘积写。我尝试编写 (n/!2) 以使程序仅在数字不能除以 2 并且控制台显示"main.cpp:22:36: warning: division by zero [-Wdiv-by-zero]".
我已尝试删除 (n/!2) 并且代码执行没有问题时才执行. 如果有人能告诉我如何解决它,我会很高兴。
python - 为什么大整数的经典除法(“/”)比整数除法(“//”)慢得多?
我遇到了一个问题:如果对 (p-1)/2 使用经典除法,那么 512 位奇数的代码会非常慢。但是使用楼层划分,它可以立即生效。是浮点数转换引起的吗?
完整代码
ios - 使用 floorf 与 floor
我的代码中有以下情况:
它工作得很好,但我注意到当我使用时floor
,它也工作得很好。我也对如何定义感到困惑rows
,它应该是NSUInteger
orCGFloat
吗?
它似乎在所有情况下都可以正常工作,但是我在理解浮点数学时遇到了一些麻烦,并且想知道执行此代码的最佳方法是什么?还是有关系?
python - python中5.5//1.1的值是多少?如何?
5.5//1.1 的分步答案是什么。在编译器中运行时,它会给出4.0作为答案。
64-bit - 如何将 128 位被除数除以 64 位除数,其中被除数的位全为 1,而我只需要商的 64 个 LSB?
我需要计算((2^128) - 1) / x
。除数 ,x
是一个无符号的 64 位数字。被除数由两个无符号 64 位数字(高位和低位)组成,其中两个数字都是UINT64_MAX
. 我只能使用 64 位算术并且需要它是可移植的(不使用 GNU's __int128
、MSCV's _udiv128
、程序集或类似的东西)。我不需要商的高部分,我只需要低 64 位。
我该怎么做这个操作?
另外:x >= 3
,x
不是 2 的幂。
编辑:我创建了自己的解决方案(答案如下)。但我欢迎任何其他性能更好的解决方案:)
python - Python中意外的整数除法与浮点除法结果
在 Python 中运行以下代码会产生一些意想不到的结果。
现在,如果两个结果相同,我可能已经理解了差异,因为浮点数是如何以二进制形式存储的。问题是为什么第二个结果与第一个不同?除了后者“地板”结果之外,/ 和 // 的工作方式是否有区别?
c++ - 精确双除法
考虑以下函数:
所以我想在数学意义上k
计算最大的整数。k * b <= a
由于可能存在舍入错误,我不确定上述函数是否真的计算 this k
。我不担心k
可能超出范围的情况。确定这一点的正确方法是什么k
?
c - 如何仅使用最接近偶数舍入模式计算 trunc(a/b)?
给定两个 IEEE-754 双精度浮点数a和b,我想得到精确的商a / b四舍五入到零的整数。
执行此操作的 C99 程序可能如下所示:
现在假设我只能使用最接近偶数舍入模式:我可能正在使用带有优化的 GCC,为微控制器编译,或者必须使其在 JavaScript 中工作。
我尝试的是使用提供的舍入计算a / b,如果结果的幅度太大,则截断并进行补偿:
辅助函数mul_error
计算精确的乘法误差(使用 Veltkamp-Dekker 分裂):
某些输入的补偿是否会失败(例如,由于上溢或下溢)?
有更快的方法吗?
编辑:将第一行的mul_error
from更改… return a*b
为… return -a*b;
. 这修复了a = ±∞ 的情况;有限输入没问题。
感谢Eric Postpischil发现错误。
编辑:如果a,b是有限且非零且除法a / b溢出,我想在舍入到零模式下匹配 IEEE-754 除法,它返回最大有限双精度数 ±(2¹⁰²⁴ − 2⁹⁷¹)。
编辑:函数frexp
和ldexp
只能在必要时调用。这对于具有均匀随机位
的双倍a,b来说是 30% 的加速。
也许ldexp
总是不必要的,因为我们只需要知道 mul_error 与 0 的比较。
编辑:如果您有 128 位整数可用,请按照以下步骤操作。(它比原始版本慢。)