我们都知道。
我正在努力找出获得模的值的正确方法。
A mod b=c
如果>=为0,很容易找到c。但是,如果a< 0,它会让我感到困惑。
有一天,我在讲师笔记中读到了if -75 mod 26 = 3。
然后,我用java创建了一个简单的程序来得到-75 mod26的结果。程序编译并打印结果:-23。
那么,如果a< 0,那么找到c的正确方法是什么?
下面是我尝试过的代码:
public class modulo {
public static void main(String [] args){
int divide = -75;
这是Java中的代码。
import java.util.Scanner;
import java.math.*;
class power1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
long a=in.nextLong();
BigInteger b=in.nextBigInteger();
long res=power(a,b);
System.out.println(res);
}
public static long pow
我用python (n,k,mod)得到自然数的幂和,但没有得到完美的时间复杂度。我所用的
mod = 10**9+9
total = 0
for i in range(2, n):
x = pow(i, k, mod)
total += x
total = total%mod
return total
你能提出任何解决幂和的算法吗?
( 1^k + 2^k + 3^k + 4^k .... n^k ) mod 1000000009
其中k在1到1000之间,n属于自然数1。
我有将近3天的时间用头撞墙找出一个快速算法来找出fib mod m,也就是斐波那契数n除以m的剩余部分,其中:1 <= n <= 10^18和2 <= m <= 10^5。
举个例子,我被描述为:
Input: 281621358815590 30524 // n and m
Output: 11963
使用这个测试,我的代码可以工作,但是接下来的测试失败了:100 100000
这是我的密码:
import java.math.BigInteger;
import java.util.Scanner;
public class FibonacciHuge {
如何计算k簇从质心到簇内每个点的mean_distances。
公式:
我的代码:
def mean_distances(k, X):
"""
Arguments:
k -- int, number of clusters
X -- np.array, matrix of input features
Returns:
Array of shape (k, ), containing mean of sum distances
from centroid to each point in the cluster for k clusters
&
我在想一个算法来解决与p素数的同余ax = 1 mod p。我在考虑用费马定理。因为我知道
a ^ (p-1) = 1 mod p
那就是
a ^ (p-1) = a * (a ^ (p-2))
这意味着a ^ (p-2) mod p是解决方案。不幸的是,这个解决方案,虽然在数学上是正确的,但对计算机来说并不好,因为对于大素数,我必须做a ^ (p-2),这通常是不可计算的。
哪种算法对计算机科学有好处?
从给定数组的连续子集中找出可能的最大差之和。
给出了n个非负整数的数组arr[] (允许重复元素),从给定数组的连续子集中求出可能的最大差之和。
假设max(s)表示任何子集的最大值,而min(s)表示集合中的最小值。我们需要找到所有可能的子集的最大(S)-min之和。
Input : arr[] = {1, 2, 3}
Output : result = 4
解释:
All possible subset and for each subset s,
max(s)-min(s) are as :
SUBSET | max(s) | min(s) | max(s)-min(s)
{1,
我试图理解以下算法的时间复杂度(Big),该算法找到x,使得g^x = y (mod p) (即用基g模p求y的离散对数)。
这是伪码:
discreteLogarithm(y, g, p)
y := y mod p
a := g
x := 1
until a = y
a := (a * g) mod p
x++
return x
end
我知道这种方法的时间复杂度是p中二进制数的指数,但这意味着什么,为什么它依赖于p?
我知道复杂度是由循环数(until a = y)决定的,但是p是从哪里来的呢?二进制数字是什么?
我想为大整数找到(n选择r),并且我还必须找出该数字的mod。
long long int choose(int a,int b)
{
if (b > a)
return (-1);
if(b==0 || a==1 || b==a)
return(1);
else
{
long long int r = ((choose(a-1,b))%10000007+(choose(a-1,b- 1))%10000007)%10000007;
return r;
}
}
我正在使用这段代码,但我
我正在用矩阵模块N实现一个extended Eucilid algorithm。这是我的代码实现: def eea(a, b):
if not isinstance(a, int) or not isinstance(b, int) or not a or not b:
result = 'Error(eea): Invalid input num'
else:
original_a = a
original_b = b
x, y, u, v = (0, 1, 1, 0)
whil
我知道: p,b,g,
(g^(a*b)) mod p = X
b,p,g是BigInteger
现在我想要计算:g^a mod p
{X^(b^-1)} mod p = g^(a*b*(b^-1))) mod p = g^a mod p
在java BigInteger中,只有modInverse(BigInteger m)返回值为(this^-1 mod m).的BigInteger
如何在java BigInteger中计算b^-1
我需要一个有效的公式,它将允许一个人计算出关于以下公式的原始消息(Msg):C= msg^e mod N。如果用户被提供C,e和N,有没有一种有效的方法来计算msg?在本例中,C是密文,e是公钥,N是公钥模数。
我已经做了一些关于模算术的研究,并查看了一些详细的解释,然而,还没有文章告诉我如何解决这样的问题。
求X使(A ^ X) * (B ^ X)最大
给定A,B,N (X < 2^N)
返回最大乘积模量10^9+7。
示例:
A = 4
B = 6
N = 3
We can choose X = 3 and (A ^ X) = 7 and (B ^ X) = 5.
The product will be 35 which is the maximum.
这是我的代码:
int limit = (1<<n) - 1;
int MOD = 1_000_000_007;
int maxProd = 1;
for(int i = 1; i <= limit; i++){
in
我遇到的问题是x= (16807 X)% 65536
ie 16807k≡x (mod 65536)
我需要计算,知道x。到目前为止,我最大的努力是一种野蛮的力量。有计算k的数学方法吗?如果不是,我希望对我当前的代码进行任何优化。
t = x;
while ( t += 15115 ) // 16807k = 65536n + x - this is the n
{
if (t%16807 == 0)
return t/16807;
}
return x;
编辑:将+=更改为15115
在我的项目中,问题的一部分存在。但为了简化,这里的问题是公式化的。有两个正的互质整数:a和b,其中a < b。列出了从1到b-1的a的倍数,然后是b的模运算。
a mod b、2*a mod b、3*a mod b、...、(b-1)*a mod b
现在,还有另一个整数,比如n ( 1 <= n < b)。通过列表中的第一个n数字,我们必须找出有多少数字小于,比如说m (1 <= m < b)。这可以用蛮力方法来完成,从而提供一个O(n)。
举个例子:
a=6, b=13, n=8, m=6
列表为:
6, 12, 5, 11, 4, 10, 3, 9, 2,
我想知道如何递增从csv中的字段“提取”的数字,然后用递增的数字重写文件。
我需要把这个计数器装在tMap里。
下面的设计是一个很好的方法吗?
编辑:我正在尝试一种新的方法。请参阅下面我的子作业的设计,但是当我将tjavarow链接到主作业中的主tmap时,我遇到了一个错误
Exception in component tMap_1
java.lang.NullPointerException
at mod_file_02.file_02_0_1.FILE_02.tFileList_1Process(FILE_02.java:9157)
at mod_file_02.file_02_0_
因此,我正在尝试用Python实现一个模块化算术快速增强算法,但我似乎遇到了严重的瓶颈。因此,根据我的理解,你应该找到指数的二进制表示,并计算基数^2^i的乘积,其中i是二进制数字的数量。我的python代码是通常在网上和教科书中看到的算法定义的实现:
def fastPower(base, exp, mod):
base %= mod
workingExp = exp
product = 1
upperBound = range(int(math.ceil(math.log(exp,2))))
for i