标签: modulus

如何计算形式的模数(a*b)%c?

如何计算形式的模数(a*b)%c?

我想计算两个int数的乘法模数,它们几乎处于溢出阶段......

这里c也是int

c++ overflow modulus

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

为什么模数定义为编程语言中的模式

我不是在询问定义,而是为什么语言创建者选择在C++中定义具有不对称行为的模数.(我认为Java也是)

假设我想找到大于或等于n的最小数,它可以被f整除.

如果n是正数,那么我做:

if(n % f)
   ans = n + f - n % f;
Run Code Online (Sandbox Code Playgroud)

如果n为负数:

ans = n - n % f;
Run Code Online (Sandbox Code Playgroud)

显然,在处理负数和正数时,这个定义并不是最有利的.那为什么这样定义呢?在什么情况下会产生权宜之计?

language-agnostic math language-design modulus

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

带有模数运算符的无符号溢出

我在我编写的一些c代码中遇到了一个错误,虽然它相对容易修复,但我希望能够更好地理解它背后的问题.基本上发生的事情是我有两个无符号整数(实际上是uint32_t),当应用模数运算时,产生了一个负数的无符号等价物,一个已被包裹的数字,因此是"大".这是一个示例程序来演示:

#include <stdio.h>
#include <stdint.h>

int main(int argc, char* argv[]) {

  uint32_t foo = -1;
  uint32_t u   = 2048;
  uint64_t ul  = 2048;

  fprintf(stderr, "%d\n", foo);
  fprintf(stderr, "%u\n", foo);
  fprintf(stderr, "%lu\n", ((foo * 2600000000) % u));
  fprintf(stderr, "%ld\n", ((foo * 2600000000) % u));
  fprintf(stderr, "%lu\n", ((foo * 2600000000) % ul));
  fprintf(stderr, "%lu\n", foo % ul);

  return 0;

}
Run Code Online (Sandbox Code Playgroud)

这会在我的x86_64机器上产生以下输出:

-1
4294967295
18446744073709551104
-512
1536
2047
Run Code Online (Sandbox Code Playgroud)

1536是我期待的数字,但是(uint32_t)( - 512)是我得到的数字,正如你可能想象的那样,它会让人感觉不舒服.

所以,我想我的问题是:为什么两个无符号数之间的模数运算,在这种情况下,产生的数字大于除数(即负数)?这种行为是首选的原因吗?

c unsigned overflow modulus

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

模数运算符运行1st,然后运行每3个项目

所以我需要它在第一个循环然后每个第3个循环运行

if ($k % 3 || $k==1 ) { echo '<div class="modcontainer">'; } 
Run Code Online (Sandbox Code Playgroud)

对我来说似乎很简单,但我对模数没有理解

php modulo modulus

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

如何计算反向模量

现在我有一个公式:

int a = 53, x = 53, length = 62, result;
result = (a + x) % length;
Run Code Online (Sandbox Code Playgroud)

但如果我已知结果,如何计算反向模量以获得最小的"x"

(53 + x) % 62 = 44
//how to get x
Run Code Online (Sandbox Code Playgroud)

我的意思是获得x的公式或逻辑是什么

c# math reverse formula modulus

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

计算PL/SQL中大数的模数

我正在尝试计算PL/SQL中的大模数.我实现了一个我在这个位置找到的方法:http://en.wikipedia.org/wiki/International_Bank_Account_Number在IBAN上的Modulo操作下.但是当我使用这个数字时,我得到错误的结果:221021290110000123452229211210282900128222984.

这是该方法需要完成的方式:

分段计算D mod 97可以以多种方式完成.一种方法如下:

  1. 从D的最左边数字开始,使用前9位数字构造一个数字并将其称为N.
  2. 计算N mod 97.如果结果小于10,则在结果前面加上0,结果范围为00到96.
  3. 通过将上述结果(步骤2)与D的下一个7位数连接起来构造一个新的9位数N.如果D中剩余的数字少于7位但至少有一位,则构造一个新的N,其数小于9数字,从上面的结果(步骤2)开始,接着是D的剩余数字
  4. 重复步骤2-3,直到处理完D的所有数字

步骤2中的最终计算结果将是D mod 97 = N mod 97.

我做了一些日志记录,这些是所有模数步骤的结果:

221021290110000123452229211210282900128222984 (221021290 % 97 = 0)
00110000123452229211210282900128000000 (001100001 % 97 = 21)
2123452229211210282900128000000 (212345222 & 97 = 0)
009211210282900128000000 (009211210 % 97 = 90)
90282900128000000 (902829001 % 97 = 46)
4628000000 (462800000 % 97 = 2)
020 = 20
Run Code Online (Sandbox Code Playgroud)

结果需要是1.我用模数计算器检查它,它需要是1.对于大多数数字,calcutor是正确的.

这是我制作的代码,这个数字怎么可能不正确:

create or replace function doubleDiget (iban number)
return varchar2
as
begin
  if(iban <= 9) then
    return …
Run Code Online (Sandbox Code Playgroud)

plsql modulus

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

如何计算一个这么大的数字?

我现在正在学习Pascal一个月了,我遇到了一个似乎无法解决的问题.基本上我有2号,Ñ中号,其中Ñ小于10 100 000中号小于10 8两者都是大于0我需要计算Ñ中号.

我无法弄清楚如何做到这一点,甚至没有QWord.我尝试过,string但我不知道一个好方法.它总是对我来说太复杂了,因为我使用了一个for函数,我从字符串N和字符串M中得到最后一个数字然后我用两个if函数减去它们(其中N的最后一个数字高于或等于M的最后一个数字,如果它更低).基本上,我觉得这个简单的问题太复杂了.

pascal bignum modulus

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

在每个3d元素树枝环,模数后添加div

嗨所以我有这个twig循环,我需要的是在每个第3个元素之后添加一些html来关闭div行并打开新的.

我试过这个网站的各种片段,但没有任何一个运气

<div class="row">
    {% for date, date_info in dates %}
        <div class="col-sm-4">
            <div class="event-box">
                {% for category in date_info.events %}
                    {% for event in category %}
                        <div class="event-header">
                            {% if event.get_runtime( 'content_img_url' ) is empty %}
                                {{ event | avatar( [
                                'post_thumbnail',
                                'location_avatar',
                                'category_avatar'
                                ]) | raw }}
                            {% endif %}
                            <div class="event-date">
                                {{ date | month }}
                                {{ date | day }}
                            </div>
                            <div class="event-footer">
                                <h3>{{ event.get_runtime( 'filtered_title' ) | raw }}</h3>
                                <div class="event-time">
                                    {{ event | timespan( …
Run Code Online (Sandbox Code Playgroud)

loops modulus twig

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

如何获取存储在数组中的大值模数?

假设我有一个包含数字的整数数组,我想取存储在其中的模数,即

 int a[36]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9} 
Run Code Online (Sandbox Code Playgroud)

并将其转换为数字987654321987654321987654321987654321.

在C语言long long int允许只有10 ^ 18.我想用10 ^ 9 + 7取模数.我怎样才能做到这一点?

程序:

int main()
{
int a[36]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9};
long long int temp=0;
int i;
for(i=0;i<36;i++)
{
     temp=temp+a[i]*pow(10,i);
}
temp=temp%1000000007;
printf("%lld",temp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays modulus

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

c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?

我在 c# 中使用 RSACryptoServiceProvider 生成了公钥:

<RSAKeyValue>
   <Modulus>
      4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q==
   </Modulus>
   <Exponent>
      AQAB
   </Exponent>
<RSAKeyValue>
Run Code Online (Sandbox Code Playgroud)

这些参数是在 512 位初始化的 RSA 变量中生成的

new RSACryptoServiceProvider(512)    
Run Code Online (Sandbox Code Playgroud)

现在,我需要使用这些(模数和指数)来加密一些数据,但是在 groovy 中(SoapUI 测试中的 groovyscript)。在 groovy 中,我正在测试 RSA 加密,对于它的公钥,它只获取十进制数的模数和指数。上面的 Modulus 看起来像一个 base64 字符串,但是当我尝试在 groovy 中解码时,它得到了一些特殊字符,我使用的代码是

byte[] decoded = encoded.decodeBase64()
string s == new String(decoded)
Run Code Online (Sandbox Code Playgroud)

我最终需要的是知道如何使用在 c# 中获得的模数和指数来加密 groovy 中的一些数据。一些帮助如何做到这一点?

c# groovy rsa exponent modulus

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