标签: binomial-coefficients

Scala尾递归方法存在除法和余数错误

我目前正在通过在 Scala 中编写尾递归来计算两个自然数的二项式系数。但是我的代码在除数方面有问题,整数除以 k 就像我所做的那样,因为这会给你一个非零余数,从而引入舍入错误。那么有人可以帮我解决这个问题吗?

 def binom(n: Int, k: Int): Int = {
    require(0 <= k && k <= n)
    def binomtail(n: Int, k: Int, ac: Int): Int = {
      if (n == k || k == 0) ac
      else binomtail(n - 1, k - 1, (n*ac)/k)
    }
    binomtail(n,k,1)
  }
Run Code Online (Sandbox Code Playgroud)

debugging reminders scala binomial-coefficients divide

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

如何更精确地进行二项式系数和阶乘计算?

我正在将以下 python 计算的结果与 Mathematica 进行比较:https://www.wolframalpha.com/input ?i=sum+%28500+choose+r+%29%28-1%29%5Er+%2F%28r%21 %29+%2C+r%3D0+至+500

import numpy as np
from decimal import *
import scipy.special
from scipy.special import factorial
getcontext().prec = 30

i = 500
sum(np.array([scipy.special.comb(Decimal(i), (r), exact=True)*pow(-1, r)/Decimal(factorial(r, exact=False)) for r in range(i+1)]))
Run Code Online (Sandbox Code Playgroud)

尽管我通过模块在 python 代码中设置了任意精度,但这两个计算都给出了几乎相同的值,i = 400但之后未能收敛decimal。用 Mathematica 计算似乎是正确的。我想知道,对于更大的数据,我们怎样才能在 python 中得到与 Mathematica 相同的结果呢i

python precision wolfram-mathematica numpy binomial-coefficients

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

a/b mod m =(a mod m)/(b mod m)?

a/b mod m = (a mod m)/(b mod m)吗?

我试图为非常大的数字找到nCr mod m.如果a/b mod m = (a mod m)/(b mod m)那时认为我会解决我的问题.

这是项目欧拉.我正在使用使用阶乘的nCr公式.

binomial-coefficients modulus

0
推荐指数
1
解决办法
6479
查看次数

如何在python中为变量显示加号

我目前正在研究Python中的程序,它将三项式方程式分解为二项式方程.然而,问题是每当我计算二项式时,如果它是正数,那么+符号就不会出现.例如,当我为b输入2和为c输入-15时,我得到输出

二项式是:(x-3)(x5)

如您所见,+符号未显示第二个二项式.我怎样才能解决这个问题?

这是我的代码:

import math
print " This program will find the binomials of an equation."
a = int(raw_input('Enter the first coefficient'))
b = int(raw_input('Enter the second coefficient'))
c = int(raw_input('Enter the third term'))
firstbinomial=str(int((((b*-1)+math.sqrt((b**2)-(4*a*c)))/(2*a))*-1))
secondbinomial=str(int((((b*-1)-math.sqrt((b**2)-(4*a*c)))/(2*a))*-1))  
print"The binomials are: (x"+firstbinomial+")(x"+secondbinomial")"
Run Code Online (Sandbox Code Playgroud)

我试过做:

import math
    print " This program will find the binomials of an equation."
    a = int(raw_input('Enter the first coefficient'))
    b = int(raw_input('Enter the second coefficient'))
    c = int(raw_input('Enter the third term'))
    firstbinomial=str(int((((b*-1)+math.sqrt((b**2)-(4*a*c)))/(2*a))*-1))
if firstbinomial<=0:
     sign=""
else:
     sign="+"
    secondbinomial=str(int((((b*-1)-math.sqrt((b**2)-(4*a*c)))/(2*a))*-1)) …
Run Code Online (Sandbox Code Playgroud)

python binomial-coefficients python-2.7

0
推荐指数
1
解决办法
1734
查看次数

如何计算非整数的二项式系数

我知道如何计算choose(5,2)的二项式系数,但现在我想知道是否有一个函数可以在python或R编程语言中计算choose(5,2.1)?

python r binomial-coefficients

0
推荐指数
1
解决办法
1349
查看次数

C中的二项式系数递归函数带来了错误的结果,为什么?

初学者在这里试图了解bug的来源.

我已经写了这个递归函数来找到两个数字之间的二项式系数,这在概念上显然是正确的.然而,对于这两个数字,n = 4和k = 2,我应该得到6,而我实际得到16.任何想法为什么会发生这种情况?

#include<stdio.h>

int binomial(int n, int k)
{
  if ((k = 0) || (k == n))
    return 1;
  if (k>n)
    return 0;

  return binomial(n - 1, k - 1) + binomial(n - 1, k);
}

int main()    
{
  int a, b, res;
  a = 4;
  b = 2;
  res = binomial(a, b);
  printf("The result is %d", res);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c debugging recursion binomial-coefficients

0
推荐指数
2
解决办法
346
查看次数

C++:如何生成Pascal三角形的"第n"行?

这是我的代码:

#include <iostream>
using namespace std;

int main()
{
    int n,k,i,x;
    cout << "Enter a row number for Pascal's Triangle: ";
    cin >> n; 
    for(i=0;i<=n;i++)
    {
        x=1;
        for(k=0;k<=i;k++)
        {
            cout << x << '\t';
            x = x * (i - k) / (k + 1);
        }
    cout << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何更改它以便它只显示第n行而不是整个三角形?TIA.

c++ algorithm math binomial-coefficients

-1
推荐指数
1
解决办法
4709
查看次数