在java中:
b1 = new BigInteger("-3896390610386937370574318634931111609708735540536209530871");
b2 = new BigInteger("1000000000000000000000000000000000000000");
// apply mod() method
BigInteger result = b1.mod(b2);
Run Code Online (Sandbox Code Playgroud)
result = 425681365068888390291264459463790469129
当我尝试在 c# 中编写相同的代码时,我得到了另一个值
在 C# 中
BigInteger b1 =
BigInteger.Parse("-3896390610386937370574318634931111609708735540536209530871");
BigInteger b2 = BigInteger.Parse("1000000000000000000000000000000000000000");
BigInteger result = BigInteger.Remainder( b1, b2);
Run Code Online (Sandbox Code Playgroud)
result = -574318634931111609708735540536209530871
我也尝试过BigInteger % operator。我不确定使用哪种方法或运算符来获得与 java 中相同的值。
我正在尝试编写一个函数来提取任何给定单词的所有其他字母。有人可以解释一下为什么这段代码不产生所有其他字母吗?
def other_letter(word):
other_letter = ""
for letter in word:
if word.index(letter) % 2 == 0:
other_letter += letter
return other_letter
print(other_letter("Hello World!"))
Run Code Online (Sandbox Code Playgroud)
我认为如果索引的模等于 0 那么它应该拉出所有其他字母并将其添加到other_letter? 我找到了另一种方法来解决这个问题,无需模运算符,但我想知道为什么模运算符在这里不起作用?
我正在编写一个快速的自定义编码方法,我用一个数字标记一个密钥来验证它是一个有效的密钥.
基本上我正在从编码中获取任何数字并将其乘以密钥.
然后,我将这些数字乘以部署给购买密钥的用户/客户.我想简单地使用(Code%Key == 0)来验证密钥是否有效,但是对于大值,mod函数似乎没有按预期运行.
数字= 468721387; 键= 12345678; 代码=数字*密钥;
使用上面的数字:Code%Key == 11418772
对于较小的数字,它将正确返回0.是否有一种可靠的方法来检查.NET中的长时间的可分性?
谢谢!
编辑:好的,告诉我,如果我很特别,错过了什么......
long a = DateTime.Now.Ticks;
long b = 12345;
long c = a * b;
long d = c % b;
d == 10001 (Bad)
Run Code Online (Sandbox Code Playgroud)
和
long a = DateTime.Now.Ticks;
long b = 12;
long c = a * b;
long d = c % b;
d == 0 (Good)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我观察了以下内容,并感谢您的解释.
$amount = 4.56;
echo ($amount * 100) % 5;
Run Code Online (Sandbox Code Playgroud)
输出:0
然而,
$amount = 456;
echo $amount % 5;
Run Code Online (Sandbox Code Playgroud)
输出:1
我在两个单独的PHP安装上尝试了这个代码,结果相同.谢谢你的帮助!
我是Python的新手,并且模数有问题.
这是代码:
for i in range(ord('a'), ord('z')+1):
print chr(((i+2) % 97) + 97 )
Run Code Online (Sandbox Code Playgroud)
检测到的结果是cdef...a.但是,一旦我们到达,我就无法获得所需的模块行为z.
来自http://docs.python.org/2/library/math.html:
math.frexp(x)的
返回尾数和x的指数作为对(m,e).m是一个浮点数,e是一个整数,使得x == m*2**e.如果x为零,则返回(0.0,0),否则0.5 <= abs(m)<1.这用于以便携方式"分离"浮点的内部表示.
math.modf(x)的
返回x的小数和整数部分.两个结果都带有x的符号并且是浮点数.
在这个相关的问题中,它指出返回浮点数对于ceil和floor都没有意义,所以在Python 3中,它们被改为返回整数.是否有一些原因导致整数结果modf也不作为整数返回?在Python 2.7中:
In [2]: math.floor(5.5)
Out[2]: 5.0
In [3]: math.modf(5.5)
Out[3]: (0.5, 5.0)
In [4]: math.frexp(5.5)
Out[4]: (0.6875, 3)
Run Code Online (Sandbox Code Playgroud)
在Python 3中:
In [2]: math.floor(5.5)
Out[2]: 5
In [3]: math.modf(5.5)
Out[3]: (0.5, 5.0)
In [4]: math.frexp(5.5)
Out[4]: (0.6875, 3)
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个接受整数x的函数,如果是prime则返回True,否则返回False.它的工作正常,除了测试数字121时我无法弄清楚原因.这是我的代码:
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for i in range(2,x):
if x%i == 0:
return False
else:
return True
Run Code Online (Sandbox Code Playgroud)
当检查121时,它似乎跳过if x%i == 0:,因为121%11是0,但它不会返回为False.我错过了一些明显的东西吗?我很感激能得到的任何帮助,谢谢.哦,我正在使用Python 2.7
我正在尝试实现一个按字母顺序返回下一个字母的函数.例如:
> returnNext 'A'
'B'
Run Code Online (Sandbox Code Playgroud)
但是也:
> returnNext 'Z'
'A'
Run Code Online (Sandbox Code Playgroud)
因此,该函数应按字母顺序(模26)在字符代码之间循环.
在以下代码中:
i = x % b;
Run Code Online (Sandbox Code Playgroud)
当b函数为2时,模运算是否更快,即使b在编译时不知道(即使编译器不会将其优化为按位并且因为它不知道b它将是2的幂)?如果不是,如果我知道b永远是2的幂,我怎么能强制进行这样的优化呢?
编辑:我想在问题的第一部分我真正问的是divl指令(或类似的)本身是否会以2的幂运行得更快.
我的问题与这篇文章有些相关.
但是,假设我想MOD在VBA中使用Excel的内置(模数)函数.
该网站建议使用Application.WorksheetFunction.[insert name of Excel function]将提供所需的效果.
但是,Application.WorksheetFunction.MOD不起作用.
事实上,当我只输入Application.WorksheetFunction.VBA时,会出现一个下拉菜单,提供可供选择的功能名称列表,但MOD此列表中未提供!
2个问题:
MOD在VBA中实际使用Excel的内置函数?注意:我开始沿着这条路走b/c我试图使用VBA的函数来达到1.7 Mod 0.5平等,但它在生成的Excel单元格中生成我应用我的VBA函数.但是,如果我直接输入Excel,我会得到正确的答案(即)0.2Mod#VALUE!MOD(1.7,0.5)0.2