标签: modulo

在C#中,我如何像google calc那样实现模数呢?

我有一个代表形状的类.Shape类有一个名为Angle的属性.我希望此属性的setter自动将值包装到范围[0,359]中.

不幸的是,简单_Angle = value % 360;只适用于正数.在C#中-40 % 360 == -40.谷歌calc 以我想要的方式做到了.值应为320.

什么是C#中最优雅的解决方案?

这是我到目前为止最好的方式:

     public double Angle {
        get { return _Angle; } 
        set {
            if ( value >= 0 ) {
                _Angle = value % 360;
            }
            else {
                _Angle = value - (360 * ((int)(value / 360) - 1)); 
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

谢谢你们,我现在有:

     public double Angle {
        get { return _Angle; } 
        set {
            _Angle = (value % 360) + ((value < 0) …
Run Code Online (Sandbox Code Playgroud)

c# modulo

6
推荐指数
1
解决办法
4951
查看次数

在C#中处理"大"整数

如何处理C#中的大整数?

我有一个函数,它会给我除数的乘积:

private static int GetDivisorProduct(int N, int product)
    {
        for (int i = 1; i < N; i++)
        {
            if (N % i == 0)
            {
                Console.WriteLine(i.ToString());
                product *= i;
            }
        }

        return product;
    }
Run Code Online (Sandbox Code Playgroud)

调用函数是 GetDivisorProduct(N, 1)

如果结果大于4位,我应该只获得最后4位数.(例如,如果我输入957,则仅在修剪掉最后四个值后输出为7493.实际结果为876467493.).

其他样本输入:如果我给10000,则输出为0.

BigInteger类别已经从C#库中删除!

我怎样才能得到最后四位数字?

c# overflow biginteger modulo

6
推荐指数
2
解决办法
2868
查看次数

C如何从根本上执行%运算

我很想理解mod操作背后的逻辑,因为我知道可以执行位移操作来执行不同的操作,例如位移到乘法.

我可以看到它完成的一种方法是通过递归算法继续划分,直到你不能再分裂,但这似乎并不高效.

任何想法都会有所帮助.提前致谢!

c modulo

6
推荐指数
2
解决办法
348
查看次数

计算的最佳方法((2 ^ n)-1)mod p

我正在进行加密练习,我正在尝试计算(2 n -1)mod p,其中p是素数

这样做的最佳方法是什么?我正在使用C,因此当n很大时,2 n -1变得太大而无法保持

我遇到了等式(a*b)modp =(a(bmodp))modp,但我不确定这适用于这种情况,因为2 n -1可能是素数(或者我不知道如何分解这个)

非常感谢.

c primes modulo

6
推荐指数
2
解决办法
1712
查看次数

Sass Mixin Modulo无法正常工作

我想编写一个sass mixin,从1到100每5步输出一个特定的类.但我不能让modulo运算符以某种方式工作.根本没有创建类.

这是我的代码

@mixin flex_percentage($className) {
    @for $i from 1 through 100 {
        @if $i % 5 != 0 {
            .#{$className}#{$i} {
                width: $i * 1%;    
            }
        }
    }
}
@include flex_percentage(p);
Run Code Online (Sandbox Code Playgroud)

我也尝试了$i mod(5)但是它输出了所有100个类.

我希望有一个类似的输出

.p5 {
    width: 5%;
}
.p10 {
    width: 10%;
}
.p15 {
    width: 15%;
}
Run Code Online (Sandbox Code Playgroud)

css loops sass mixins modulo

6
推荐指数
1
解决办法
5780
查看次数

CMD设置/ a,模数和负数

CMD无法使用set /a?来评估负数模数?

90 % 7正确地等于批量为6,但是-90 % 7给出-6而不是1.

我认为它可能一直在评估-(90 % 7),但似乎并非如此,因为(-90) % 7也给出了-6.

h:\uprof>set /a -90%7
-6
h:\uprof>set /a (-90)%7
-6
Run Code Online (Sandbox Code Playgroud)

那么 - 这是CMD设置/模数运算符的限制吗?

cmd batch-file modulo

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

C++:获取范围内整数的最快方法

我需要生成大约N = 1亿个密钥的哈希密钥.从我的研究看来,murmur3(MurmurHash3_x86_32,见murmur3 hash)将是最快的散列函数,具有最佳延迟和足够小的碰撞率.我面临的问题是该函数返回键为 void *.更具体地说,模板是:

void MurmurHash3_x86_32 (const void *key, int len, uint32_t seed, void *out);

由于我的哈希表大小将小于它可以生成的最大哈希,我需要将它放入表范围[0,N-1].最简单的解决方案似乎是使用%运算符.但由于众所周知这是一个缓慢的操作员,我想知道是否有更快的方法来解决问题.

我发现一个有趣的建议是否有替代在C/C++中使用%(模数)?在StackOverflow本身.它暗示了"两个人的力量,以下作品(假设两个补语表示)":

return i & (n-1);

我的问题是,在较新的CPU上,它有时(或者大部分时间都是这样?),由于多路缓存线,性能会在大约2 ^ n,IIRC附近降低.(此链接提供有关插入大内存的说明,第3.5部分:Google sparsehash!).

目前,murmur3的优势似乎因硬件相关问题和%运营商的低效率而无效.由于性能是一个约束,我要求低延迟和更快的解决方案,即使它不是MurmurHash3_x86_32.

c c++ hash modulo low-latency

6
推荐指数
1
解决办法
198
查看次数

使用分数的模块化算术

我使用整数和分数mod 10的乘法来解决这个加密问题.

这是等式:

7 * (4/11) mod 10 =?
Run Code Online (Sandbox Code Playgroud)

我知道我应该将它转换为整数,因为mod运算符不适用于分数,但我无法想象这个.明显,

7 * (4/11) = 28/11,
Run Code Online (Sandbox Code Playgroud)

但我不能得到一个分数的mod 10.教练想要确切的答案,而不是小数.任何帮助将不胜感激!

modulo

6
推荐指数
2
解决办法
6201
查看次数

带模运算符的 If 语句

我尝试过这个 -

x=[2,3,4,7,9]
count=0
for i in x:
  if i%2:
    count=count+1
print count
Run Code Online (Sandbox Code Playgroud)

为什么计数3而不是2,因为i%2仅满足“2 和 4”?

python if-statement modulo python-2.7

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

是否有任何数字可以对浮点数进行快速模计算?

我知道对于无符号整数,如果除数是 2 的幂,我可以用位掩码替换模运算。对于浮点数,是否有任何数字具有类似的属性?也就是说,是否有任何数字n可以f mod n比一般情况更有效地计算,而不必使用位掩码?

当然,除了一个。 脑部衰竭

编辑:澄清一下,f是任何浮点数(在运行时确定), n是任何格式的任何编译时常量,我希望结果是浮点数。

c floating-point modulo fmod

5
推荐指数
2
解决办法
959
查看次数