c# - 为什么下面的代码是错误的?二项式系数

标签 c# algorithm grid binomial-coefficients

我正在做欧拉项目,现在遇到问题 15,这里有一个链接: https://projecteuler.net/problem=15 .我正在尝试用二项式系数来解决这个问题。这是一个解释它的网站:http://www.mathblog.dk/project-euler-15/ .您可以在底部找到它。

我的问题是,为什么下面的代码是错误的?由于这遵循我认为的数学算法:n-k+i/i

        int grid = 20;
        long paths = 1;
        for (int i = 0; i < grid; i++)
        {
            paths *= (grid * 2) - (grid + i)
            paths /= (i + 1);
        }
        Console.WriteLine(paths);
        Console.ReadKey();

为什么这段代码是错误的?这与数学博客网站完全一样,但只有 1 行。

        int grid = 20;
        long paths = 1;
        for (int i = 0; i < grid; i++)
        {
            paths *= ((grid * 2) - i) / (i + 1);
        }
        Console.WriteLine(paths);
        Console.ReadKey();

但为什么这段代码是正确的呢?是不是和之前的代码一样?它并不完全遵循数学算法,对吗?因为是n-k+i/i,而这段代码做的是n-i/i

       int grid = 20;
        long paths = 1;
        for (int i = 0; i < grid; i++)
        {
            paths *= ((grid * 2) - i);
            paths /=  (i + 1);
        }
        Console.WriteLine(paths);
        Console.ReadKey();

感谢大家!

最佳答案

如果要合并计算应该是这样的

paths = (path *((grid * 2) - i))/(i + 1);

关于c# - 为什么下面的代码是错误的?二项式系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243938/

相关文章:

c# - RabbitMQ basic.return

algorithm - 将重叠区域分割成不相交的区域

c# - 递归地将目录名称附加到字符串

css - img 标签的奇怪行为

wpf - 让 ListBox 随窗口调整大小,但不随内容调整大小

c# - 选择重载方法作为参数

c# - QueryMultiple 结果集顺序已更改

c# - 具有多个参数的 webapi 方法的自定义模型绑定(bind)器

地理分区算法

html - 如何让一组 div 填充包含的 div