LoginSignup
1
1

More than 5 years have passed since last update.

Project Euler Q15 【格子経路】

Last updated at Posted at 2017-10-31

Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。

問題

2×2 のマス目の左上からスタートした場合, 引き返しなしで右下にいくルートは 6 つある.
では, 20×20 のマス目ではいくつのルートがあるか.
p015.png

解答

前提:要するに、

\frac{(20+20)!}{20!20!}

を計算すればよい。すなわち、

\frac{21*22*...*39*40}{1*2*...*19*20}

を計算すればよい。
※筆算で解く場合にはもっと華麗な方法がある。

bashawkに階乗を計算するものがないようだったので仕方なくawkでループする。
printだと指数表示になってしまうのでprintfを使用する。

awk 'BEGIN{a=1;for(i=21;i<=40;i++){a*=i};print a}' |
awk '{v=$1;for(i=1;i<=20;i++){v/=i};printf("%d\n",v)}'
137846528820

思っていたより大きな値だった。

答え合わせ

こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/015.html

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1