欧拉计划 发表于 2023-7-8 03:59:06

题目15:在20*20的网格中,从左上角通往右下角的路径一共有多少?

本帖最后由 欧拉计划 于 2023-8-5 23:11 编辑

题目15:在20*20的网格中,从左上角通往右下角的路径一共有多少?

Lattice paths

Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.



How many such routes are there through a 20×20 grid?
题目翻译:

从一个 2×2 网格的左上角开始,只能向右和向下移动,

有 6 条(不允许往回走)通往右下角的路径。



对于 20×20 的网格,这样的路径一共有多少条?


视频讲解:

https://www.bilibili.com/video/BV16h4y1r78j/


思路解析及源码参考(C & Python):

**** Hidden Message *****

zhangjinxuan 发表于 2023-7-8 09:34:43

本帖最后由 zhangjinxuan 于 2023-7-18 21:15 编辑

and only being able to move to the right and down

只能向右向下走呗,这个关键的信息居然没有翻译{:10_269:}

那么,这就很简单了{:10_256:}

第 i 行 j 列的路径总数,等于 第 i-1 行 j 列的路径总数 + 第 i 行 j-1 列的路径总数。

第 1 行 1 列的路径总数为 1。

#include <bits/stdc++.h>
using namespace std;

long long f;
const int n = 20;

int main() {
        f = 1;
        for (int i = 1; i <= n; ++i) {
                for (int j = 1; j <= n; ++j) {
                        if (i == 1 && j == 1) continue;
                        f = f + f;
                }
        }
        printf("%lld\n", f);
        return 0;
}

得出答案:35345263800。

不二如是 发表于 2023-7-8 09:44:57

本帖最后由 不二如是 于 2023-7-10 07:05 编辑

此答案来自gpt,你们看出错了吧

这是一个组合问题。
从左上角出发,有两条路可以走:(右,下)
每次移动只有两种选择,且每次选择独立。

对于一个m×n的网格,总共有(m+n)!/(m!*n!)条路径。

通过python实现:

from math import factorial

def path(m, n):
    return factorial(m + n) / (factorial(m) * factorial(n))

print(path(20, 20))
# 24164578454568703130937340141
详细解释:


[*]factorial() 函数用于计算阶乘。
[*]m+n 表示可以移动的步数,有(m+n)个选择。
[*]m! 和 n! 分别表示排除掉上下移动和左右移动。

因此总共有(m+n)!/(m!*n!)条路径。

歌者文明清理员 发表于 2023-7-8 18:57:03

不二如是 发表于 2023-7-8 09:44
这是一个组合问题。
从左上角出发,有两条路可以走:(右,下)
每次移动只有两种选择,且每次选择独立。


Chat***?

zhangjinxuan 发表于 2023-7-9 09:32:29

不二如是 发表于 2023-7-8 09:44
这是一个组合问题。
从左上角出发,有两条路可以走:(右,下)
每次移动只有两种选择,且每次选择独立。


wq,答案居然不一样{:10_257:}

zhangjinxuan 发表于 2023-7-9 10:01:36

杨 辉 三 角

小甲鱼 发表于 2023-7-9 23:49:23

zhangjinxuan 发表于 2023-7-9 10:01
杨 辉 三 角

C(40, 20)

zhangjinxuan 发表于 2023-7-10 07:23:26

小甲鱼 发表于 2023-7-9 23:49
C(40, 20)

{:10_256:}

zhangjinxuan 发表于 2023-7-10 07:25:27

不二如是 发表于 2023-7-8 09:44
此答案来自gpt,你们看出错了吧

这是一个组合问题。


嗯,是gpt啊,这就不奇怪了,这就不奇怪了{:10_256:}

(zhangjinxuan撤销了一碗饭)

clollipops 发表于 2023-7-11 19:54:06

本帖最后由 clollipops 于 2023-7-25 18:25 编辑

C(40, 20) = 137846528820

忘川hd 发表于 2023-7-11 19:55:25

好好学习

鸡你实在太没 发表于 2023-7-11 19:55:47

clollipops,哇!那么好的解析

MoistenLe 发表于 2023-7-11 19:56:01

先打个卡现在挑战不了

一只菜狗 发表于 2023-7-11 19:56:13

佬们,递归一下

zhuyanan 发表于 2023-7-11 19:57:03

这个题目有点复杂呀好难呐

Tiamsy 发表于 2023-7-11 20:07:56

慢慢来

549246531 发表于 2023-7-11 20:17:00

137,846,528,820

爱吃梨的猩猩 发表于 2023-7-11 23:15:52

太有意思了吧,有用有用

a18907596 发表于 2023-7-11 23:17:45

一进来感觉进入了太极八卦阵,,,,,可惜我这不好好学习的看不懂。。尴尬

shane9611 发表于 2023-7-12 00:29:35

学习学习~
页: [1] 2
查看完整版本: 题目15:在20*20的网格中,从左上角通往右下角的路径一共有多少?