- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题我已经遇到过很多次了,但是一直无法解决。在某些情况下会出现错误的答案,或者我编写的程序会太慢。正式地说,我正在谈论计算
nCk mod p
其中 p 是质数 n 是一个大数,且 1<=k<=n。
我尝试过什么:
我知道阶乘的递归公式,然后将其建模为动态规划问题,但我觉得它很慢。递归公式为(nCk) + (nCk-1) = (n+1Ck)
。我在将值存储在数组中以避免溢出时处理了模数,但我不确定仅对结果执行 mod p
是否会避免所有溢出,因为可能需要删除。
最佳答案
要计算 nCr,有一个基于规则 nCr = (n - 1)C(r - 1) * n/r
的简单算法:
def nCr(n,r):
if r == 0:
return 1
return n * nCr(n - 1, r - 1) // r
现在,在模算术中,我们不完全有除法,但我们有模逆(当用素数进行模运算时)同样好
def nCrModP(n, r, p):
if r == 0:
return 1
return n * nCrModP(n - 1, r - 1) * modinv(r, p) % p
这是一个implementation of modinv在罗塞塔代码上
关于c - 高效计算 nCk mod p,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13780137/
我目前无法从组合问题中得到答案。我的底壳工作得很好。我认为问题在于评估组合(n-1,k),然后评估组合(n-1,k-1)。 这是我的代码:n 和 k 是用户的输入。 sub esp, 2 push w
我正在尝试计算 nCk 在 Racket /方案中使用内存的组合 我不能使用单独的递归方法来计算 n!。我已经做到了这一点,但说这是错误的语法我实际上修复了错误的句法错误!但仍然在 (let ([an
每台 iPhone 都有一个独一无二的 NORID(8 字节)和 CHIPID(12 字节)。 它存储在哪里?也不?秒区?可以扔掉吗? iPhone 需要 NCK 才能解锁。据我了解,NCK 是 15
这个问题我已经遇到过很多次了,但是一直无法解决。在某些情况下会出现错误的答案,或者我编写的程序会太慢。正式地说,我正在谈论计算 nCk mod p 其中 p 是质数 n 是一个大数,且 1<=k<=n
首先这不是我的作业..我在练习过程中卡在了一个问题上。 我想计算这个表达式的值:ans=(2^huge)%p.. 哪里: huge=n1Ck1+ n2Ck2 +n3Ck3 ..... [n1,n2..
我刚看到这个问题,不知道如何解决。你能给我提供算法、C++代码或想法吗? This is a very simple problem. Given the value of N and K, you
我在硬件领域工作。我需要生成从 0 到 n-1 的所有 nCk 数字组合。使用软件很容易做到这一点,但这需要使用 HDL - VHDL 来完成。我不能在计算复杂性上花费太多,并且需要以 1 个样本/秒
我的函数定义看起来像 nxt_comb[] = 组合(comb[1:k],n) 此函数应给出输入组合comb(数组)之后的下一个组合。 comb 的 n 元素取值从 1 到 n。 例子: 如果函数被调
我需要找到一种内存寻址方法来为对应于从 0 到 n-1 的“nCk”值组合的值分配内存(静态硬件)。 假设 'n' 为 6,'k' 为 4,我需要存储与组合对应的值(8 位或 16 位): (1,2,
我正在尝试解决黑客排名的编码挑战,这需要一个人计算二项式系数模素数,即 nchoosek(n, k, p) 我正在使用这个 answer 中的代码这适用于前三组输入,但在第 4 组开始失败。我在调试器
变量test为后面的测试用例数 函数 factorial 返回数字的阶乘 函数 summ 给出 k 从 1 到 n nCk 的总和 这是我的代码: #include float factorial(i
我是一名优秀的程序员,十分优秀!