裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

経路は何通り?(その2)

2015年01月29日 | ブログラミング

ブルート・フォースで歯が立たないものは,ちゃんと考えれば,簡単に答が出る。

Excel なんかを立ち上げて,再帰的にシコシコ計算式を書き込んでいけば,数分で答が出る。

R に直すのも,簡単。解答例は,この記事のコメントを参照。

n = 20 のとき,所要時間 0.1 秒以下で,3534526380 を得る(2 ≦ n ≦ 19 のときの解も,その他のノードの解も同時に求まってしまう)。

コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 経路は何通り? | トップ | なんで,こんな変な物を好む... »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
経路は何通り? (r-de-r)
2015-01-29 18:06:53
n= 20
a = matrix(1, n, n)
for (k in 2:(n-1)) {
a[k+1, k] = a[k-1, k] + a[k+1, k-1]
a[k, k+1] = a[k, k-1] + a[k-1, k+1]
if (k == n-1) break
for (j in (k+2):n) {
a[j, k] = a[j-1, k] + a[j, k-1]
a[k, j] = a[k, j-1] + a[k-1, j]
}
}
for (k in 2:n) {
a[k,k] = a[k-1, k]*2
}
a
diag(a)
返信する
経路は何通り? (r-de-r)
2015-01-30 11:40:11
> calc = function(n) {
+ if (2 >= n) return(n)
+ a = matrix(1, n, n)
+ for (k in 3:n) {
+ if (k >= 4) {
+ for (i in 2:(k - 2)) {
+ a[i, k] = a[i - 1, k] + a[i, k - 1]
+ }
+ }
+ a[k - 1, k] = a[k - 2, k - 1] + a[k - 2, k]
+ }
+ 2 * a[n - 1, n]
+ }
> calc(10)
[1] 9724
> calc(20)
[1] 3534526380
返信する

コメントを投稿

ブログラミング」カテゴリの最新記事