相关疑难解决方法(0)

如何在C/C++/Obj-C中编写处理负数的模数(%)运算符

我厌恶的C语言(作为一名数学家)就是这样的

(-1) % 8 // comes out as -1, and not 7

fmodf(-1,8) // fails similarly
Run Code Online (Sandbox Code Playgroud)

什么是最好的解决方案?

C++允许模板和运算符重载的可能性,但这些对我来说都是模糊的.感激地收到了例子.

c c++ operator-overloading modulo c++11

81
推荐指数
5
解决办法
23万
查看次数

负数的奇怪Objective-C Mod行为

所以我认为负数,当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)

为什么会这样,是否有解决方法?

objective-c modulo

42
推荐指数
5
解决办法
3万
查看次数

%(mod)解释

今天我用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)

c# math

33
推荐指数
3
解决办法
6万
查看次数

C++中带负数的模数

我一直在编写以下重现关系的程序:

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

c++ recurrence modulo

21
推荐指数
3
解决办法
3万
查看次数

负数的模数

可能重复:
负数的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;
    }

有没有更好的方法来做到这一点?

algorithm math modulo

18
推荐指数
3
解决办法
7283
查看次数

从经度/纬度确定UTM区域(转换)

我正在编写一个程序,它需要一些纬度/经度,并且我将它们内部转换为UTM,以便以米为单位进行一些计算.

纬度/长度点的范围非常小 - 约200米x 200米.它们几乎总是可以依赖于单个UTM区域(除非你不幸并且跨越区域的边界).

但是,纬度/长度所在的区域不受限制.有一天,这个项目可能会针对澳大利亚的人们运行(哦,甚至一个州还有多少个区域,以及这已经导致我多少痛苦......),以及墨西哥人民的另一天.

我的问题是 - 有没有办法确定特定长/纬度所在的区域,以便它可以被送入转换库(我目前使用proj4和R包rgdal).

我的语言是R,但答案不一定是 - 也许只是一个简单的计算,或者我可以将系统调用嵌入到projexectuable中.

干杯.

r utm latitude-longitude coordinate-transformation

18
推荐指数
1
解决办法
2万
查看次数

如何在JavaScript中计算负整数的模数?

我试图通过递增或递减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不计算负模型.也许这对另一位编码人员也有帮助.

javascript math jquery modulo negative-number

16
推荐指数
2
解决办法
9658
查看次数

C++ 中的欧几里德整数模

在哪里可以找到计算整数欧几里得除法余数的实现或库0 <= r < |n|

c++ math integer division modulo

4
推荐指数
2
解决办法
8395
查看次数

将索引保持在边界内并环绕

我正在用传呼机做一个小旋转木马.旋转木马显示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行)?

javascript

3
推荐指数
1
解决办法
2690
查看次数

C#中的Mod运算符

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)

c# rsa mod

-3
推荐指数
1
解决办法
232
查看次数