我厌恶的C语言(作为一名数学家)就是这样的
(-1) % 8 // comes out as -1, and not 7
fmodf(-1,8) // fails similarly
Run Code Online (Sandbox Code Playgroud)
什么是最好的解决方案?
C++允许模板和运算符重载的可能性,但这些对我来说都是模糊的.感激地收到了例子.
所以我认为负数,当mod'ed应该被放入正空间...我不能让这发生在objective-c
我期待这个:
-1 % 3 = 2
0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
Run Code Online (Sandbox Code Playgroud)
但得到这个
-1 % 3 = -1
0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
Run Code Online (Sandbox Code Playgroud)
为什么会这样,是否有解决方法?
今天我用C#编写了一个程序,我用%来计算一些索引...我的程序没有用,所以我调试了它,我意识到" % "不像我知道的其他程序语言那样工作.
例如:
在Python中%返回如下值:
for x in xrange (-5, 6):
print x, "% 5 =", x % 5
-5 % 5 = 0
-4 % 5 = 1
-3 % 5 = 2
-2 % 5 = 3
-1 % 5 = 4
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
Run Code Online (Sandbox Code Playgroud)
在C#中:
for …Run Code Online (Sandbox Code Playgroud) 我一直在编写以下重现关系的程序:
An = 5An-1 - 2An-2 - An-3 + An-4
Run Code Online (Sandbox Code Playgroud)
输出应该是答案模数10 ^ 9 + 7 ..我为此写了一个蛮力方法如下......
long long int t1=5, t2=9, t3=11, t4=13, sum;
while(i--)
{
sum=((5*t4) - 2*t3 - t2 +t1)%MOD;
t1=t2;
t2=t3;
t3=t4;
t4=sum;
}
printf("%lld\n", sum);
Run Code Online (Sandbox Code Playgroud)
其中MOD= 10^9 +7
每件事似乎都是真的..但我得到了一些价值的否定答案..由于这个问题,我无法找到正确的解决方案...... Plz帮助保持正确的地方Modulus
可能重复:
负数的Mod正在融化我的大脑!
我想知道是否有一个更好的算法,我正在尝试做什么:
wrapIndex(-6, 3) = 0 wrapIndex(-5, 3) = 1 wrapIndex(-4, 3) = 2 wrapIndex(-3, 3) = 0 wrapIndex(-2, 3) = 1 wrapIndex(-1, 3) = 2 wrapIndex(0, 3) = 0 wrapIndex(1, 3) = 1 wrapIndex(2, 3) = 2 wrapIndex(3, 3) = 0 wrapIndex(4, 3) = 1 wrapIndex(5, 3) = 2
我想出来了
function wrapIndex(i, i_max) {
if(i > -1)
return i%i_max;
var x = i_max + i%i_max;
if(x == i_max)
return 0;
return x;
}
有没有更好的方法来做到这一点?
我正在编写一个程序,它需要一些纬度/经度,并且我将它们内部转换为UTM,以便以米为单位进行一些计算.
纬度/长度点的范围非常小 - 约200米x 200米.它们几乎总是可以依赖于单个UTM区域(除非你不幸并且跨越区域的边界).
但是,纬度/长度所在的区域不受限制.有一天,这个项目可能会针对澳大利亚的人们运行(哦,甚至一个州还有多少个区域,以及这已经导致我多少痛苦......),以及墨西哥人民的另一天.
我的问题是 - 有没有办法确定特定长/纬度所在的区域,以便它可以被送入转换库(我目前使用proj4和R包rgdal).
我的语言是R,但答案不一定是 - 也许只是一个简单的计算,或者我可以将系统调用嵌入到projexectuable中.
干杯.
我试图通过递增或递减1迭代jQuery对象数组.因此,对于递减部分,我使用此代码:
var splitted_id = currentDiv.attr('id').split('_');
var indexOfDivToGo = parseInt(splitted_id[1]);
indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length;
var divToGo = allDivs[indexOfDivToGo];
Run Code Online (Sandbox Code Playgroud)
所以我有4个带id的元素:
div_0
div_1
div_2
div_3
Run Code Online (Sandbox Code Playgroud)
我期待它迭代为3 - 2 - 1 - 0 - 3 - 2 - 等等.
但它在零之后返回-1,因此它被卡住了.所以它迭代为:
3 - 2 - 1 - 0 - -1 - 卡住了
我知道我可以通过更改代码的第二行来修复它
indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么JavaScript不计算负模型.也许这对另一位编码人员也有帮助.
在哪里可以找到计算整数欧几里得除法余数的实现或库0 <= r < |n|?
我正在用传呼机做一个小旋转木马.旋转木马显示6乘6的元素,我有36个要显示的元素.我有一个下一个和上一个按钮.显示的第一个元素是[0,6].如果我按下前一个按钮并且没有先前的元素(例如我在第一页),它应该环绕并结束.这同样适用于最后的元素和下一个按钮.
我的代码看起来像这样:
$('#img_prev').click(function (e) {
# change this line so it wraps around
imgIndex = (imgIndex - 6) % 36;
alert(imgIndex)
refreshImages(imgIndex);
e.preventDefault();
return false;
});
$('#img_next').click(function (e) {
imgIndex = (imgIndex + 6) % 36;
refreshImages(imgIndex);
e.preventDefault();
return false;
});
Run Code Online (Sandbox Code Playgroud)
并且它失败了,因为-6%36是-6而不是30.我可以用if来处理它,(index < 0) ...但我更喜欢具有最好捕获包装行为的模数的条件.
我怎样才能将其包裹起来(见第2行)?
C# 中是否有用于 RSA 算法的 mod 运算符?我一直在使用 % ,因为我认为这可以用作 mod,但是我得到的 c 和 m 的答案不正确,所以我意识到 % 不起作用。
double e = 13;
double d; //decryption
double de = 7;
d = ((de * euiler) + 1) / e;
double message = 25;
double c = Pow(message, e) % n;
double m = Pow(c, d) % n;
Run Code Online (Sandbox Code Playgroud)