[Project Euler]加入歐拉 Problem 15

來源:互聯網
上載者:User

Starting in the top left corner of a 22 grid, there are 6 routes (without backtracking) to the bottom right corner.

How many routes are there through a 2020 grid?

 

從 2*2的一個角到達另外一個對角有6條線路,問從 20*20的一個角到達另外一個對角有多少條線路?

 

這個要是運用組合數學的知識就好解決了。下面是組合數學的一個東東:

下面是一個別人的東西,看下就和這個問題一樣了。

 

小蟲路線計數(I)

著作權聲明:轉載時請以超連結形式標明文章原始出處和作者資訊及本聲明
http://yjq24.blogbus.com/logs/51125414.html

大家將就看~(我發現我很有鼠繪天賦阿),以後盡量多鼠繪~

現在有個蟲子在(0,0),每步只能往x,y的正方向走,要求走到(m,n),問有多少種路徑(有一步不同的路徑就視作不同的路徑)。

這 玩意高中肯定都做過,因為每步只能走正方向,所以小蟲不管怎麼走,一共都是走m+n步到(m,n),而這m+n步裡,必然是m步向右,n步向上,所以說只 要從m+n步裡選出其中的某m步,規定其向右走就行了。當然,你從中選出n步,規定其向上,得到的答案也是一樣的。答數是 C(m+n,m)=C(m+n,n)。

 

看完就知道了答案了,就是 40! / (20! * 20!)

歐拉項目第十五道題#include <stdio.h>#include <stdlib.h>double JieChen(int n);int main(int argc, char *argv[]){  double num1, num2, num3;    num1 = JieChen(40);  num2 = JieChen(20);  num3 = num1 / (num2 * num2);      printf("%lf", num3);    system("PAUSE");  return 0;}double JieChen(int n){    if(n == 1)    return 1;    else    return n * JieChen(n - 1);}

這題如果不利用組合數學的這個知識,還是挺費勁的,這個以後再想了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.